Configuration
The .coldstart.json schema, all options, constraints, and domain presets
.coldstart.json schema
Every scaffold saves a .coldstart.json that captures all options. Here's the full schema:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Lowercase alphanumeric + dashes |
displayName | string | Yes | Human-readable name |
description | string | Yes | Short project description |
packageScope | string | Yes | npm scope, e.g. @myapp |
platforms | string[] | Yes | web, mobile, desktop, api (min 1) |
webMode | string | If web | landing, app, landing+app |
domain | string | Yes | See domain presets below |
billing | string | Yes | none, freemium, subscription, one-time, credits, per-seat, multi-tier |
billingProvider | string | Yes | polar (default), stripe |
i18n | boolean | Yes | Enable internationalization |
locales | string[] | Yes | e.g. ["en", "fr"] (min 1 if i18n) |
multiTenant | boolean | Yes | Organization support |
rbac | boolean | Yes | Role-based access (requires multiTenant) |
oauthProviders | string[] | No | google, github, apple |
Constraints
These are enforced at validation time — invalid configs are rejected with clear error messages.
- Desktop requires web — auto-added in interactive mode
- Per-seat billing requires multiTenant — auto-enabled
- RBAC requires multiTenant
- webMode is required when web is in platforms
- At least 1 locale required when i18n is enabled
Platforms
| Platform | CLI | Stack |
|---|---|---|
web | create-next-app | Next.js 16, Tailwind v4, shadcn/ui, next-themes |
mobile | create-expo-app | Expo 55, React Native 0.83, Uniwind, HeroUI Native |
desktop | Generated | Tauri 2, shared web frontend, Rust backend |
api | Generated | Hono, Better Auth, Drizzle ORM, Neon, Docker |
Web modes
| Mode | Description |
|---|---|
landing | Marketing/SEO page. Hero section, no auth routes. |
app | Dashboard/SaaS. Sidebar layout, auth routes, admin panel. |
landing+app | Both. Public landing + authenticated app section. |
Billing models
| Model | Key field | Middleware | Provider support |
|---|---|---|---|
freemium | isPremium | requirePremium | Stripe, Polar, RevenueCat |
subscription | subscriptionStatus | requireSubscription | Stripe, Polar, RevenueCat |
one-time | subscriptionStatus | requirePayment | Stripe, Polar, RevenueCat |
credits | credits + transaction log | requireCredits(n) | Stripe, Polar, RevenueCat |
per-seat | maxSeats | checkSeatLimit | Stripe, Polar |
multi-tier | tier | requireTier(min) | Stripe, Polar, RevenueCat |
Domain presets
Each domain injects specific guidelines into CLAUDE.md. These steer all AI development toward industry best practices.
Generated AI context
Every project gets three AI integration points:
| What | Location | Purpose |
|---|---|---|
| CLAUDE.md | Root | Stack, domain rules, conventions, commands, how-to guides |
| Skills | scripts/install-skills.sh | 5–40 Claude Code skills per platform |
| MCP servers | .claude/settings.json | Neon, Vercel, Polar, RevenueCat, Resend, Expo |
The skills and MCP servers are conditional — a web-only project gets Vercel + Tailwind + React skills; a fullstack project gets everything.