|
1 | | -# Root.js Project Overview |
2 | | - |
3 | | -Root.js is a full-featured web development tool with a built-in CMS, designed for building modern, performant websites. |
4 | | - |
5 | | -## Key Features |
6 | | - |
7 | | -- **TSX Rendering**: Uses TSX for server-side rendering and templating. |
8 | | -- **Web Components**: Supports standard Web Components for building UI elements. |
9 | | -- **File Routes**: Intuitive file-based routing system. |
10 | | -- **i18n**: Built-in support for internationalization. |
11 | | -- **CMS**: Integrated Content Management System for managing content. |
12 | | - |
13 | | -## Project Structure |
14 | | - |
15 | | -The project is a monorepo managed with `pnpm` and `turbo`. |
16 | | - |
17 | | -### Packages (`packages/`) |
18 | | - |
19 | | -- **@blinkk/root** (`packages/root`): The core framework package. |
20 | | -- **@blinkk/root-cms** (`packages/root-cms`): The CMS integration for Root.js. |
21 | | -- **@blinkk/create-root** (`packages/create-root`): CLI tool to scaffold new Root.js projects. |
22 | | -- **Other Packages**: |
23 | | - - `eslint-config-root`: Shared ESLint configuration. |
24 | | - - `rds`: Likely related to data services or storage (needs verification). |
25 | | - - `root-core`: Core logic/utilities. |
26 | | - - `root-db`: Database abstraction/layer. |
27 | | - - `root-form`: Form handling utilities. |
28 | | - - `root-password-protect`: Middleware/utility for password protection. |
29 | | - - `root-webui`: UI components or interface for the system. |
30 | | - |
31 | | -### Apps (`apps/`) |
32 | | - |
33 | | -- **gci**: An application built within the monorepo. |
34 | | - |
35 | | -### Documentation (`docs/`) |
36 | | - |
37 | | -Contains documentation for the project, likely powering `rootjs.dev`. |
38 | | - |
39 | | -### Examples (`examples/`) |
40 | | - |
41 | | -Contains example projects demonstrating various features of Root.js. |
42 | | - |
43 | | -## Development |
44 | | - |
45 | | -- **Package Manager**: `pnpm` |
46 | | -- **Build System**: `turbo` |
47 | | -- **Linting**: `eslint` |
48 | | - |
49 | | -## Best Practices for Agents |
50 | | - |
51 | | -When working on this project, please adhere to the following guidelines: |
52 | | - |
53 | | -### Package Management |
54 | | - |
55 | | -- **Always use `pnpm`**: This project uses `pnpm` for package management. Do not use `npm` or `yarn`. |
56 | | -- **Install dependencies**: Run `pnpm install` at the root to install dependencies for all packages. |
57 | | - |
58 | | -### Build & Test |
59 | | - |
60 | | -- **Use Turbo**: Use `turbo run build` or `turbo run test` to run tasks across the monorepo efficiently. |
61 | | -- **Dev Server**: Use `pnpm dev` in specific package or app directories for development. |
62 | | - |
63 | | -### Version Control & Contributions |
64 | | - |
65 | | -- **Changesets**: If your changes require a release (version bump), you must create a changeset. Run `pnpm changeset` and follow the prompts. |
66 | | -- **Commit Messages**: Follow the conventional commit format (e.g., `feat: add new feature`, `fix: resolve issue`). |
67 | | -- **Linting**: Ensure code passes linting rules by running `pnpm lint`. |
68 | | - |
69 | | -### Documentation |
70 | | - |
71 | | -- **Update Docs**: If you change functionality, check if `docs/` needs updating. The documentation is a Root.js app itself. |
72 | | -- **Comment Style**: All comments should end in punctuation. Use block comments to describe interfaces and their fields. Avoid adding superfluous comments. |
73 | | -- **Comment Requirements**: When creating new classes, hooks, or components that have medium-to-complex functionality, ensure you write at least a brief block comment describing what it is for. For complex functionality, provide an example of how to use it in the comment. |
74 | | - |
75 | | -## Contribution |
76 | | - |
77 | | -Refer to `CONTRIBUTING.md` for guidelines on contributing to the project. |
| 1 | +See `.agent/rules/documentation.md` for documentation and rules. |
0 commit comments