Valcraven Docs
Getting Started

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-create

The skill asks a single batch of questions with sensible defaults:

  1. Project name — the display name (e.g. Moxmo).
  2. One-line description — what it does.
  3. Target directory — where to create it (default ~/Code/<slug>).
  4. Dev server port and production port.
  5. Primary deploy targetcloudflare (Workers + D1 + R2, the default) or railway (with built-in Postgres).
  6. Include the native mobile app? — the Expo app in apps/mobile is 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/core is always copied; apps/mobile only if you opted in.
  • Rewrites core configpackage.json name, .env.example defaults, database path fallbacks across lib/db.ts / lib/auth.ts / the DB scripts, and app-name defaults in lib/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_PATH in docker-compose.yml, apps/web/Dockerfile, and apps/web/Dockerfile.dev.
  • Repoints Cloudflare configapps/web/wrangler.toml and apps/realtime/wrangler.toml (worker names, D1 database name, R2 bucket name, the realtime service binding). The D1 database_id and 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.local with a freshly generated BETTER_AUTH_SECRET and AGENTS_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 cleanly

For 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 up

Then 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 3006

See the repo README.md → "Valcraven CLI" for building and installing it.

After scaffolding

On this page