@powerhousedao/academy 4.1.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.
Files changed (104) hide show
  1. package/.vscode/settings.json +1 -1
  2. package/CHANGELOG.md +127 -1
  3. package/README.md +3 -3
  4. package/babel.config.js +1 -1
  5. package/blog/BeyondCommunication-ABlueprintForDevelopment.md +25 -24
  6. package/blog/TheChallengeOfChange.md +21 -21
  7. package/docs/academy/01-GetStarted/00-ExploreDemoPackage.mdx +61 -24
  8. package/docs/academy/01-GetStarted/01-CreateNewPowerhouseProject.md +21 -12
  9. package/docs/academy/01-GetStarted/02-DefineToDoListDocumentModel.md +24 -19
  10. package/docs/academy/01-GetStarted/03-ImplementOperationReducers.md +44 -41
  11. package/docs/academy/01-GetStarted/04-BuildToDoListEditor.md +10 -10
  12. package/docs/academy/01-GetStarted/05-SpecDrivenAI.md +143 -0
  13. package/docs/academy/01-GetStarted/home.mdx +185 -90
  14. package/docs/academy/01-GetStarted/styles.module.css +5 -5
  15. package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/01-Prerequisites.md +46 -18
  16. package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/02-StandardDocumentModelWorkflow.md +118 -68
  17. package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/03-BuilderTools.md +75 -33
  18. package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/_category_.json +6 -6
  19. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/01-WhatIsADocumentModel.md +30 -21
  20. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/02-SpecifyTheStateSchema.md +41 -37
  21. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/03-SpecifyDocumentOperations.md +29 -25
  22. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/04-UseTheDocumentModelGenerator.md +36 -37
  23. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/05-ImplementDocumentReducers.md +128 -109
  24. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/06-ImplementDocumentModelTests.md +95 -86
  25. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/07-ExampleToDoListRepository.md +7 -9
  26. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/_category_.json +6 -6
  27. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/01-BuildingDocumentEditors.md +65 -47
  28. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/02-ConfiguringDrives.md +77 -62
  29. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/03-BuildingADriveExplorer.md +360 -349
  30. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/06-DocumentTools/00-DocumentToolbar.mdx +16 -10
  31. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/06-DocumentTools/01-OperationHistory.md +10 -7
  32. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/06-DocumentTools/02-RevisionHistoryTimeline.md +26 -11
  33. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/06-DocumentTools/_category_.json +6 -6
  34. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/07-Authorization/01-RenownAuthenticationFlow.md +14 -7
  35. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/07-Authorization/02-Authorization.md +0 -1
  36. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/07-Authorization/_category_.json +5 -5
  37. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/_category_.json +1 -1
  38. package/docs/academy/02-MasteryTrack/04-WorkWithData/01-GraphQLAtPowerhouse.md +45 -33
  39. package/docs/academy/02-MasteryTrack/04-WorkWithData/02-UsingTheAPI.mdx +61 -18
  40. package/docs/academy/02-MasteryTrack/04-WorkWithData/03-UsingSubgraphs.md +50 -54
  41. package/docs/academy/02-MasteryTrack/04-WorkWithData/04-analytics-processor.md +126 -110
  42. package/docs/academy/02-MasteryTrack/04-WorkWithData/05-RelationalDbProcessor.md +75 -45
  43. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/GraphQL References/QueryingADocumentWithGraphQL.md +23 -21
  44. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/best-practices.md +9 -9
  45. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/graphql/index.md +11 -23
  46. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/graphql/integration.md +25 -9
  47. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/intro.md +10 -10
  48. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/benchmarks.md +1 -1
  49. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/index.md +16 -11
  50. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/memory.md +6 -5
  51. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/schema.md +2 -2
  52. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/typescript/utilities.md +7 -5
  53. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/use-cases/maker.md +32 -58
  54. package/docs/academy/02-MasteryTrack/04-WorkWithData/06-Analytics Engine/use-cases/processors.md +1 -1
  55. package/docs/academy/02-MasteryTrack/04-WorkWithData/07-drive-analytics.md +105 -71
  56. package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_01-SetupBuilderEnvironment.md +22 -0
  57. package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_02-CreateNewPowerhouseProject.md +9 -8
  58. package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_03-GenerateAnAnalyticsProcessor.md +28 -32
  59. package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_04-UpdateAnalyticsProcessor.md +25 -26
  60. package/docs/academy/02-MasteryTrack/04-WorkWithData/_ARCHIVE-AnalyticsProcessorTutorial/_category_.json +1 -1
  61. package/docs/academy/02-MasteryTrack/04-WorkWithData/_category_.json +7 -7
  62. package/docs/academy/02-MasteryTrack/05-Launch/01-IntroductionToPackages.md +3 -4
  63. package/docs/academy/02-MasteryTrack/05-Launch/02-PublishYourProject.md +69 -45
  64. package/docs/academy/02-MasteryTrack/05-Launch/03-SetupEnvironment.md +70 -40
  65. package/docs/academy/02-MasteryTrack/05-Launch/04-ConfigureEnvironment.md +1 -0
  66. package/docs/academy/02-MasteryTrack/05-Launch/_category_.json +7 -7
  67. package/docs/academy/02-MasteryTrack/_category_.json +6 -6
  68. package/docs/academy/03-ExampleUsecases/Chatroom/02-CreateNewPowerhouseProject.md +5 -3
  69. package/docs/academy/03-ExampleUsecases/Chatroom/03-DefineChatroomDocumentModel.md +38 -37
  70. package/docs/academy/03-ExampleUsecases/Chatroom/04-ImplementOperationReducers.md +45 -41
  71. package/docs/academy/03-ExampleUsecases/Chatroom/05-ImplementChatroomEditor.md +14 -14
  72. package/docs/academy/03-ExampleUsecases/Chatroom/06-LaunchALocalReactor.md +6 -6
  73. package/docs/academy/03-ExampleUsecases/Chatroom/_category_.json +1 -1
  74. package/docs/academy/04-APIReferences/00-PowerhouseCLI.md +9 -7
  75. package/docs/academy/04-APIReferences/01-ReactHooks.md +177 -129
  76. package/docs/academy/04-APIReferences/04-RelationalDatabase.md +121 -113
  77. package/docs/academy/04-APIReferences/05-PHDocumentMigrationGuide.md +48 -41
  78. package/docs/academy/04-APIReferences/_category_.json +6 -6
  79. package/docs/academy/05-Architecture/00-PowerhouseArchitecture.md +1 -2
  80. package/docs/academy/05-Architecture/01-WorkingWithTheReactor.md +11 -8
  81. package/docs/academy/05-Architecture/05-DocumentModelTheory/_category_.json +1 -1
  82. package/docs/academy/05-Architecture/_category_.json +6 -6
  83. package/docs/academy/06-ComponentLibrary/00-DocumentEngineering.md +25 -23
  84. package/docs/academy/06-ComponentLibrary/02-CreateCustomScalars.md +105 -93
  85. package/docs/academy/06-ComponentLibrary/03-IntegrateIntoAReactComponent.md +1 -0
  86. package/docs/academy/06-ComponentLibrary/_category_.json +7 -7
  87. package/docs/academy/07-Cookbook.md +267 -34
  88. package/docs/academy/08-Glossary.md +7 -1
  89. package/docs/bookofpowerhouse/01-Overview.md +2 -2
  90. package/docs/bookofpowerhouse/02-GeneralFrameworkAndPhilosophy.md +1 -7
  91. package/docs/bookofpowerhouse/03-PowerhouseSoftwareArchitecture.md +10 -7
  92. package/docs/bookofpowerhouse/04-DevelopmentApproaches.md +10 -4
  93. package/docs/bookofpowerhouse/05-SNOsandANewModelForOSSandPublicGoods.md +23 -30
  94. package/docs/bookofpowerhouse/06-SNOsInActionAndPlatformEconomies.md +0 -7
  95. package/docusaurus.config.ts +64 -66
  96. package/package.json +1 -1
  97. package/scripts/generate-combined-cli-docs.ts +43 -13
  98. package/sidebars.ts +1 -0
  99. package/src/components/HomepageFeatures/index.tsx +171 -78
  100. package/src/components/HomepageFeatures/styles.module.css +1 -2
  101. package/src/css/custom.css +89 -89
  102. package/src/pages/_archive-homepage.tsx +17 -16
  103. package/src/theme/DocCardList/index.tsx +9 -8
  104. package/static.json +6 -6
@@ -1,3 +1,3 @@
1
1
  {
2
2
  "svg.preview.background": "transparent"
3
- }
3
+ }
package/CHANGELOG.md CHANGED
@@ -1,4 +1,130 @@
1
- ## 4.1.0-staging.1 (2025-08-21)
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
+
61
+ ## 5.0.0-staging.1 (2025-09-04)
62
+
63
+ This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
64
+
65
+ ## 4.1.0-dev.44 (2025-09-04)
66
+
67
+ ### 🚀 Features
68
+
69
+ - **switchboard:** updated readme ([9659cf035](https://github.com/powerhouse-inc/powerhouse/commit/9659cf035))
70
+
71
+ ### ❤️ Thank You
72
+
73
+ - Frank
74
+
75
+ ## 4.1.0-dev.43 (2025-09-02)
76
+
77
+ This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
78
+
79
+ ## 4.1.0-dev.42 (2025-09-02)
80
+
81
+ This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
82
+
83
+ ## 4.1.0-dev.41 (2025-09-02)
84
+
85
+ ### 🩹 Fixes
86
+
87
+ - **document-drive:** install openssl ([89f21529e](https://github.com/powerhouse-inc/powerhouse/commit/89f21529e))
88
+ - **document-drive:** prisma build ([7884368a2](https://github.com/powerhouse-inc/powerhouse/commit/7884368a2))
89
+ - **switchboard, connect:** fetch proper tag ([79a0bc967](https://github.com/powerhouse-inc/powerhouse/commit/79a0bc967))
90
+
91
+ ### ❤️ Thank You
92
+
93
+ - Frank
94
+
95
+ ## 4.1.0-dev.40 (2025-09-02)
96
+
97
+ This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
98
+
99
+ ## 4.1.0-dev.39 (2025-09-02)
100
+
101
+ This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
102
+
103
+ ## 4.1.0-dev.38 (2025-08-30)
104
+
105
+ ### 🚀 Features
106
+
107
+ - gql-gen spec ([5bf2c7226](https://github.com/powerhouse-inc/powerhouse/commit/5bf2c7226))
108
+ - **reactor:** we have a reactor facade ([7a61e68ab](https://github.com/powerhouse-inc/powerhouse/commit/7a61e68ab))
109
+ - **reactor:** impstubbing out initial interface and types ([b74b194f9](https://github.com/powerhouse-inc/powerhouse/commit/b74b194f9))
110
+
111
+ ### ❤️ Thank You
112
+
113
+ - Benjamin Jordan (@thegoldenmule)
114
+
115
+ ## 4.1.0-dev.37 (2025-08-29)
116
+
117
+ This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
118
+
119
+ ## 4.1.0-dev.36 (2025-08-28)
120
+
121
+ This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
122
+
123
+ ## 4.1.0-dev.35 (2025-08-27)
124
+
125
+ This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
126
+
127
+ ## 4.1.0-dev.34 (2025-08-26)
2
128
 
3
129
  This was a version bump only for @powerhousedao/academy to align it with other projects, there were no code changes.
4
130
 
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
@@ -1,3 +1,3 @@
1
1
  module.exports = {
2
- presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
2
+ presets: [require.resolve("@docusaurus/core/lib/babel/preset")],
3
3
  };
@@ -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
- * **Planning and Design**:
38
- * During the design phase, schemas enable teams to validate assumptions early. Data requirements and workflows can be reviewed collaboratively, ensuring alignment before development begins.
39
- * **Implementation**:
40
- * Developers use schemas as a definitive source of truth, minimizing the need for rework caused by unclear specifications.
41
- * **Testing and Maintenance**:
42
- * When the schema evolves, it highlights changes or inconsistencies, making it easier to adapt systems without breaking existing functionality.
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
- * **Queries** retrieve data efficiently.
53
- * **Mutations** handle data modifications.
54
- * **Subscriptions** enable real-time updates.
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
- * **Type Safety Across the Stack**:
63
- * 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.
64
- * **Improved Developer Productivity**:
65
- * With type safety built into both the API and the client code, developers can catch potential issues during development, saving time and reducing bugs.
66
- * **Seamless Front-End Integrations**:
67
- * For front-end teams, GraphQL and TypeScript streamline the process of building data-driven applications, ensuring that APIs and components stay in sync.
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
- * **Streamlined API Development**:
76
- * With its declarative queries, GraphQL eliminates over-fetching and under-fetching of data, allowing front-end teams to request only what they need.
77
- * **Empowered Non-Technical Contributors**:
78
- * 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.
79
- * **Real-Time Introspection**:
80
- * Tools like GraphQL Playground allow teams to inspect and test APIs dynamically, making development and debugging faster and more collaborative.
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
- * **Rapid Prototyping**: Organizations can quickly test ideas without committing to large-scale development, allowing for faster feedback and iteration.
41
- * **Iterative Development**: Instead of delivering a finished product all at once, RAD emphasizes incremental improvements, reducing the risk of misaligned expectations.
42
- * **Adaptability to Change**: By designing with flexibility in mind, RAD allows organizations to pivot and respond to new demands or challenges with ease.
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
- * **Lean Start-up Methodology**: Focussing on finding product market fit early with a minimum viable product through a build, measure, learn cycle.
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
  ![Iteration](./images/Iteration.png)
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*
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
- * **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.
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
- * **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.
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
- >“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”
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
- Click the returned localhost URL and you should see Connect Studio appear in your browser.
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 src={require("./images/Packagemanager.png").default} alt="Package Manager" />
96
- <figcaption>The Package Manager showing the installed todo-demo-package.</figcaption>
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 src={require("./images/TodoDriveApp.png").default} alt="Todo Drive App" />
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 src={require("./images/OperationsHistoryButton.png").default} alt="Operations History Button" />
135
- <figcaption> You can find the button to visit the operations history in the document model toolbar </figcaption>
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 src={require("./images/OperationsHistory.png").default} alt="Operations History" />
140
- <figcaption>Example of the operations history for a document, showing all modifications made to it in a list. </figcaption>
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>The Renown login screen, prompting for a signature from a wallet.</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 src={require("./images/ConnectAddress.png").default} alt="Connect Address for DID" />
170
- <figcaption>A newly generated DID and address shown within the Connect interface.</figcaption>
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 src={require("./images/LoginComplete.png").default} alt="Renown Login Complete" />
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 src={require("./images/OperationsHistorySignature.png").default} alt="Operation History Signature" />
186
- <figcaption>Your DID is now signing the operations that are being added to the history.</figcaption>
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
- This tutorial guides you through creating a simplified version of a 'Powerhouse project' for a **To-do List**.
5
- A Powerhouse project primarily consists of a document model and its editor.
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
- ```bash
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.