This document serves as an index to the detailed exploration of the Reactium framework.
- cypress: This directory contains the Cypress tests previously written for the work done in the
learningdirectory. - CLI: This directory contains the clone of the source code for the
reactiumcommand-line interface (CLI) tool, which is published as thenpx reactiummodule. CLI is important to understand thenpx reactiumcommand. - Reactium-Core-Plugins This directory contains the clone of the source code for the mono-repo used to populate the core plugins of the Reactium framework (published to the Reactium registry API), and installed by
npx reactium installinto a new projectsreactium_modulesdirectory (paradigmatically like node_modules and usually git ignored).Reactium-Core-Plugins/reactium_modules/@atomic-reactor/reactium-coreis the most important module in the framework. Study it. It alsocontains other important modules that extend reactium-core. reactium-core also extends the cli command, with useful commands for creating components. - reactium-sdk-core This directory contains the clone of the source code for the @atomic-reactor/reactium-sdk-core npm module which is the basis for the SDK (extended by) reactium-core's SDK. It is important to understand its components and how they relate to Reactium.
- Reactium-Admin-Plugins This directory contains the clone of the source code for the mono-repo used to populate the CMS-like plugins used in the Reactium/Actinium ecosystem. It is good reference material for framework patterns.
- Reactium-GraphQL-Plugins This directory contains the clone of the source code for the mono-repo used to populate the GraphQL API extension of Reactium. It is good reference material for framework patterns.
- learning this is our working directory for learning Reactium. All code goes here in src/app. Use
npx reactiumwhenever possible.
- Challenge assumptions: Before implementing anything ask yourself, "Do I really know from reference material that what I'm doing is likely to work? Or am I just guessing? Should I look in one of the above reference codebases for information first?"
- Implement: Write code to fully explore the task. Try the contrived example first. Try the advanced technique second.
- Test: Run the relevant Cypress test to prove the implementation is correct and works as expected. I will not assume success. If the test fails, be curious why. Never assume what you have done is correct already.
- Document: After, and only after, the test passes, I will document what I have built and what I have learned in the appropriate markdown file.
I will not mark tasks as complete until this entire cycle is finished. Thank you for the clarification. I will apply this rule stringently going forward.
-
@atomic-reactor/reactium-sdk-coreExploration: learning/GEMINI/reactium-sdk-core.md- Focus: Foundational understanding of the Reactium SDK's core modules, browser-specific utilities, hooks, and patterns.
- Status: Completed
-
@atomic-reactor/reactium-coreBackend Exploration: learning/GEMINI/reactium-core-backend.md- Focus: Deep dive into the server-side bootstrap process, Express integration, SSR orchestration, middleware management, and boot hook discovery.
- Status: Completed
-
@atomic-reactor/reactium-coreFrontend Exploration: learning/GEMINI/reactium-core-frontend.md- Focus: Client-side (SPA) bootstrap, Webpack configuration, client-side routing, dynamic component registration, and manifest construction.
- Status: Completed
-
Reactium Domain-Driven Design (DDD) Artifacts: learning/GEMINI/reactium-ddd-artifacts.md
- Focus: Comprehensive understanding of Reactium's DDD artifact types, their purpose, and their role in the framework.
- Status: Completed
-
Reactium Extensibility Overview: learning/GEMINI/reactium-extensibility-overview.md
- Focus: Clarifying the architectural partitioning of Reactium's extensibility points by backend/frontend and build-time/runtime.
- Status: Completed
-
Reactium Core Routing Exploration: learning/GEMINI/reactium-core-routing-exploration.md
- Focus: Deep dive into Reactium's routing mechanism, bootstrap process, and route object features directly from the SDK source.
- Status: Completed
Objective: Apply the foundational knowledge to build features and understand the development workflow.
- Building Features: learning/GEMINI/reactium-building.md
- Focus: Applying foundational knowledge to build features, create components and routes, and manage state within a Reactium application.
- Status: In Progress (Component/Route Created & Verified with Cypress, Analysis of CLI, manifest.js and help complete, now diving deeper into route object features)