PROJECT SCAFFOLD FOR CLAUDE CODE

bobi-stack

Next.js + Supabase + TanStack Query, wired and ready, with a Claude Code workflow baked in.

Battle-tested through production client work.

What it is

bobi-stack is a clone-and-fill scaffold. You copy it, strip its git history, fill in the placeholders, and grow a project from it. The stack comes pre-wired, and the Claude Code workflow conventions ship with it so AI-assisted sessions stay consistent across chats.

Next.js 14 Supabase TanStack Query Tailwind shadcn/ui TypeScript Vercel pnpm

Architecture

Reads and writes flow through typed registries paired with hooks. Database types flow end to end, so there are no hand-written types for DB data.

READ Component useClientQuery Query registry Supabase + RLS TanStack cache render
WRITE Form (RHF + Zod) useClientMutation Mutation registry Supabase + RLS auto-invalidate

Quick start

# Clone, then drop the template's history
git clone https://github.com/Bobi-Labs/bobi-stack.git my-project
cd my-project && rm -rf .git && git init -b main

# Environment
cp .env.example .env.local    # fill in Supabase credentials
./ops.sh install              # pnpm install
./ops.sh dev                  # localhost:3000

# First Claude Code session
/bobi-stack                    # auto-fill CLAUDE.md from the real codebase

Or skip the history step: use the green Use this template button on GitHub.

Why it holds up

Session lifecycle

CLAUDE.md carries a session-start checklist and a session-end checklist, so cross-chat knowledge does not leak.

Memory templates

Feedback, project, user, and reference categories with a MEMORY.md index. Lessons learned persist across sessions.

Typed data layer

Query and mutation registries paired with hooks. Schema types reach the component with nothing hand-written.

Fail loudly

Every client-facing action that can fail surfaces a plain-English reason and a path forward. Silent failures erode trust fastest.

Atomic commits

One logical change per commit. The git log reads as a narrative, not a pile of squashed mega-commits.

CLI-first ops

Everything runs through ops.sh, so CI and local never disagree on how the project builds and tests.