Initialize Darkroom Project
SkillAI & modelsInitialize 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.
No other account needed.
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:
| Starter | Stack | When to use |
|---|---|---|
| satus | Next.js 16 + App Router + RSC + React 19 | Content-driven sites, SEO-critical, Vercel-friendly, projects that benefit from Server Components / Server Actions |
| novus | React Router 7 + Vite + React 19 | SPA-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:
- Update package.json — change
name,description. - Configure environment — copy
.env.exampleto.env(or.env.localfor satus). - Start dev —
bun dev. - Open debug —
Cmd/Ctrl + O(satus) orCmd + ./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
salias @/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
salias ~/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