@powerhousedao/academy 5.0.0-staging.1 → 5.0.0-staging.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +1 -1
- package/CHANGELOG.md +60 -0
- package/README.md +3 -3
- package/babel.config.js +1 -1
- package/blog/BeyondCommunication-ABlueprintForDevelopment.md +25 -24
- package/blog/TheChallengeOfChange.md +21 -21
- package/docs/academy/01-GetStarted/00-ExploreDemoPackage.mdx +61 -24
- package/docs/academy/01-GetStarted/01-CreateNewPowerhouseProject.md +21 -12
- package/docs/academy/01-GetStarted/02-DefineToDoListDocumentModel.md +24 -19
- package/docs/academy/01-GetStarted/03-ImplementOperationReducers.md +44 -41
- package/docs/academy/01-GetStarted/04-BuildToDoListEditor.md +10 -10
- package/docs/academy/01-GetStarted/05-SpecDrivenAI.md +143 -0
- package/docs/academy/01-GetStarted/home.mdx +185 -90
- package/docs/academy/01-GetStarted/styles.module.css +5 -5
- package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/01-Prerequisites.md +46 -18
- package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/02-StandardDocumentModelWorkflow.md +118 -68
- package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/03-BuilderTools.md +75 -33
- package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/_category_.json +6 -6
- package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/01-WhatIsADocumentModel.md +30 -21
- package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/02-SpecifyTheStateSchema.md +41 -37
- package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/03-SpecifyDocumentOperations.md +29 -25
- package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/04-UseTheDocumentModelGenerator.md +36 -37
- package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/05-ImplementDocumentReducers.md +128 -109
- package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/06-ImplementDocumentModelTests.md +95 -86
- package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/07-ExampleToDoListRepository.md +7 -9
- package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/_category_.json +6 -6
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/01-BuildingDocumentEditors.md +65 -47
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/02-ConfiguringDrives.md +77 -62
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/03-BuildingADriveExplorer.md +360 -349
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/06-DocumentTools/00-DocumentToolbar.mdx +16 -10
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/06-DocumentTools/01-OperationHistory.md +10 -7
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/06-DocumentTools/02-RevisionHistoryTimeline.md +26 -11
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/06-DocumentTools/_category_.json +6 -6
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/07-Authorization/01-RenownAuthenticationFlow.md +14 -7
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/07-Authorization/02-Authorization.md +0 -1
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/07-Authorization/_category_.json +5 -5
- package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/_category_.json +1 -1
- package/docs/academy/02-MasteryTrack/04-WorkWithData/01-GraphQLAtPowerhouse.md +45 -33
- package/docs/academy/02-MasteryTrack/04-WorkWithData/02-UsingTheAPI.mdx +61 -18
- package/docs/academy/02-MasteryTrack/04-WorkWithData/03-UsingSubgraphs.md +50 -54
- package/docs/academy/02-MasteryTrack/04-WorkWithData/04-analytics-processor.md +126 -110
- package/docs/academy/02-MasteryTrack/04-WorkWithData/05-RelationalDbProcessor.md +75 -45
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/GraphQL References/QueryingADocumentWithGraphQL.md +23 -21
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/best-practices.md +9 -9
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/graphql/index.md +11 -23
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/graphql/integration.md +25 -9
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/intro.md +10 -10
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/benchmarks.md +1 -1
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/index.md +16 -11
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/memory.md +6 -5
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/schema.md +2 -2
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/utilities.md +7 -5
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/use-cases/maker.md +32 -58
- package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/use-cases/processors.md +1 -1
- package/docs/academy/02-MasteryTrack/04-WorkWithData/07-drive-analytics.md +105 -71
- package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_01-SetupBuilderEnvironment.md +22 -0
- package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_02-CreateNewPowerhouseProject.md +9 -8
- package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_03-GenerateAnAnalyticsProcessor.md +28 -32
- package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_04-UpdateAnalyticsProcessor.md +25 -26
- package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_category_.json +1 -1
- package/docs/academy/02-MasteryTrack/04-WorkWithData/_category_.json +7 -7
- package/docs/academy/02-MasteryTrack/05-Launch/01-IntroductionToPackages.md +3 -4
- package/docs/academy/02-MasteryTrack/05-Launch/02-PublishYourProject.md +69 -45
- package/docs/academy/02-MasteryTrack/05-Launch/03-SetupEnvironment.md +70 -40
- package/docs/academy/02-MasteryTrack/05-Launch/04-ConfigureEnvironment.md +1 -0
- package/docs/academy/02-MasteryTrack/05-Launch/_category_.json +7 -7
- package/docs/academy/02-MasteryTrack/_category_.json +6 -6
- package/docs/academy/03-ExampleUsecases/Chatroom/02-CreateNewPowerhouseProject.md +5 -3
- package/docs/academy/03-ExampleUsecases/Chatroom/03-DefineChatroomDocumentModel.md +38 -37
- package/docs/academy/03-ExampleUsecases/Chatroom/04-ImplementOperationReducers.md +45 -41
- package/docs/academy/03-ExampleUsecases/Chatroom/05-ImplementChatroomEditor.md +14 -14
- package/docs/academy/03-ExampleUsecases/Chatroom/06-LaunchALocalReactor.md +6 -6
- package/docs/academy/03-ExampleUsecases/Chatroom/_category_.json +1 -1
- package/docs/academy/04-APIReferences/00-PowerhouseCLI.md +9 -7
- package/docs/academy/04-APIReferences/01-ReactHooks.md +177 -129
- package/docs/academy/04-APIReferences/04-RelationalDatabase.md +121 -113
- package/docs/academy/04-APIReferences/05-PHDocumentMigrationGuide.md +48 -41
- package/docs/academy/04-APIReferences/_category_.json +6 -6
- package/docs/academy/05-Architecture/00-PowerhouseArchitecture.md +1 -2
- package/docs/academy/05-Architecture/01-WorkingWithTheReactor.md +11 -8
- package/docs/academy/05-Architecture/05-DocumentModelTheory/_category_.json +1 -1
- package/docs/academy/05-Architecture/_category_.json +6 -6
- package/docs/academy/06-ComponentLibrary/00-DocumentEngineering.md +25 -23
- package/docs/academy/06-ComponentLibrary/02-CreateCustomScalars.md +105 -93
- package/docs/academy/06-ComponentLibrary/03-IntegrateIntoAReactComponent.md +1 -0
- package/docs/academy/06-ComponentLibrary/_category_.json +7 -7
- package/docs/academy/07-Cookbook.md +267 -34
- package/docs/academy/08-Glossary.md +7 -1
- package/docs/bookofpowerhouse/01-Overview.md +2 -2
- package/docs/bookofpowerhouse/02-GeneralFrameworkAndPhilosophy.md +1 -7
- package/docs/bookofpowerhouse/03-PowerhouseSoftwareArchitecture.md +10 -7
- package/docs/bookofpowerhouse/04-DevelopmentApproaches.md +10 -4
- package/docs/bookofpowerhouse/05-SNOsandANewModelForOSSandPublicGoods.md +23 -30
- package/docs/bookofpowerhouse/06-SNOsInActionAndPlatformEconomies.md +0 -7
- package/docusaurus.config.ts +64 -66
- package/package.json +1 -1
- package/scripts/generate-combined-cli-docs.ts +43 -13
- package/sidebars.ts +1 -0
- package/src/components/HomepageFeatures/index.tsx +171 -78
- package/src/components/HomepageFeatures/styles.module.css +1 -2
- package/src/css/custom.css +89 -89
- package/src/pages/_archive-homepage.tsx +17 -16
- package/src/theme/DocCardList/index.tsx +9 -8
- package/static.json +6 -6
package/.vscode/settings.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,63 @@
|
|
|
1
|
+
## 5.0.0-staging.10 (2025-09-11)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **reactor-api:** generate sdk ([ec107015c](https://github.com/powerhouse-inc/powerhouse/commit/ec107015c))
|
|
6
|
+
- **reactor-api:** initial gql codegen ([3db9e9778](https://github.com/powerhouse-inc/powerhouse/commit/3db9e9778))
|
|
7
|
+
- **monorepo:** make format consistent across ignores ([98469560f](https://github.com/powerhouse-inc/powerhouse/commit/98469560f))
|
|
8
|
+
- **monorepo:** use consistent separate type imports ([6fd4ac0f4](https://github.com/powerhouse-inc/powerhouse/commit/6fd4ac0f4))
|
|
9
|
+
- **monorepo:** use consistent formatting ([d2a1182c5](https://github.com/powerhouse-inc/powerhouse/commit/d2a1182c5))
|
|
10
|
+
|
|
11
|
+
### 🩹 Fixes
|
|
12
|
+
|
|
13
|
+
- linting fixes ([27fe7d397](https://github.com/powerhouse-inc/powerhouse/commit/27fe7d397))
|
|
14
|
+
- annoyingly, you have to add ignores to the root eslint ([bb6d993bd](https://github.com/powerhouse-inc/powerhouse/commit/bb6d993bd))
|
|
15
|
+
- **docs:** improve document hooks documentation ([d05fcb835](https://github.com/powerhouse-inc/powerhouse/commit/d05fcb835))
|
|
16
|
+
|
|
17
|
+
### ❤️ Thank You
|
|
18
|
+
|
|
19
|
+
- Benjamin Jordan (@thegoldenmule)
|
|
20
|
+
- Callme-T
|
|
21
|
+
- ryanwolhuter @ryanwolhuter
|
|
22
|
+
|
|
23
|
+
## 5.0.0-staging.9 (2025-09-09)
|
|
24
|
+
|
|
25
|
+
This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
|
|
26
|
+
|
|
27
|
+
## 5.0.0-staging.8 (2025-09-09)
|
|
28
|
+
|
|
29
|
+
This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
|
|
30
|
+
|
|
31
|
+
## 5.0.0-staging.7 (2025-09-09)
|
|
32
|
+
|
|
33
|
+
This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
|
|
34
|
+
|
|
35
|
+
## 5.0.0-staging.6 (2025-09-08)
|
|
36
|
+
|
|
37
|
+
This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
|
|
38
|
+
|
|
39
|
+
## 5.0.0-staging.5 (2025-09-08)
|
|
40
|
+
|
|
41
|
+
This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
|
|
42
|
+
|
|
43
|
+
## 5.0.0-staging.4 (2025-09-08)
|
|
44
|
+
|
|
45
|
+
This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
|
|
46
|
+
|
|
47
|
+
## 5.0.0-staging.3 (2025-09-08)
|
|
48
|
+
|
|
49
|
+
This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
|
|
50
|
+
|
|
51
|
+
## 5.0.0-staging.2 (2025-09-05)
|
|
52
|
+
|
|
53
|
+
### 🩹 Fixes
|
|
54
|
+
|
|
55
|
+
- **docs:** added zip redundancy to release notes ([3acfe1027](https://github.com/powerhouse-inc/powerhouse/commit/3acfe1027))
|
|
56
|
+
|
|
57
|
+
### ❤️ Thank You
|
|
58
|
+
|
|
59
|
+
- Callme-T
|
|
60
|
+
|
|
1
61
|
## 5.0.0-staging.1 (2025-09-04)
|
|
2
62
|
|
|
3
63
|
This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Website
|
|
2
2
|
|
|
3
3
|
This documentation website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
|
|
4
|
-
To contribute to the documentation please work on a feature branch in case of big refactors, and build & serve before pushing to the development branch.
|
|
5
|
-
Pushing from the dev branch to the main branch will trigger an auto deployment in Heroku for the staging deployment.
|
|
4
|
+
To contribute to the documentation please work on a feature branch in case of big refactors, and build & serve before pushing to the development branch.
|
|
5
|
+
Pushing from the dev branch to the main branch will trigger an auto deployment in Heroku for the staging deployment.
|
|
6
6
|
|
|
7
7
|
### Installation
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ $ npm install
|
|
|
16
16
|
$ npm run dev
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. The server will break upon broken links or big navigation/relinking.
|
|
19
|
+
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. The server will break upon broken links or big navigation/relinking.
|
|
20
20
|
|
|
21
21
|
### Build
|
|
22
22
|
|
package/babel.config.js
CHANGED
|
@@ -3,7 +3,7 @@ title: Beyond Communication - A Blueprint for Development
|
|
|
3
3
|
description: GraphQL Schema’s as a common language for software design
|
|
4
4
|
slug: Graphql-schema-as-a-common-language
|
|
5
5
|
authors:
|
|
6
|
-
- name: Call me T.
|
|
6
|
+
- name: Call me T.
|
|
7
7
|
title: Product Manager at Powerhouse
|
|
8
8
|
image_url: https://avatars.githubusercontent.com/u/148560082?v=4
|
|
9
9
|
socials:
|
|
@@ -12,6 +12,7 @@ tags: [Design thinking, Tooling, Product, GraphQL, Schema's]
|
|
|
12
12
|
image: https://i.imgur.com/mErPwqL.png
|
|
13
13
|
hide_table_of_contents: false
|
|
14
14
|
---
|
|
15
|
+
|
|
15
16
|
GraphQL Schema’s as a common language for software design, bridging the gaps between all stakeholders with the help of a single source of truth document model.
|
|
16
17
|
|
|
17
18
|
<!-- truncate -->
|
|
@@ -26,7 +27,7 @@ GraphQL Schema’s as a common language for software design, bridging the gaps b
|
|
|
26
27
|
|
|
27
28
|
#### For non-technical contributors, schemas offer a clear, readable map of how data flows through a system. Business analysts, product managers, and designers can quickly grasp the relationships between data types and operations without needing to dive into code. “**For developers, schemas serve as a contract, reducing ambiguity during implementation**”. Queries and mutations clearly define how data can be fetched or modified, leaving little room for misinterpretation.
|
|
28
29
|
|
|
29
|
-
####
|
|
30
|
+
####
|
|
30
31
|
|
|
31
32
|
#### By bringing clarity to these conversations, GraphQL fosters collaboration within cross-functional teams and accelerates onboarding for new contributors.
|
|
32
33
|
|
|
@@ -34,12 +35,12 @@ GraphQL Schema’s as a common language for software design, bridging the gaps b
|
|
|
34
35
|
|
|
35
36
|
The utility of GraphQL schemas extends far beyond communication. They act as a blueprint that shapes every phase of the development lifecycle:
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
- **Planning and Design**:
|
|
39
|
+
- During the design phase, schemas enable teams to validate assumptions early. Data requirements and workflows can be reviewed collaboratively, ensuring alignment before development begins.
|
|
40
|
+
- **Implementation**:
|
|
41
|
+
- Developers use schemas as a definitive source of truth, minimizing the need for rework caused by unclear specifications.
|
|
42
|
+
- **Testing and Maintenance**:
|
|
43
|
+
- When the schema evolves, it highlights changes or inconsistencies, making it easier to adapt systems without breaking existing functionality.
|
|
43
44
|
|
|
44
45
|
The result is a smoother development process, where every stakeholder operates with a shared understanding of the system’s architecture.
|
|
45
46
|
|
|
@@ -49,9 +50,9 @@ GraphQL's design pairs naturally with the Command Query Responsibility Segregati
|
|
|
49
50
|
|
|
50
51
|
In a CQRS-driven architecture:
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
- **Queries** retrieve data efficiently.
|
|
54
|
+
- **Mutations** handle data modifications.
|
|
55
|
+
- **Subscriptions** enable real-time updates.
|
|
55
56
|
|
|
56
57
|
GraphQL’s separation of these operations ensures clarity and scalability, especially in distributed systems. Developers can optimize read and write models independently, leading to improved performance and maintainability. This structured approach also simplifies troubleshooting and ensures a smoother evolution of complex systems.
|
|
57
58
|
|
|
@@ -59,12 +60,12 @@ GraphQL’s separation of these operations ensures clarity and scalability, espe
|
|
|
59
60
|
|
|
60
61
|
GraphQL’s strong typing makes it a natural ally for TypeScript, a language known for its type safety and developer-friendly features. Together, they form a powerful combination that enhances developer experience and system reliability.
|
|
61
62
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
- **Type Safety Across the Stack**:
|
|
64
|
+
- Developers can auto-generate TypeScript types from GraphQL schemas, ensuring consistency between client and server. This reduces boilerplate code and eliminates many common runtime errors.
|
|
65
|
+
- **Improved Developer Productivity**:
|
|
66
|
+
- With type safety built into both the API and the client code, developers can catch potential issues during development, saving time and reducing bugs.
|
|
67
|
+
- **Seamless Front-End Integrations**:
|
|
68
|
+
- For front-end teams, GraphQL and TypeScript streamline the process of building data-driven applications, ensuring that APIs and components stay in sync.
|
|
68
69
|
|
|
69
70
|
This synergy results in cleaner, more reliable code and a significantly improved development experience.
|
|
70
71
|
|
|
@@ -72,12 +73,12 @@ This synergy results in cleaner, more reliable code and a significantly improved
|
|
|
72
73
|
|
|
73
74
|
Beyond fostering better communication and aligning stakeholders, GraphQL drives efficiency in several key ways:
|
|
74
75
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
- **Streamlined API Development**:
|
|
77
|
+
- With its declarative queries, GraphQL eliminates over-fetching and under-fetching of data, allowing front-end teams to request only what they need.
|
|
78
|
+
- **Empowered Non-Technical Contributors**:
|
|
79
|
+
- The interactive nature of GraphQL schemas makes them accessible to non-technical stakeholders, enabling them to explore APIs independently and contribute more effectively to design discussions. The ‘lingua franca’ characteristic now truly starts to live up to its promises as designer or business analysts now can interact with the base schema and steer and discuss potential solutions together with the development team.
|
|
80
|
+
- **Real-Time Introspection**:
|
|
81
|
+
- Tools like GraphQL Playground allow teams to inspect and test APIs dynamically, making development and debugging faster and more collaborative.
|
|
81
82
|
|
|
82
83
|
These features combine to create a more agile, responsive development environment, where teams can adapt quickly to changing requirements.
|
|
83
84
|
|
|
@@ -85,4 +86,4 @@ These features combine to create a more agile, responsive development environmen
|
|
|
85
86
|
|
|
86
87
|
The success of any software project hinges on clear communication and shared understanding. GraphQL schemas provide the common language that teams need to align around a unified vision. From clarifying data relationships to supporting scalable architectures, GraphQL empowers organizations to overcome the "lost in translation" problem and focus on what truly matters: building great products.
|
|
87
88
|
|
|
88
|
-
For teams seeking to improve collaboration, efficiency, and scalability, GraphQL is more than a tool—it’s a framework for shared success,
|
|
89
|
+
For teams seeking to improve collaboration, efficiency, and scalability, GraphQL is more than a tool—it’s a framework for shared success,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: The Challenge of Change
|
|
3
|
-
description: Rapid Application Development with document models.
|
|
3
|
+
description: Rapid Application Development with document models.
|
|
4
4
|
slug: Rapid-Application-Development-with-document-models.
|
|
5
5
|
authors:
|
|
6
|
-
- name: Call me T.
|
|
6
|
+
- name: Call me T.
|
|
7
7
|
title: Product Manager at Powerhouse
|
|
8
8
|
image_url: https://avatars.githubusercontent.com/u/148560082?v=4
|
|
9
9
|
socials:
|
|
@@ -12,6 +12,7 @@ tags: [Dao, Tooling]
|
|
|
12
12
|
image: https://i.imgur.com/mErPwqL.png
|
|
13
13
|
hide_table_of_contents: false
|
|
14
14
|
---
|
|
15
|
+
|
|
15
16
|
### **The Challenge of Change**
|
|
16
17
|
|
|
17
18
|
The pace of innovation is relentless. Organizations today find themselves in a race to adapt to new technologies, shifting consumer demands, and evolving or opaque regulations. Yet, the traditional methods of building and maintaining software systems often lag behind the speed of change, creating bottlenecks that stifle growth and innovation.
|
|
@@ -20,10 +21,10 @@ The pace of innovation often outstrips an organization’s ability to adapt, kee
|
|
|
20
21
|
|
|
21
22
|
<!-- truncate -->
|
|
22
23
|
|
|
23
|
-
Across many industries, this comes down to a familiar struggle of common trade-offs in product and solution development.
|
|
24
|
+
Across many industries, this comes down to a familiar struggle of common trade-offs in product and solution development.
|
|
24
25
|
|
|
25
26
|
**\- Speed vs. Accuracy:** The balance between haste or precision
|
|
26
|
-
**\- Customizability vs. Scalability:** Meeting specific needs or relentless standardisation
|
|
27
|
+
**\- Customizability vs. Scalability:** Meeting specific needs or relentless standardisation
|
|
27
28
|
|
|
28
29
|
As businesses push to innovate, they face a crucial question: how can they accelerate development without sacrificing quality or flexibility?
|
|
29
30
|
|
|
@@ -37,19 +38,18 @@ The answer lies in embracing methodologies that prioritize agility and adaptabil
|
|
|
37
38
|
|
|
38
39
|
Key benefits of RAD include:
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
These principles have been widely embraced in industries ranging from DAO’s, incubators, tech startups to multinational corporations (in the case of the latter often with the help of a high ticket consultant). Other methodologies from adjacent domains of RAD, that you might be more familiar with include:
|
|
41
|
+
- **Rapid Prototyping**: Organizations can quickly test ideas without committing to large-scale development, allowing for faster feedback and iteration.
|
|
42
|
+
- **Iterative Development**: Instead of delivering a finished product all at once, RAD emphasizes incremental improvements, reducing the risk of misaligned expectations.
|
|
43
|
+
- **Adaptability to Change**: By designing with flexibility in mind, RAD allows organizations to pivot and respond to new demands or challenges with ease.
|
|
45
44
|
|
|
46
|
-
|
|
47
|
-
* **Pre-totyping:** A method by Google's first engineering director focused on validating that you are building the ‘right it’ before you ‘build it’ right with the help of smoke tests or mock-ups.
|
|
48
|
-
* **Design-thinking:** Where designers & developers go through non-linear, iterative processes of discovery, definition, development & delivery of their ideas with the help of prototyping together with end-users.
|
|
45
|
+
These principles have been widely embraced in industries ranging from DAO’s, incubators, tech startups to multinational corporations (in the case of the latter often with the help of a high ticket consultant). Other methodologies from adjacent domains of RAD, that you might be more familiar with include:
|
|
49
46
|
|
|
47
|
+
- **Lean Start-up Methodology**: Focussing on finding product market fit early with a minimum viable product through a build, measure, learn cycle.
|
|
48
|
+
- **Pre-totyping:** A method by Google's first engineering director focused on validating that you are building the ‘right it’ before you ‘build it’ right with the help of smoke tests or mock-ups.
|
|
49
|
+
- **Design-thinking:** Where designers & developers go through non-linear, iterative processes of discovery, definition, development & delivery of their ideas with the help of prototyping together with end-users.
|
|
50
50
|
|
|
51
51
|

|
|
52
|
-
|
|
52
|
+
_Figure 1: Notice how Design thinking, Lean Startup Methodology and Rapid Application Development all rely on tooling that put rapid iteration at the center of the methodology? It remains crucial to select the right tool with the correct prototype fidelity at any of the stages these methodologies prescribe_
|
|
53
53
|
|
|
54
54
|
---
|
|
55
55
|
|
|
@@ -57,9 +57,9 @@ These principles have been widely embraced in industries ranging from DAO’s, i
|
|
|
57
57
|
|
|
58
58
|
Despite their success in simpler times, traditional development methodologies are currently often falling short in today’s dynamic environments.
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
- **Long Lead Times**: Developing complex systems from scratch can take months or even years, by which time business requirements may have shifted.
|
|
61
|
+
- **Limited Customization**: Off-the-shelf solutions may be fast to deploy but rarely align perfectly with an organization’s unique workflows.
|
|
62
|
+
- **High Costs of Change**: Adjusting systems mid-development often incurs significant costs and delays, making organizations hesitant to pivot.
|
|
63
63
|
|
|
64
64
|
To overcome these challenges, businesses need a new approach—one that combines speed, flexibility, and precision.
|
|
65
65
|
|
|
@@ -71,16 +71,16 @@ Powerhouse is proposing a framework built to address these very challenges, offe
|
|
|
71
71
|
|
|
72
72
|
At the core of Powerhouse’s approach is its **document model-driven architecture**, a GraphQL schema based foundation that reimagines how data, workflows, and processes are structured. This architecture enables organizations to:
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
- **Capture Data Effectively**: Modular document models allow organizations to define and adapt workflows with higher accuracy.
|
|
75
|
+
- **Automate Workflows**: With tools to streamline even the most complex processes, so organizations can focus on innovation instead of repetitive tasks.
|
|
76
|
+
- **Iterate and Evolve Rapidly**: Modular, reusable components reduce development times, enabling organizations to adapt to their most pressing challenges and changes.
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
80
80
|
### **From a front-end developers perspective**
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
> “The coolest part is being able to plug into any document model and start building UI components for it without the hassle of managing a 'backend' or 'state management' for the components. All front-end devs use and love redux, the event driven architecture these document models are using. But the fact that as a front end dev, you don't have to set up any of it, and can just plug into the underlying framework saves time. It allows me to focus on my actual tasks \- building awesome UI components and experiences. I could start thinking of the same document model but with a 1000 different UI’s depending on the user's specific needs and preferences. Like swapping skins in my favorite video game”
|
|
83
83
|
|
|
84
|
-
The rapid application development process we’re setting up, allows us to move quicker from initial problem definition to potential prototype opens up time for designers and developers to actually test and iterate on their imagined solution.
|
|
84
|
+
The rapid application development process we’re setting up, allows us to move quicker from initial problem definition to potential prototype opens up time for designers and developers to actually test and iterate on their imagined solution.
|
|
85
85
|
|
|
86
86
|
By prioritizing rapid, iterative development, Powerhouse aims to empower organizations to innovate faster, adapt more seamlessly, and achieve sustainable growth in even the most challenging environments.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Let's get started
|
|
4
4
|
|
|
5
|
-
To give you a quick idea of how the Powerhouse ecosystem operates on document models and packages, why don't you try installing a package?
|
|
5
|
+
To give you a quick idea of how the Powerhouse ecosystem operates on document models and packages, why don't you try installing a package?
|
|
6
6
|
We will show you how to install the Powerhouse command-line tool `ph-cmd` and then use it to install a pre-built demo package with a document models, an editor and a drive-app.
|
|
7
7
|
|
|
8
8
|
## Step 1: Install the Powerhouse CLI
|
|
@@ -18,7 +18,7 @@ Verify the installation:
|
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
ph-cmd --version
|
|
21
|
-
```
|
|
21
|
+
```
|
|
22
22
|
|
|
23
23
|
## Step 2: Install the to-do list demo package
|
|
24
24
|
|
|
@@ -73,27 +73,34 @@ This command downloads and sets up the `@powerhousedao/todo-demo-package`, makin
|
|
|
73
73
|
|
|
74
74
|
</details>
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
You have now successfully installed `ph-cmd` and added your first package!
|
|
76
|
+
You have now successfully installed `ph-cmd` and added your first package!
|
|
78
77
|
|
|
79
78
|
## Step 3: Run the connect app in studio mode
|
|
79
|
+
|
|
80
80
|
To run the package locally in Connect Studio (our collaboration and contributor app), run:
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
83
|
ph connect
|
|
84
84
|
```
|
|
85
|
-
|
|
85
|
+
|
|
86
|
+
Click the returned localhost URL and you should see Connect Studio appear in your browser.
|
|
87
|
+
|
|
86
88
|
<figure className="image-container">
|
|
87
89
|
<img src={require("./images/Connect.png").default} alt="Connect Home" />
|
|
88
90
|
<figcaption>The Powerhouse Connect Studio interface.</figcaption>
|
|
89
91
|
</figure>
|
|
90
92
|
|
|
91
|
-
When you move to the settingswheel in the bottom right corner you'll get access to the **Package Manager**.
|
|
92
|
-
Here, you'll see that you've installed the `@powerhousedao/todo-demo-package`, which contains not only a **Document Model** and its accompanying editor but also a **Drive App** specific to the to-do document model.
|
|
93
|
+
When you move to the settingswheel in the bottom right corner you'll get access to the **Package Manager**.
|
|
94
|
+
Here, you'll see that you've installed the `@powerhousedao/todo-demo-package`, which contains not only a **Document Model** and its accompanying editor but also a **Drive App** specific to the to-do document model.
|
|
93
95
|
|
|
94
96
|
<figure className="image-container">
|
|
95
|
-
<img
|
|
96
|
-
|
|
97
|
+
<img
|
|
98
|
+
src={require("./images/Packagemanager.png").default}
|
|
99
|
+
alt="Package Manager"
|
|
100
|
+
/>
|
|
101
|
+
<figcaption>
|
|
102
|
+
The Package Manager showing the installed todo-demo-package.
|
|
103
|
+
</figcaption>
|
|
97
104
|
</figure>
|
|
98
105
|
|
|
99
106
|
## Step 4: Create a todo list document
|
|
@@ -124,20 +131,36 @@ Now move into the drive you've just created:
|
|
|
124
131
|
- After closing the document, look at the To-do Drive App interface—you'll see that it tracks your tasks and displays a progress bar
|
|
125
132
|
|
|
126
133
|
<figure className="image-container">
|
|
127
|
-
<img
|
|
134
|
+
<img
|
|
135
|
+
src={require("./images/TodoDriveApp.png").default}
|
|
136
|
+
alt="Todo Drive App"
|
|
137
|
+
/>
|
|
128
138
|
<figcaption>A list of todo's in the custom todo drive app. </figcaption>
|
|
129
139
|
</figure>
|
|
130
140
|
|
|
131
141
|
A key feature you get with Connect is the **Operations History**. Every change to a document is stored as an individual operation, creating an immutable and replayable history. This provides complete auditability and transparency, as you can inspect each revision, its details, and any associated signatures. For example, you can see a chronological list of all modifications, along with who made them and when.
|
|
132
142
|
|
|
133
143
|
<figure className="image-container">
|
|
134
|
-
<img
|
|
135
|
-
|
|
144
|
+
<img
|
|
145
|
+
src={require("./images/OperationsHistoryButton.png").default}
|
|
146
|
+
alt="Operations History Button"
|
|
147
|
+
/>
|
|
148
|
+
<figcaption>
|
|
149
|
+
{" "}
|
|
150
|
+
You can find the button to visit the operations history in the document
|
|
151
|
+
model toolbar{" "}
|
|
152
|
+
</figcaption>
|
|
136
153
|
</figure>
|
|
137
154
|
|
|
138
155
|
<figure className="image-container">
|
|
139
|
-
<img
|
|
140
|
-
|
|
156
|
+
<img
|
|
157
|
+
src={require("./images/OperationsHistory.png").default}
|
|
158
|
+
alt="Operations History"
|
|
159
|
+
/>
|
|
160
|
+
<figcaption>
|
|
161
|
+
Example of the operations history for a document, showing all modifications
|
|
162
|
+
made to it in a list.{" "}
|
|
163
|
+
</figcaption>
|
|
141
164
|
</figure>
|
|
142
165
|
|
|
143
166
|
Learn more about the [Operations History](../MasteryTrack/BuildingUserExperiences/DocumentTools/OperationHistory) and other document tools you get for free.
|
|
@@ -158,7 +181,9 @@ When signing in with Renown, use an Ethereum or blockchain address that can func
|
|
|
158
181
|
|
|
159
182
|
<figure className="image-container">
|
|
160
183
|
<img src={require("./images/RenownLogin.png").default} alt="Renown Login" />
|
|
161
|
-
<figcaption>
|
|
184
|
+
<figcaption>
|
|
185
|
+
The Renown login screen, prompting for a signature from a wallet.
|
|
186
|
+
</figcaption>
|
|
162
187
|
</figure>
|
|
163
188
|
|
|
164
189
|
### 5.2 Authorize Connect to sign document edits on your behalf
|
|
@@ -166,12 +191,20 @@ When signing in with Renown, use an Ethereum or blockchain address that can func
|
|
|
166
191
|
This DID is then associated with a credential that authorizes a specific Connect instance to act on your behalf. That credential is stored securely on Ceramic, a decentralized data network. When you perform actions through the Powerhouse Connect interface, those operations are signed with the DID and transmitted to Switchboard, which serves as the verifier.
|
|
167
192
|
|
|
168
193
|
<figure className="image-container">
|
|
169
|
-
<img
|
|
170
|
-
|
|
194
|
+
<img
|
|
195
|
+
src={require("./images/ConnectAddress.png").default}
|
|
196
|
+
alt="Connect Address for DID"
|
|
197
|
+
/>
|
|
198
|
+
<figcaption>
|
|
199
|
+
A newly generated DID and address shown within the Connect interface.
|
|
200
|
+
</figcaption>
|
|
171
201
|
</figure>
|
|
172
202
|
|
|
173
203
|
<figure className="image-container">
|
|
174
|
-
<img
|
|
204
|
+
<img
|
|
205
|
+
src={require("./images/LoginComplete.png").default}
|
|
206
|
+
alt="Renown Login Complete"
|
|
207
|
+
/>
|
|
175
208
|
<figcaption>Confirmation of a successful login with Renown.</figcaption>
|
|
176
209
|
</figure>
|
|
177
210
|
|
|
@@ -182,16 +215,20 @@ By leveraging this system, every operation or modification made to a document is
|
|
|
182
215
|
Now, return to your to-do list and make some additional changes. You'll notice that these operations are now signed with your Renown identity, making every action traceable and verifiable in the operations history.
|
|
183
216
|
|
|
184
217
|
<figure className="image-container">
|
|
185
|
-
<img
|
|
186
|
-
|
|
218
|
+
<img
|
|
219
|
+
src={require("./images/OperationsHistorySignature.png").default}
|
|
220
|
+
alt="Operation History Signature"
|
|
221
|
+
/>
|
|
222
|
+
<figcaption>
|
|
223
|
+
Your DID is now signing the operations that are being added to the history.
|
|
224
|
+
</figcaption>
|
|
187
225
|
</figure>
|
|
188
226
|
|
|
189
227
|
## Step 6: Export a document
|
|
190
228
|
|
|
191
|
-
Export the document as a `.phd` (Powerhouse Document) file using the export button in the document toolbar at the top. In this toolbar, you will find all available functionality for your documents. The `.phd` file can be sent through any of your preferred channels to other users on your network.
|
|
229
|
+
Export the document as a `.phd` (Powerhouse Document) file using the export button in the document toolbar at the top. In this toolbar, you will find all available functionality for your documents. The `.phd` file can be sent through any of your preferred channels to other users on your network.
|
|
192
230
|
|
|
193
|
-
### Up next
|
|
231
|
+
### Up next
|
|
194
232
|
|
|
195
|
-
Now that you have explored a Powerhouse package and discovered its basic functionalities, it is time to start building your own.
|
|
233
|
+
Now that you have explored a Powerhouse package and discovered its basic functionalities, it is time to start building your own.
|
|
196
234
|
Our next tutorial focuses on creating a simple to-do list document and will introduce you to the world of **Document Models**.
|
|
197
|
-
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Create a new to-do list document
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
This tutorial guides you through creating a simplified version of a 'Powerhouse project' for a **To-do List**.
|
|
6
|
+
A Powerhouse project primarily consists of a document model and its editor.
|
|
6
7
|
For this purpose, you'll be using Connect, our use-centric collaboration tool, locally, known as Connect in 'Studio mode'.
|
|
7
8
|
|
|
8
9
|
## Prerequisites
|
|
10
|
+
|
|
9
11
|
- Powerhouse CLI installed: `pnpm install -g ph-cmd`
|
|
10
12
|
- node.js 22 and pnpm installed
|
|
11
13
|
- Visual Studio Code (or your preferred IDE)
|
|
@@ -14,12 +16,15 @@ For this purpose, you'll be using Connect, our use-centric collaboration tool, l
|
|
|
14
16
|
If you need help with installing the prerequisites you can visit our page [prerequisites](/academy/MasteryTrack/BuilderEnvironment/Prerequisites)
|
|
15
17
|
|
|
16
18
|
## Quick start
|
|
19
|
+
|
|
17
20
|
Create a new Powerhouse project with a single command:
|
|
21
|
+
|
|
18
22
|
```bash
|
|
19
23
|
ph init
|
|
20
24
|
```
|
|
21
25
|
|
|
22
26
|
## Before you begin
|
|
27
|
+
|
|
23
28
|
1. Open your terminal (either your system terminal or IDE's integrated terminal)
|
|
24
29
|
2. Optionally, create a folder first to keep your Powerhouse projects:
|
|
25
30
|
|
|
@@ -27,18 +32,20 @@ ph init
|
|
|
27
32
|
mkdir ph-projects
|
|
28
33
|
cd ph-projects
|
|
29
34
|
```
|
|
35
|
+
|
|
30
36
|
3. Ensure you're in the correct directory before running the `ph init` command.
|
|
31
|
-
In the terminal, you will be asked to enter the project name. Fill in the project name and press Enter.
|
|
32
|
-
|
|
37
|
+
In the terminal, you will be asked to enter the project name. Fill in the project name and press Enter.
|
|
38
|
+
|
|
39
|
+
````bash
|
|
33
40
|
you@yourmachine:~/ph-projects % ph init
|
|
34
41
|
|
|
35
42
|
? What is the project name? ‣ getting-started
|
|
36
|
-
```
|
|
43
|
+
```
|
|
37
44
|
|
|
38
45
|
Once the project is created, you will see the following output:
|
|
39
46
|
```bash
|
|
40
47
|
Initialized empty Git repository in /Users/you/ph-projects/getting-started/.git/
|
|
41
|
-
The installation is done!
|
|
48
|
+
The installation is done!
|
|
42
49
|
```
|
|
43
50
|
|
|
44
51
|
Navigate to the newly created project directory:
|
|
@@ -62,15 +69,17 @@ In the terminal, you will be asked to enter the project name. Fill in the projec
|
|
|
62
69
|
|
|
63
70
|
A new browser window will open and you will see the Connect application. If it doesn't open automatically, you can open it manually by navigating to `http://localhost:3000/` in your browser.
|
|
64
71
|
|
|
65
|
-
You will see your local drive and a button to create a new drive.
|
|
66
|
-
If you local drive is not present navigate into Settings in the bottom left corner. Settings > Danger Zone > Clear Storage.
|
|
67
|
-
Clear the storage of your localhost application as it might has an old session cached.
|
|
72
|
+
You will see your local drive and a button to create a new drive.
|
|
73
|
+
If you local drive is not present navigate into Settings in the bottom left corner. Settings > Danger Zone > Clear Storage.
|
|
74
|
+
Clear the storage of your localhost application as it might has an old session cached.
|
|
75
|
+
|
|
76
|
+
````
|
|
68
77
|
|
|
69
|
-
4. Move into your local drive.
|
|
70
|
-
Create a new document model by clicking the `DocumentModel` button, found in the 'New Document' section at the bottom of the page.
|
|
78
|
+
4. Move into your local drive.
|
|
79
|
+
Create a new document model by clicking the `DocumentModel` button, found in the 'New Document' section at the bottom of the page.
|
|
71
80
|
|
|
72
81
|
If you've followed the steps correctly, you'll have an empty document where you can define the **'Document Specifications'**.
|
|
73
82
|
|
|
74
83
|
## Up next
|
|
75
84
|
|
|
76
|
-
In the next tutorials, you will learn how to specify, add code and build an editor for your document model and export it to be used in your Powerhouse package.
|
|
85
|
+
In the next tutorials, you will learn how to specify, add code and build an editor for your document model and export it to be used in your Powerhouse package.
|