1.0.5.6 Create `moooon-B-V/nextjs-prisma-vercel-starter-with-design` (MIT, GitHub Template)
Estimate: 20m · Depends on: 1.0.5.5
Snapshot motir-core at the end of Story 1.0.5 (i.e., with the full design system landed: tokens, primitives, patterns, docs/design-system.md, /tokens specimen page) into a brand-new public GitHub Template repo at moooon-B-V/nextjs-prisma-vercel-starter-with-design. This is the designed starter referenced in design_wizard.html — the fork Motir hands future users who skip the design wizard (and use Motir's defaults).
Why this Subtask is needed (Layer-2 context): the design wizard's "skip-all" outcome says "no design Story will be planned; use the designed starter." For that to be a real path, the designed starter has to exist as a forkable repo. This Subtask creates it. Future Motir users who skip the wizard get this repo's snapshot; users who pick any axis get the bare starter (nextjs-prisma-vercel-starter, shipped in 1.0.6) plus a planned design Story that builds the system from scratch with their choices baked in.
Why now (last Subtask of Story 1.0.5): at this commit, motir-core contains the generic Next.js + Prisma + Tailwind + ESLint/Prettier + Vercel + Neon scaffolding plus the full design system (1.0.5.1 architecture, 1.0.5.2 primitives, 1.0.5.3 patterns, 1.0.5.5 design-system.md) — and nothing Motir-the-product-specific (no User model yet, no workspace tables, no auth wiring, no work-item schema). Forking now means minimal stripping. If we waited until Stories 1.1 / 1.2 / 1.4 land, we'd have to surgically remove Motir-the-product code, which is harder and easier to get wrong. This is a semantic-ordering constraint: 1.0.5.6 must close before any Motir-the-product code (Story 1.1+ auth, workspaces, etc.) merges to motir-core's main.
Mechanism: manual copy + new repo + mark as Template (NOT a GitHub fork) — same pattern as 1.0.6. GitHub Templates create a new repo with a clean single-commit history when downstream users click "Use this template" — no inherited Motir git history, no "forked from" badge. A raw fork would carry Motir's planning commits forever and make the template look like "a fork of Motir" to anyone browsing the repo.
License: MIT, not GPL-3.0. Same rationale as 1.0.6 — templates ship under MIT because GPL's copyleft requirement repels would-be forkers. motir-core stays GPL-3.0; the designed starter is independent and MIT-licensed.
Value proposition (for the README pitch): the designed starter's differentiator vs. the bare starter is the full design system already wired in. A user who forks this gets: 2-axis theme system (Color × Shape) with light/dark + soft display style, Source Serif 4 + Inter + JetBrains Mono via next/font, 9 primitive components (Button, Input, Card, Modal, Pill, Tooltip, Toast, Spinner, + FormField helper), 2 patterns (EmptyState, ErrorState), a /tokens live spec route, and docs/design-system.md as the canonical reference. Plus inherited gotchas from the bare starter (postinstall, DATABASE_URL_UNPOOLED, etc.). The README should sell these as "everything in nextjs-prisma-vercel-starter, plus a polished design system you can extend or replace."
What you'll do:
- Create the empty public repo:
gh repo create moooon-B-V/nextjs-prisma-vercel-starter-with-design --public - Locally: copy the current
motir-coretree (sans.git,node_modules,.next) into a new sibling directory. git init, set the remote to the new repo, single initial commit.- Apply the strip/genericize edits (see Acceptance criteria for the full list).
The strip is narrower than 1.0.6's because the design system stays — only
Motir-the-product mentions (wordmark in
app/page.tsx, README pitch copy, planning-doc references) need to be genericized. - Push to main as the initial commit. Verify all four quality gates pass.
- Mark as template:
gh repo edit moooon-B-V/nextjs-prisma-vercel-starter-with-design --template - Smoke-test: click "Use this template" on the GitHub repo page, create a throwaway
test repo, clone it, run
pnpm install && ./scripts/db-up.sh && pnpm dev, confirmlocalhost:3000renders the generic placeholder ANDlocalhost:3000/tokensrenders the design system specimen page, then delete the throwaway repo.
Acceptance criteria
Repo + GitHub setup:
- GitHub repo
moooon-B-V/nextjs-prisma-vercel-starter-with-designexists, public, MIT-licensed. - Repo is marked as a GitHub Template (
is_template: true) — the "Use this template" button is visible on the repo page. - Single initial commit; no inherited Motir git history.
License + branding strip:
LICENSEis the canonical MIT text, copyright "© 2026 moooon B.V." or similar.package.json's"license": "MIT","name": "nextjs-prisma-vercel-starter-with-design", generic"description"(no Motir mention).app/page.tsxis a generic placeholder (e.g., "Next.js + Prisma starter, with design system"); NO "Motir" wordmark. May reference/tokensto show off the design system.app/layout.tsxmetadata uses generic title and description (no Motir mention).- README does NOT reference Motir,
motir-ai,motir-core,vision.html,feasibility.html,design_wizard.html, or any planning docs. - README's value proposition: leads with "everything in
nextjs-prisma-vercel-starter, plus a polished design system" and links todocs/design-system.md+docs/DESIGN.mdas the references.
Design system preservation (the load-bearing part):
components/ui/*ships intact — all 9 primitives + 2 patterns + FormField helper, with their JSDoc preserved.app/globals.cssships intact — full 4-tier token taxonomy, light/dark + soft display style.app/tokens/page.tsxships intact — the live specimen page renders all tokens, primitives, and patterns.docs/DESIGN.mdships intact (architectural spec).docs/design-system.mdships intact (canonical reference). Any sentences that mention "Motir" by name as the consumer should be genericized to "this starter" or "the project that forks this template."lib/utils/cn.ts,lib/contexts/theme-context.tsx,lib/theme/*all ship intact.- Composition stack deps stay in
package.json:class-variance-authority,tailwind-merge,clsx,@radix-ui/react-{dialog,tooltip,toast},lucide-react, fonts (next/font handles them — no package additions).
DB naming convention:
- DB user/password/name in
docker-compose.yml,.env.example,scripts/db-up.sh, and.github/workflows/ci.ymlall usenextjs_prisma_vercel_starter_with_design(snake_case). - Docker container name:
nextjs-prisma-vercel-starter-with-design-postgres. - Volume name:
nextjs-prisma-vercel-starter-with-design-pg-data.
Schema:
prisma/schema.prisma: drop any "Motir" comment; keep the placeholder model and the migration file as-is.
Quality gates:
- All four quality gates pass:
pnpm lint,pnpm format:check,pnpm typecheck,pnpm build. - GitHub Actions CI runs on the initial commit and goes green.
End-to-end smoke test (the load-bearing AC):
- Click "Use this template" in the GitHub UI; create a throwaway test repo; clone it; run
pnpm install && ./scripts/db-up.sh && pnpm dev; confirmlocalhost:3000renders the generic placeholder; confirmlocalhost:3000/tokensrenders the full design system specimen page with all primitives + patterns + theme/display-style toggles working; confirmpnpm prisma migrate dev --name initworks; delete the throwaway repo.
Layer-2 link:
- The repo's existence is what makes the design wizard's "skip-all" path real. After this Subtask closes, design_wizard.html's reference to
moooon-B-V/nextjs-prisma-vercel-starter-with-designresolves to a real GitHub repo.
Context refs
- design_wizard.html — the Layer-2 doc this Subtask makes real
- Subtask 1.0.6 — the sibling pattern (forking
motir-coreinto the bare starter); mirror its strip/template/MIT steps - notes.html mistake #20 — the lesson driving both starter Subtasks
motir-core's current tree at the end of Story 1.0.5 — the source to fork from- GitHub's "Creating a template repository" docs