Use for any app creation task — planning, implementing pages, screens, API routes, database schema, and delivering. Supports web, mobile, and desktop from a single codebase. Includes authentication, payments, AI agent, and email as optional modules.
Monorepo: Bun workspaces + Turborepo.
/api) and the web frontend (via HTML imports) from a single process in packages/webpackages/web/src/api/packages/web/src/client/app.config.jsonapp.config.jsonTyped end-to-end: packages/web exports AppType, all clients use @softnetics/hono-react-query for fully typed queries and mutations.
The server port is defined in app.config.json at the project root — never hardcode it.
Do not start implementation until the user approves or adjusts the plan.
app_init with absolute app_path, name, description. Do NOT create the directory beforehand — app_init creates it and fails if it already exists.README.md and app.config.json in the created directory for project structure and assigned ports.deliver with type: app, app folder path at index 0.app instance in packages/web/src/api/app.ts. Breaking the chain breaks type inference.c.json(data, 200), never c.json(data). Without this, the typed RPC client resolves response types to never.src/api/app.ts are defined without /api prefix. The prefix is applied by src/index.ts at the Bun.serve routing level. A route .get("/health", ...) is accessible at /api/health.packages/web/src/client/ and is gated with useDesktop() / window.electronAPI. Native functionality lives in packages/desktop and is exposed via IPC. Only create a separate desktop renderer if the user explicitly asks for a different desktop-only UI architecture..env.local automatically — no dotenv needed.app.config.json — read it at runtime, never hardcode.useCustomer, useListPlans) for plan display and checkout, never build custom payment logic.Read app.config.json for the server port, then:
# Start the server (API + web)
bun run dev
# Individual platforms
bun run dev:mobile
bun run dev:desktop # requires server running first
cd packages/web
bun run db:push # Push schema to database
bun run db:generate # Generate migration files
bun run db:migrate # Run migrations
bun run db:studio # Open Drizzle Studio
For optional capabilities, consult the matching reference before implementation:
For platform-specific patterns, consult the matching reference:
Before delivering, run bun run build to verify the app compiles without errors. Then start bun run dev and bun run dev:mobile and check that both are reachable on their ports from app.config.json. Fix any failures before delivering.