@powerhousedao/academy 5.0.0-staging.8 → 5.0.1-staging.2
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 +404 -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 +67 -30
- package/docs/academy/01-GetStarted/01-CreateNewPowerhouseProject.md +38 -21
- 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-VetraStudio.md +164 -0
- package/docs/academy/01-GetStarted/06-ReactorMCP.md +58 -0
- package/docs/academy/01-GetStarted/home.mdx +185 -90
- package/docs/academy/01-GetStarted/images/Modules.png +0 -0
- package/docs/academy/01-GetStarted/images/VetraStudioDrive.png +0 -0
- 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 +25 -17
- 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 +104 -43
- 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 +268 -35
- 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 +9 -7
- package/scripts/generate-combined-cli-docs.ts +43 -13
- package/sidebars.ts +2 -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/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Tool: Vetra Studio
|
|
2
|
+
|
|
3
|
+
This chapter introduces you to one of the most powerfull features of the Powerhouse development framework: Specification Driven AI-control. In the **'Get Started'** chapter we've been making use of strict schema definition principles to communicate the intended use case of our reactive documents.
|
|
4
|
+
|
|
5
|
+
:::tip Important
|
|
6
|
+
The **schema definition language**, is a not only a shared language that bridges the gap between developer, designer and analyst but also the gap between **builder and AI-agent**.
|
|
7
|
+
:::
|
|
8
|
+
|
|
9
|
+
## Vision: Specification Driven AI
|
|
10
|
+
|
|
11
|
+
At Powerhouse we are embracing the progress of AI assisted coding while unlocking the next level of AI control through **specification driven AI control**.
|
|
12
|
+
|
|
13
|
+
- Communicate your solution and intent through a structured specification framework designed for AI collaboration.
|
|
14
|
+
- Specifications enable precise, iterative edits, since all our specification documents are machine-readable and executable.
|
|
15
|
+
- Specifications offer the ability to update exact parameters and properties as your specs evolve in lock-step with your agent.
|
|
16
|
+
- Specifications turn fragile sandcastles into solid, editable, and maintainable functionality with predictable results.
|
|
17
|
+
|
|
18
|
+
This approach allows for the creation of editable specifications, enabling business analysts to modify details and instruct the AI to generate code based on updated specifications.
|
|
19
|
+
It results in composable, maintainable, and scalable functionality.
|
|
20
|
+
|
|
21
|
+
## Introducing Vetra Studio
|
|
22
|
+
|
|
23
|
+
**Vetra Studio** serves as a centralized hub for developers to access and manage specifications.
|
|
24
|
+
It allows developers to open packages (Git repositories with metadata) from a Vetra package library, providing access to a remote Vetra drive where all specifications are stored.
|
|
25
|
+
|
|
26
|
+
This setup ensures that all necessary documentation and project requirements are in one accessible location, streamlining communication and agreement on requirements and operations. Additionally, **Vetra Studio** functions as the orchestration hub where you as a builder assemble all the necessary specifications for your intended use-case, software solution or package. For each of the different **modules** that together form a package a specification document can be created in **Vetra Studio**.
|
|
27
|
+
|
|
28
|
+
As Vetra Studio matures each of these specification documents will offer an interface by which you as a builder get more control over the modules that make up your package.
|
|
29
|
+
|
|
30
|
+
<figure className="image-container">
|
|
31
|
+
<img
|
|
32
|
+
src={require("./images/Modules.png").default}
|
|
33
|
+
alt="Modules"
|
|
34
|
+
/>
|
|
35
|
+
<figcaption>The list of available modules color coded according to the 3 categories.</figcaption>
|
|
36
|
+
</figure>
|
|
37
|
+
|
|
38
|
+
### Module Categories
|
|
39
|
+
|
|
40
|
+
#### 1. Document Models
|
|
41
|
+
- **Document model specification**: Defines the structure and operations of a document model using GraphQL SDL, ensuring consistent data management and processing.
|
|
42
|
+
|
|
43
|
+
#### 2. User Experiences
|
|
44
|
+
- **Editor specification**: Outlines the interface and functionalities of a document model editor, allowing users to interact with and modify document data.
|
|
45
|
+
- **Drive-app specification**: Specifies the UI and interactions for managing documents within a Drive, providing tailored views and functionalities.
|
|
46
|
+
|
|
47
|
+
#### 3. Data integrations
|
|
48
|
+
- **Subgraph specification**: Details the connections and relationships within a subgraph, facilitating efficient data querying and manipulation.
|
|
49
|
+
- **Codegen Processor Specification**: Describes the process for automatically generating code from document model specifications, ensuring alignment with intended architecture.
|
|
50
|
+
- **RelationalDb Processor Specification**: Defines how relational databases are structured and queried, supporting efficient data management and retrieval.
|
|
51
|
+
|
|
52
|
+
<figure className="image-container">
|
|
53
|
+
<img
|
|
54
|
+
src={require("./images/VetraStudioDrive.png").default}
|
|
55
|
+
alt="Vetra Studio Drive"
|
|
56
|
+
/>
|
|
57
|
+
<figcaption>The Vetra Studio Drive, a builder app that collects all of the specification of a package.</figcaption>
|
|
58
|
+
</figure>
|
|
59
|
+
|
|
60
|
+
## Vetra Studio Workflow
|
|
61
|
+
|
|
62
|
+
### 1. Launch Vetra Studio
|
|
63
|
+
|
|
64
|
+
You can launch Vetra Studio in two modes:
|
|
65
|
+
|
|
66
|
+
#### Interactive Mode (Recommended for Development)
|
|
67
|
+
```bash
|
|
68
|
+
ph vetra --interactive
|
|
69
|
+
```
|
|
70
|
+
In interactive mode:
|
|
71
|
+
- You'll receive confirmation prompts before any code generation
|
|
72
|
+
- Changes require explicit confirmation before being processed
|
|
73
|
+
- Provides better control and visibility over document changes
|
|
74
|
+
|
|
75
|
+
#### Standard Mode
|
|
76
|
+
```bash
|
|
77
|
+
ph vetra
|
|
78
|
+
```
|
|
79
|
+
In standard mode:
|
|
80
|
+
- Changes are processed automatically with 1-second debounce
|
|
81
|
+
- Multiple changes are batched and processed together
|
|
82
|
+
- Uses the latest document state for processing
|
|
83
|
+
|
|
84
|
+
### 2. Launch Claude with Reactor-MCP
|
|
85
|
+
|
|
86
|
+
Vetra Studio integrates deeply with Claude through MCP (Model Control Protocol). This is where AI comes into the mix and you get the chance to have greater control and direction over what your llm is coding for you.
|
|
87
|
+
|
|
88
|
+
#### 1. Start the Reactor MCP:
|
|
89
|
+
```bash
|
|
90
|
+
ph mcp
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### 2. Verify MCP connection:
|
|
94
|
+
- Check that the Reactor MCP is available.
|
|
95
|
+
- Confirm Vetra Studio shows "Connected to Reactor MCP"
|
|
96
|
+
|
|
97
|
+
- To learn what is a [Reactor] itself read (apps/academy/docs/academy/Architecture/WorkingWithTheReactor)
|
|
98
|
+
- To learn more about the [Reactor MCP] read (apps/academy/docs/academy/GetStarted/ReactorMCP)
|
|
99
|
+
|
|
100
|
+
#### Key Reactor MCP Features:
|
|
101
|
+
- Automatic document model creation from natural language descriptions
|
|
102
|
+
- Smart editor generation based on document models
|
|
103
|
+
- Automatically triggers code generation when documents reach valid state
|
|
104
|
+
|
|
105
|
+
The powerhouse config includes a vetra URL for consistent project configuration across different environments.
|
|
106
|
+
|
|
107
|
+
:::tip
|
|
108
|
+
- Vetra supports integration with custom remote drives, allowing users to create, share and manage documents within these drives.
|
|
109
|
+
- The MCP server enables the agent to work with both existing and newly created document models.
|
|
110
|
+
:::
|
|
111
|
+
|
|
112
|
+
### 3. Vetra Studio Package Creation Workflow
|
|
113
|
+
|
|
114
|
+
#### A. Set Package Description (Required)
|
|
115
|
+
1. Provide a name for your package
|
|
116
|
+
2. Add a meaningful description
|
|
117
|
+
3. Add keywords to add search terms to your package
|
|
118
|
+
4. Confirm changes when prompted in interactive mode
|
|
119
|
+
|
|
120
|
+
#### B. Define Document Model (Required)
|
|
121
|
+
You can create document models in two ways:
|
|
122
|
+
|
|
123
|
+
1. **Using MCP (AI-Assisted)**
|
|
124
|
+
- Describe your document needs in natural language in great detail.
|
|
125
|
+
- Claude will:
|
|
126
|
+
- Generate an appropriate schema
|
|
127
|
+
- Create the necessary operations
|
|
128
|
+
- Implement the required reducers
|
|
129
|
+
- Place the document in the Vetra drive
|
|
130
|
+
|
|
131
|
+
2. **Manual Creation**
|
|
132
|
+
- Define document schema with fields and types as in the **'Get Started'**
|
|
133
|
+
- Create the necessary operations
|
|
134
|
+
- Add the required modules to your package
|
|
135
|
+
- The document model creation chapter in the Mastery track provides in depth support [here](apps/academy/docs/academy/MasteryTrack/DocumentModelCreation/SpecifyTheStateSchema)
|
|
136
|
+
|
|
137
|
+
#### C. Add Document Editor (Required)
|
|
138
|
+
1. **Using MCP (AI-Assisted)**
|
|
139
|
+
- Request Claude to create an editor for your document. Do this with the help of a detailed description of the user interface, user experience and logic that you wish to generate. Make sure to reference operations from the document model to get the best results
|
|
140
|
+
- Claude will:
|
|
141
|
+
- Generate editor components
|
|
142
|
+
- Implement necessary hooks
|
|
143
|
+
- Create required UI elements
|
|
144
|
+
|
|
145
|
+
2. **Manual Creation**
|
|
146
|
+
- Select your target document model
|
|
147
|
+
- Configure the currently limited editor properties
|
|
148
|
+
- Add the editor specification to Vetra Studio drive
|
|
149
|
+
- The system will generate scaffolding code
|
|
150
|
+
|
|
151
|
+
#### D. Data Integrations (Coming Soon)
|
|
152
|
+
Support for:
|
|
153
|
+
- Subgraph integration
|
|
154
|
+
- Code generation processors
|
|
155
|
+
- Relational database processors
|
|
156
|
+
|
|
157
|
+
### Best Practices
|
|
158
|
+
|
|
159
|
+
**Working with MCP and claude**
|
|
160
|
+
- Provide clear, specific instructions and ask for clarifying questions to be answered before code generation.
|
|
161
|
+
- Review generated schemas before confirmation and work in layers instead of 'one-shotting' your code.
|
|
162
|
+
- Verify implementation details in generated code before continuing.
|
|
163
|
+
- Always double-check proposed next actions
|
|
164
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Tool: Reactor MCP
|
|
2
|
+
|
|
3
|
+
**Reactor-mcp** is a Model Context Protocol (MCP) server for the Powerhouse ecosystem that provides AI agents and tools with structured access to document model operations.
|
|
4
|
+
It serves as a bridge between AI systems and the Powerhouse document management infrastructure.
|
|
5
|
+
|
|
6
|
+
## Main Functions of the Reactor-mcp
|
|
7
|
+
|
|
8
|
+
**Document Operations**:
|
|
9
|
+
- createDocument - Create new documents
|
|
10
|
+
- getDocument - Retrieve documents by ID
|
|
11
|
+
- addActions - Add actions to modify document state
|
|
12
|
+
- deleteDocument - Remove documents
|
|
13
|
+
|
|
14
|
+
**Drive Operations**:
|
|
15
|
+
- getDrives - List all document drives
|
|
16
|
+
- addDrive - Create new drives
|
|
17
|
+
- getDrive - Retrieve specific drives
|
|
18
|
+
- addRemoteDrive - Connect to remote drives
|
|
19
|
+
|
|
20
|
+
**Document Model Operations**:
|
|
21
|
+
- getDocumentModels - List available document model types
|
|
22
|
+
- getDocumentModelSchema - Get schema for specific document models
|
|
23
|
+
|
|
24
|
+
<details>
|
|
25
|
+
<summary>Architecture Context</summary>
|
|
26
|
+
|
|
27
|
+
Within the broader Powerhouse ecosystem:
|
|
28
|
+
|
|
29
|
+
- Document Model: Defines structure and operations for document types
|
|
30
|
+
- Document Drive: Manages collections of documents with sync capabilities
|
|
31
|
+
- Reactor-MCP: Provides AI/tool access to document operations
|
|
32
|
+
- Connect/Switchboard: User interfaces and synchronization servers
|
|
33
|
+
|
|
34
|
+
The reactor-mcp essentially makes the sophisticated document model system accessible to AI agents and external tools through a standardized protocol, enabling programmatic document creation, modification, and management within the Powerhouse ecosystem.
|
|
35
|
+
|
|
36
|
+
</details>
|
|
37
|
+
|
|
38
|
+
### Document Model Agent
|
|
39
|
+
|
|
40
|
+
Alongside the MCP is a **specialized AI agent** for document model creation:
|
|
41
|
+
|
|
42
|
+
- Purpose: Guide users through creating document models
|
|
43
|
+
- Workflow: Requirements gathering → Design confirmation → Implementation
|
|
44
|
+
- Tools: Comprehensive set of MCP tools for model management
|
|
45
|
+
- Capabilities:
|
|
46
|
+
- State schema definition
|
|
47
|
+
- Operation creation
|
|
48
|
+
- Module organization
|
|
49
|
+
- Code generation
|
|
50
|
+
|
|
51
|
+
:::tip Supports with:
|
|
52
|
+
|
|
53
|
+
1. **AI-Assisted Document Model Creation**: AI agents can use the MCP tools to help users create and modify document models
|
|
54
|
+
2. **Automated Document Management**: Programmatic creation and management of documents and drives
|
|
55
|
+
3. **Integration with AI Tools**: Claude, GPT, or other AI systems can use this as an MCP server to interact with Powerhouse
|
|
56
|
+
4. **Development Tooling**: CLI and development server for working with document models locally
|
|
57
|
+
:::
|
|
58
|
+
|
|
@@ -4,9 +4,9 @@ slug: /
|
|
|
4
4
|
sidebar_class_name: category-index-page
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
import React from
|
|
8
|
-
import styles from
|
|
9
|
-
import BrowserOnly from
|
|
7
|
+
import React from "react";
|
|
8
|
+
import styles from "./styles.module.css";
|
|
9
|
+
import BrowserOnly from "@docusaurus/BrowserOnly";
|
|
10
10
|
|
|
11
11
|
<div className={styles.learningPath}>
|
|
12
12
|
{/* Get Started Card - Full Width */}
|
|
@@ -44,108 +44,203 @@ import BrowserOnly from '@docusaurus/BrowserOnly';
|
|
|
44
44
|
</div>
|
|
45
45
|
</div>
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
<div></div> {/* Placeholder for the deleted "New Link" card */}
|
|
47
|
+
{/* Row 1: [Empty Placeholder], Create, [Empty Placeholder] */}
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
<div></div> {/* Placeholder for the deleted "New Link" card */}
|
|
50
|
+
|
|
51
|
+
<div className={styles.pathCard} style={{ border: "1px solid #4FC86F" }}>
|
|
52
|
+
<div className={styles.cardHeader}>
|
|
53
|
+
<h3 className="card-title">
|
|
54
|
+
<img
|
|
55
|
+
src="/img/academy/icons/Flash.svg"
|
|
56
|
+
alt=""
|
|
57
|
+
className={styles.titleIcon}
|
|
58
|
+
/>
|
|
59
|
+
Get started
|
|
60
|
+
</h3>
|
|
61
|
+
</div>
|
|
62
|
+
<div className={styles.cardContent}>
|
|
63
|
+
<a
|
|
64
|
+
href="/academy/GetStarted/CreateNewPowerhouseProject"
|
|
65
|
+
className="path-button"
|
|
66
|
+
>
|
|
67
|
+
Build a todo-list document model
|
|
68
|
+
</a>
|
|
60
69
|
</div>
|
|
70
|
+
</div>
|
|
61
71
|
|
|
62
|
-
|
|
72
|
+
<div></div> {/* Placeholder for the deleted "Document Model Theory" card */}
|
|
63
73
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
<a href="/academy/ComponentLibrary/DocumentEngineering" className="path-button">Component library</a>
|
|
77
|
-
</div>
|
|
74
|
+
{/* Row 2: Build User Experiences, Builder Track Image, Work with Data */}
|
|
75
|
+
|
|
76
|
+
<div className={styles.pathCard} style={{ border: "1px solid #4FC86F" }}>
|
|
77
|
+
<div className={styles.cardHeader}>
|
|
78
|
+
<h3 className="card-title">
|
|
79
|
+
<img
|
|
80
|
+
src="/img/academy/icons/Editor.svg"
|
|
81
|
+
alt=""
|
|
82
|
+
className={styles.titleIcon}
|
|
83
|
+
/>
|
|
84
|
+
Build user experiences
|
|
85
|
+
</h3>
|
|
78
86
|
</div>
|
|
87
|
+
<div className={styles.cardContent}>
|
|
88
|
+
<a href="/academy/GetStarted/BuildToDoListEditor" className="path-button">
|
|
89
|
+
Build a todo-list editor
|
|
90
|
+
</a>
|
|
91
|
+
<a
|
|
92
|
+
href="/academy/MasteryTrack/BuildingUserExperiences/BuildingDocumentEditors"
|
|
93
|
+
className="path-button"
|
|
94
|
+
>
|
|
95
|
+
Build document editors
|
|
96
|
+
</a>
|
|
97
|
+
<a
|
|
98
|
+
href="/academy/MasteryTrack/BuildingUserExperiences/BuildingADriveExplorer"
|
|
99
|
+
className="path-button"
|
|
100
|
+
>
|
|
101
|
+
Build custom drive explorers
|
|
102
|
+
</a>
|
|
103
|
+
<a
|
|
104
|
+
href="/academy/ComponentLibrary/DocumentEngineering"
|
|
105
|
+
className="path-button"
|
|
106
|
+
>
|
|
107
|
+
Component library
|
|
108
|
+
</a>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
79
111
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
112
|
+
<div
|
|
113
|
+
className={styles.middleColumn}
|
|
114
|
+
style={{
|
|
115
|
+
display: "flex",
|
|
116
|
+
justifyContent: "center",
|
|
117
|
+
alignItems: "flex-start",
|
|
118
|
+
paddingTop: "-20px",
|
|
119
|
+
position: "relative",
|
|
120
|
+
}}
|
|
121
|
+
>
|
|
122
|
+
<img src="/img/Union.svg" alt="Powerhouse Union" width="250" />
|
|
123
|
+
<div className={styles.masteryTrackTitle}>
|
|
124
|
+
<h3 className="card-title" style={{ margin: 0 }}>
|
|
125
|
+
Mastery track
|
|
126
|
+
</h3>
|
|
91
127
|
</div>
|
|
128
|
+
</div>
|
|
92
129
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
130
|
+
<div className={styles.pathCard} style={{ border: "1px solid #4FC86F" }}>
|
|
131
|
+
<div className={styles.cardHeader}>
|
|
132
|
+
<h3 className="card-title">
|
|
133
|
+
<img
|
|
134
|
+
src="/img/academy/icons/Data.svg"
|
|
135
|
+
alt=""
|
|
136
|
+
className={styles.titleIcon}
|
|
137
|
+
/>
|
|
138
|
+
Work with data
|
|
139
|
+
</h3>
|
|
140
|
+
</div>
|
|
141
|
+
<div className={styles.cardContent}>
|
|
142
|
+
<a
|
|
143
|
+
href="/academy/MasteryTrack/WorkWithData/UsingTheAPI"
|
|
144
|
+
className="path-button"
|
|
145
|
+
>
|
|
146
|
+
Read & write through the API
|
|
147
|
+
</a>
|
|
148
|
+
<a
|
|
149
|
+
href="/academy/MasteryTrack/WorkWithData/WorkingWithSubgraphs"
|
|
150
|
+
className="path-button"
|
|
151
|
+
>
|
|
152
|
+
Create your own subgraph
|
|
153
|
+
</a>
|
|
154
|
+
<a
|
|
155
|
+
href="/academy/MasteryTrack/WorkWithData/Analytics-Engine/intro"
|
|
156
|
+
className="path-button"
|
|
157
|
+
>
|
|
158
|
+
Use the analytics engine
|
|
159
|
+
</a>
|
|
105
160
|
</div>
|
|
161
|
+
</div>
|
|
106
162
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
163
|
+
{/* Launch Card - Full Width with 3 column buttons - RE-INSERTED */}
|
|
164
|
+
|
|
165
|
+
<div className={`${styles.pathCard} ${styles.fullWidth}`}>
|
|
166
|
+
<div className={styles.cardHeader}>
|
|
167
|
+
<h3 className="card-title">
|
|
168
|
+
<img
|
|
169
|
+
src="/img/academy/icons/Launch.svg"
|
|
170
|
+
alt=""
|
|
171
|
+
className={styles.titleIcon}
|
|
172
|
+
/>
|
|
173
|
+
Launch
|
|
174
|
+
</h3>
|
|
175
|
+
</div>
|
|
176
|
+
<div className={styles.cardContent}>
|
|
177
|
+
<div className={styles.buttonContainer}>
|
|
178
|
+
<a
|
|
179
|
+
href="/academy/MasteryTrack/Launch/IntroductionToPackages"
|
|
180
|
+
className="path-button"
|
|
181
|
+
>
|
|
182
|
+
Intro to packages
|
|
183
|
+
</a>
|
|
184
|
+
<a
|
|
185
|
+
href="/academy/MasteryTrack/Launch/PublishYourProject"
|
|
186
|
+
className="path-button"
|
|
187
|
+
>
|
|
188
|
+
Publish your project
|
|
189
|
+
</a>
|
|
190
|
+
<a
|
|
191
|
+
href="/academy/MasteryTrack/Launch/SetupEnvironment"
|
|
192
|
+
className="path-button"
|
|
193
|
+
>
|
|
194
|
+
Set-up a cloud environment
|
|
195
|
+
</a>
|
|
121
196
|
</div>
|
|
122
197
|
</div>
|
|
198
|
+
</div>
|
|
123
199
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
200
|
+
{/* Row 3: Cookbook, Use-cases, Advanced Topics */}
|
|
201
|
+
|
|
202
|
+
<div className={styles.pathCard}>
|
|
203
|
+
<div className={styles.cardHeader}>
|
|
204
|
+
<h3 className="card-title">
|
|
205
|
+
<img
|
|
206
|
+
src="/img/academy/icons/Cookbook.svg"
|
|
207
|
+
alt=""
|
|
208
|
+
className={styles.titleIcon}
|
|
209
|
+
/>
|
|
210
|
+
Cookbook
|
|
211
|
+
</h3>
|
|
135
212
|
</div>
|
|
213
|
+
<div className={styles.cardContent}>
|
|
214
|
+
<a href="/academy/Cookbook" className="path-button">
|
|
215
|
+
Powerhouse recipes
|
|
216
|
+
</a>
|
|
217
|
+
</div>
|
|
218
|
+
</div>
|
|
136
219
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
220
|
+
{/* Ensure this Use-cases Card block is clean */}
|
|
221
|
+
|
|
222
|
+
<div className={styles.pathCard}>
|
|
223
|
+
{" "}
|
|
224
|
+
{/* New Use-cases Card */}
|
|
225
|
+
<div className={styles.cardHeader}>
|
|
226
|
+
<h3 className="card-title">
|
|
227
|
+
<img
|
|
228
|
+
src="/img/academy/icons/Cookbook.svg"
|
|
229
|
+
alt="Use-cases Icon"
|
|
230
|
+
className={styles.titleIcon}
|
|
231
|
+
/>
|
|
232
|
+
Use-cases
|
|
233
|
+
</h3>
|
|
234
|
+
</div>
|
|
235
|
+
<div className={styles.cardContent}>
|
|
236
|
+
<a
|
|
237
|
+
href="/academy/ExampleUsecases/Chatroom/SetupBuilderEnvironment"
|
|
238
|
+
className="path-button"
|
|
239
|
+
>
|
|
240
|
+
Explore use-cases
|
|
241
|
+
</a>
|
|
148
242
|
</div>
|
|
243
|
+
</div>
|
|
149
244
|
|
|
150
245
|
<div className={styles.pathCard}>
|
|
151
246
|
<div className={styles.cardHeader}>
|
|
@@ -158,4 +253,4 @@ import BrowserOnly from '@docusaurus/BrowserOnly';
|
|
|
158
253
|
<a href="/academy/Architecture/PowerhouseArchitecture" className="path-button">Learn more</a>
|
|
159
254
|
</div>
|
|
160
255
|
</div>
|
|
161
|
-
</div>
|
|
256
|
+
</div>
|
|
Binary file
|
|
Binary file
|
|
@@ -101,23 +101,23 @@
|
|
|
101
101
|
top: 18px;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
:global([data-theme=
|
|
104
|
+
:global([data-theme="dark"]) .masteryTrackTitle {
|
|
105
105
|
background-color: var(--ifm-card-background-color);
|
|
106
106
|
border: 1px solid var(--ifm-color-emphasis-200);
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
:global([data-theme=
|
|
109
|
+
:global([data-theme="dark"]) .pathCard {
|
|
110
110
|
background: var(--ifm-card-background-color);
|
|
111
111
|
border: 1px solid var(--ifm-color-emphasis-200);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
:global([data-theme=
|
|
114
|
+
:global([data-theme="dark"]) :global(.path-button) {
|
|
115
115
|
background: var(--ifm-color-emphasis-100);
|
|
116
116
|
border-color: var(--ifm-color-emphasis-200);
|
|
117
117
|
color: var(--ifm-font-color-primary);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
:global([data-theme=
|
|
120
|
+
:global([data-theme="dark"]) :global(.path-button:hover) {
|
|
121
121
|
background: var(--ifm-color-emphasis-200);
|
|
122
122
|
border-color: var(--ifm-color-emphasis-300);
|
|
123
|
-
}
|
|
123
|
+
}
|