Create a project
Scaffold a brand-new, fully-branded app from the Valcraven template with the /valcraven-create skill.
Valcraven is a template you copy, not a dependency you install. The /valcraven-create Claude Code skill turns a copy into a running, fully-customized project: it interviews you for a few details, copies the template, rewrites all branding and landing-page copy, sets up Docker and Cloudflare config, generates a working .env.local, runs migrations, and verifies the build. You answer a handful of questions and walk away with your own app.
Using the /valcraven-create skill
From Claude Code, run:
/valcraven-createThe skill asks a single batch of questions with sensible defaults:
- Project name — the display name (e.g.
Moxmo). - One-line description — what it does.
- Target directory — where to create it (default
~/Code/<slug>). - Dev server port and production port.
- Primary deploy target —
cloudflare(Workers + D1 + R2, the default) orrailway(with built-in Postgres). - Include the native mobile app? — the Expo app in
apps/mobileis opt-in and off by default. Say yes only if you want a phone app now; you can always add it later.
Answer those, and the skill does the rest end to end.
What it customizes
The skill does far more than a find-and-replace on "Valcraven". Broadly, it:
- Copies the template into your target directory, excluding git history, build artifacts, real env files, and Valcraven maintainer tooling (the scaffolder skills, the Go CLI, upstream changelogs).
packages/coreis always copied;apps/mobileonly if you opted in. - Rewrites core config —
package.jsonname,.env.exampledefaults, database path fallbacks acrosslib/db.ts/lib/auth.ts/ the DB scripts, and app-name defaults inlib/auth.ts,lib/email.ts, and elsewhere. - Renames all storage keys — theme, cookie-consent, and onboarding
localStorage/cookie keys are namespaced to your slug so two Valcraven apps don't collide in a browser. - Repoints Docker — container names, ports, volume names, and the
DATABASE_PATHindocker-compose.yml,apps/web/Dockerfile, andapps/web/Dockerfile.dev. - Repoints Cloudflare config —
apps/web/wrangler.tomlandapps/realtime/wrangler.toml(worker names, D1 database name, R2 bucket name, the realtime service binding). The D1database_idand production route are left as placeholders you fill in at deploy time. - Generates a compelling landing page — real product-specific copy for the hero, feature cards, pricing, FAQ, testimonials, metadata, and Open Graph image, derived from your project name and description.
- Creates a working
.env.localwith a freshly generatedBETTER_AUTH_SECRETandAGENTS_INTERNAL_SECRET, so the app runs immediately. - Optionally strips the example CRUD (the demo "Items" model, its API routes, and search index) so you start from a clean slate.
What it runs
After customizing, the skill installs and verifies from the repo root (TARGET_DIR):
npm install # installs all workspaces
npm run db:migrate # creates auth tables + any app tables in local SQLite
npm run build # verifies the Next.js build compiles cleanlyFor a cloudflare deploy target it also runs npm run build:cf to confirm the OpenNext Workers bundle builds, and typechecks and tests the realtime Worker. Finally it initializes a fresh git repository with an initial commit. If any build fails, the skill fixes the issue before finishing.
Running your new project
When it's done, from your new project's root:
npm run dev # http://localhost:<your dev port>
# or the full Docker stack:
docker compose --profile dev upThen sign up at /auth to test the auth flow against local SQLite. See the Quickstart for the running-locally details.
The Go CLI (non-interactive)
The same scaffolding is available as a Go binary at cli/ for AI agents and CI pipelines — same flow as the skill, driven by flags instead of an interview:
valcraven create \
--name MyApp \
--description "What it does" \
--deploy-target cloudflare \
--dev-port 3000 \
--prod-port 3006See the repo README.md → "Valcraven CLI" for building and installing it.
After scaffolding
- Configure OAuth — run
/configure-ssoto wire up sign-in providers. - Deploy to Cloudflare Workers — provision D1 + R2 and go live.
- Add your first feature — build inside
/app, keeping the existing app shell, and scope every query to the session.