Developer Workflow
A common Radish workflow looks like this:
- Describe the system
- Create or refine the blueprint
- Run the compiler
- Initialize the app
- Use the generated architecture
- Build application features above it
Example
Step 1 — Describe the system
We need a system for managing shipping statuses with a timeline and approval workflow.
Step 2 — Create or refine the blueprint
The developer, optionally with AI assistance, translates that intent into structured JSON blueprint definitions. Radish also supports AI-assisted generation:
radish-cli generate --name shipping-app --desc "Shipping status tracker with approval workflow"
# Or from a spec file:
radish-cli generate --name shipping-app --file spec.md
Step 3 — Run the compiler
radish-cli create app shipping-app --schema blueprints/shipping-app.types.json
Step 4 — Initialize the app
Configure environment variables (SESSION_SECRET or RADISH_ENCRYPTION_KEY is required for session cookie signing), start the dev server, and complete the /setup wizard to create your first admin account:
cd shipping-app
npm install
npm run dev
# Visit http://localhost:5173/setup
Step 5 — Use the generated architecture
The generated datalayer becomes the canonical backend architecture for the app. Services enforce authentication, authorization, and validation. Telemetry is always on — every request is tracked, every service call instrumented.
Step 6 — Build features above it
Developers and AI tools build UI, workflows, and integrations on top of that foundation. The admin panel provides immediate CRUD for all entities. Custom pages go in route groups: (public) for anonymous access, (app) for authenticated users.