Initialize Darkroom Project

SkillAI & models

Initialize new Darkroom project from a satus or novus starter (NOT the same as native /init which writes CLAUDE.md). Triggers "new darkroom project", "satus", "novus", "scaffold from starter".

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Initialize Darkroom Project skill

What this skill tells your AI

The instructions your AI receives, as published by darkroomengineering/cc-settings in skills/dr-init/SKILL.md and read by ahel’s review.

Create a new project using a Darkroom starter. Darkroom maintains two:

StarterStackWhen to use
satusNext.js 16 + App Router + RSC + React 19Content-driven sites, SEO-critical, Vercel-friendly, projects that benefit from Server Components / Server Actions
novusReact Router 7 + Vite + React 19SPA-leaning apps, projects that prefer the loader/action data model, projects without need for RSC, projects deploying to non-Vercel infra

Step 1 — Pick the starter

If the user already specified ("/dr-init satus", "/dr-init novus", "create new react-router project"), use that. Otherwise ask:

Which starter?
- satus (Next.js)   — App Router, Server Components, Vercel-optimized
- novus (React Router) — RR7, Vite, classic loader/action model

When the user is unsure, prefer satus for marketing/content sites and novus for app-heavy SPAs.

Step 2 — Clone

satus (Next.js)

bunx degit darkroomengineering/satus $ARGUMENTS
cd $ARGUMENTS
bun install

novus (React Router)

bunx degit darkroomengineering/novus $ARGUMENTS
cd $ARGUMENTS
bun install

Step 3 — Post-setup

Both starters:

  1. Update package.json — change name, description.
  2. Configure environment — copy .env.example to .env (or .env.local for satus).
  3. Start devbun dev.
  4. Open debugCmd/Ctrl + O (satus) or Cmd + . / Ctrl + O (novus).

What each starter includes

satus

  • Next.js 16 + App Router
  • React 19 + React Compiler
  • TypeScript strict mode
  • Tailwind CSS v4
  • Biome
  • Lenis smooth scroll
  • Hamo performance hooks
  • Image / Link component wrappers
  • CSS Modules with s alias
  • @/ path alias

novus

  • React Router 7 + SSR via Vite
  • React 19 + React Compiler
  • TypeScript strict mode
  • Tailwind CSS v4
  • Biome
  • Optional: WebGL (R3F), Anime.js, Theatre.js
  • Sanity CMS integration (optional)
  • t3-env + Valibot for typed env
  • CSS Modules with s alias
  • ~/ path alias

Project structure

satus

app/                 # Next.js routes
components/          # React components
lib/
├── hooks/          # Custom hooks
├── integrations/   # Third-party clients
├── styles/         # Global CSS, Tailwind
└── utils/          # Pure utilities

novus

app/
├── root.tsx        # Root layout
├── routes/         # Route modules (file-based)
└── routes.ts       # Optional explicit route config
components/         # React components
hooks/              # Custom hooks
integrations/       # Third-party clients
styles/             # Global CSS, Tailwind
utils/              # Pure utilities

Don't use

  • create-next-app / create-react-app — missing Darkroom standards
  • Manual setup — too many things to configure

Output

After initialization:

  • Confirm project created and which starter was used
  • List the next steps (env, dev server)
  • Offer to start the dev server

Lenis smooth scroll

Both satus and novus starters ship Lenis wired up. For non-Darkroom projects needing Lenis setup, see commit history of the retired lenis skill (git log --all -- skills/lenis/).

Signals

GitHub stars
44
Forks
3
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
dr-init
Source
github.com/darkroomengineering/cc-settings