Arche is a scaffold CLI and this repository is its source of truth. Today: run bun run dev:cli from this monorepo (release guarded). After npm publish, use npx @kitsunekode/arche create.
Quick loop
- Step 1Generate
Use --dir to write outside your current working directory. After npm publish: npx @kitsunekode/arche create …
Commandbun run dev:cli -- my-app --yes --preset=typescript-fullstack --dir=../projects - Step 2EnterCommand
cd ../projects/my-app - Step 3Verify
CI is the preset verification harness—read AGENTS.md if a step fails.
Commandbun install bun run ci
Preset catalog
Every public preset, its support label, and what it generates:
| Preset | Status | Shape | Good for |
|---|---|---|---|
typescript-fullstack TypeScript Fullstack | Stable | Next.js web + Express API + tRPC + Better Auth + Prisma | Default fullstack starting point |
next-app Next.js App | Stable | Standalone Next.js App Router with env validation and boundaries | Frontend-only apps without a bundled backend |
rust-api Rust API | Stable | Cargo workspace with service and worker slots | Engine services, background work, and future polyglot scale |
rust-fullstack Rust Fullstack | Stable | Next.js web + Axum API + shared deployment docs | Teams that want Rust on the API with a typed web client |
convex-product Convex + Next.js | Stable | Next.js + Convex functions + Better Auth stubs | Realtime apps, serverless backend, no Prisma/Neon ops |
solana-program Solana Program | Stable | Anchor program + generated client boundaries | On-chain program work with explicit client contracts |
solana-web Solana Web dApp | Stable | Next.js dApp + program + wallet adapter direction | Web3 apps with web wallet flows |
solana-mobile Solana Mobile dApp | Stable | Expo mobile + program + mobile wallet boundary | Mobile-first Solana products |
solana-product Solana Product | Stable | Web + mobile + program + shared Solana config | Full product surface across web, mobile, and chain |
tui-app Terminal UI App | Stable | OpenTUI renderer + React terminal UI starter | Interactive CLI tools and terminal dashboards |
tanstack-start TanStack Start | Stable | TanStack Start + Vite + Nitro server with file routes | Full-stack React apps without Next.js |
customize Customize | Requires validation | Capability picker with validation gates | Teams that need a bespoke mix of bundles and backends |
experiments Experiments | Experimental | Experimental routes only | Trying unstable generators with clear expectations |
Example: bun run dev:cli -- my-app --preset=typescript-fullstack --yes
CLI from source (today)
Develop from this repo
Use dev:cli until the published @kitsunekode/arche release is explicitly trusted.
$bun run dev:cli -- my-app --preset=typescript-fullstack --yes
TypeScript monorepo (Next + Express + tRPC + Prisma).
$bun run dev:cli -- my-app --preset=rust-api --yes
Rust API workspace with Cargo and SQLx-ready layout.
$bun run dev:cli -- my-app --preset=convex-product --yes
Next.js + Convex (no Express/Prisma monorepo).
$bun run dev:cli -- my-app --preset=solana-web --yes
Solana web dApp with program and client boundaries.
$bun run dev:cli -- my-app --family=convex --yes
Legacy family flag (same template as convex-product).
$bun run dev:cli -- validate '{"projectName":"x",...}'
Validate a JSON config without writing files.
$bun run dev:cli -- create-json '{"projectName":"x",...}'
Non-interactive scaffold from JSON.
$bun run dev:cli -- mcp
stdio MCP server (plan, create, schema introspection).
After you scaffold
Generated project
Typical commands inside a scaffolded workspace after you cd into it.
$bun install
Install dependencies in the generated workspace.
$bun run dev
Start dev servers (shape depends on preset).
$bun run check-types
Typecheck when the preset advertises it.
$bunx convex dev
Convex routes: link deployment and run functions locally.
Architecture snapshot
Data Flow Diagram
┌─────────────────────────────────────┐│ apps/web (Next.js) ││ ↑ tRPC client │├─────────────────────────────────────┤│ packages/trpc (client contract) ││ ↑ types only │├─────────────────────────────────────┤│ apps/server (Express) ││ ├── modules/*/*.trpc.ts ││ ├── Better Auth (/api/auth/*) ││ └── tRPC endpoint (/api/trpc) ││ ↓ ││ packages/store (Prisma client) │└─────────────────────────────────────┘
Where to go next
- First hour — expanded walkthrough
- Preset catalog — every
--preset=id - CLI flags — non-interactive and CI-friendly options
- Deployment — Vercel, Render, Railway, Neon, Upstash
- Philosophy — why Arche exists and what it refuses to claim
- Code examples — generated wiring snippets by stack