Requirements
Section titled “Requirements”| Tool | Version | Why |
|---|---|---|
| Node | >= 22.18 | app.config.ts loads the TypeScript manifest directly |
| Bun | >= 1.3 | workspaces, the daroms CLI, CLI tests |
| Python 3 | - | AI layer hooks (_ai/hooks/*.py) |
| Git | - | the core is a submodule of every app |
| Expo Go (phone) | SDK 58 | instant preview through a QR code |
| Android Studio or Xcode | optional | emulator, simulator, local builds |
Accounts: Expo (EAS) and Supabase to develop; Apple Developer and Google Play to publish.
Create a first app
Section titled “Create a first app”The framework is published on npm (@daromsart/daroms-speed-app, daromsart organization). From the folder that will hold your projects:
npx @daromsart/daroms-speed-app new my-app --name "My app" --variant list-detailcd my-appcp .env.example .env # Supabase URL and public keybun daroms dev # scan the QR code with Expo GoOptional global command: npm install -g @daromsart/daroms-speed-app, then daroms new my-app from anywhere. The CLI runs on Bun: npx does not work without Bun installed.
daroms new copies the template, adds the core as the core/ submodule, writes brand.ts and app.manifest.ts, enables the variant’s modules, generates tables and screens and the icons, installs dependencies, syncs the AI layer into .claude/ and makes the first commit. All options: CLI, new (French).
Where core/ comes from:
| Case | Result |
|---|---|
| CLI installed from npm, core repository reachable | git submodule pinned to the installed version’s tag (v0.5.0…) |
| CLI installed from npm, repository unreachable | copy of the core shipped in the package (no submodule) |
| CLI run from a clone of the core | submodule of the clone’s remote, default branch |
--copy, --link, --core <url> |
copy, symbolic link, submodule of the given URL |
Working on the core itself
Section titled “Working on the core itself”To change the framework (not to create an app):
git clone https://github.com/daromsartof/daroms-speedapp.git daroms-speed-appcd daroms-speed-appbun installbun run check # tsc, eslint, jest, CLI tests, hook testsbun link in the clone makes the daroms command global and points it at your sources. See Developing the core (French).
Check the installation
Section titled “Check the installation”bun daroms doctor # Node, .env, manifest, i18n, rules, types, lint, expo-doctorbun daroms shot / # web render of the home screen: errors and overflowsBlank screen, QR code that does not load, native module missing in Expo Go: see Troubleshooting (French).
With Claude Code
Section titled “With Claude Code”Open Claude Code in the app folder: when the session starts, the daroms-sync hook copies rules, skills and hooks from core/_ai/ into .claude/. Then:
/daroms-day An app to track my reading habitsThe full day is described in the tutorial.