vibe-stack
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 31 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
The SaaS starter where Claude writes the rest. AI-first, full-stack: Next.js 16, Better Auth, Drizzle/Postgres, tRPC, Polar billing, R2, Dokploy. Every Claude Code skill vendored. Zero-key boot.
vibestack
The SaaS starter where Claude writes the rest.
An opinionated, AI-first SaaS starter. Full stack pre-wired, every infra decision pre-made, every Claude Code skill vendored in the repo. You bring the business logic; Claude does the plumbing.
Repository · Quickstart · Workflow · Deploy
npx create-vibestack my-saas
One command, both crowds:
- Devs — clone,
pnpm dev, ship. - Vibe-coders — open Claude Code, run
/setup, describe your idea, let the workflow drive.
Same repo. Same skills. Same outcome.
What's in the box
- Next.js 16 + React 19 + App Router — three apps: web, marketing, admin
- Better Auth — email/password, magic-link, Google, passkeys, 2FA, orgs, admin role, rate-limit
- Postgres + Drizzle, tRPC v11 + TanStack Query, Zod v4
- Tailwind v4 + shadcn + dark mode
- Polar.sh billing wired end-to-end (sandbox + prod)
- Resend + React Email, Cloudflare R2 storage + nightly
pg_dump→ R2 - PostHog + GA4 analytics, Sentry errors, next-intl (EN + FR)
- Dokploy + docker-compose deploy, GitHub Actions CI
- Biome v2, Vitest + Playwright + a11y suite
Full ADR set under docs/adr/ — decisions you don't have to re-make.
What's not in the box
- App-level AI features. The stack is AI-native dev, not an AI SaaS template. Add the
aiSDK or any model wrapper when you build your features. - A name.
npx create-vibestackasks for one, or runpnpm renameafter cloning. - A wall of required keys. Zero-key boot: the app runs with just a database and an auth secret. Every third-party integration is optional and degrades gracefully until you add its key.
Quickstart
npx create-vibestack my-saas
The wizard clones the template and walks you through:
- Product name — renames the
@vibestack/*scope and every brand string (lockfile-safe). - Feature toggles — email, billing, storage, Google sign-in, analytics, Sentry, French locale, video swarm. Pick what you want; skip the rest.
- API keys for what you enabled — every one skippable, signup URL printed next to it.
- Writes
.envwith a generatedBETTER_AUTH_SECRET. - Offers to run
pnpm install, start Postgres (Docker), and push the schema.
Then pnpm dev gives you three apps:
| URL | App |
|---|---|
http://localhost:3001 |
your authed product |
http://localhost:3000 |
marketing site + docs + blog |
http://localhost:3002 |
admin dashboard |
No keys? No problem. Auth emails (magic links, verification, password reset) print to your terminal until you add a Resend key. Billing UI stays hidden until you add Polar. File storage only complains if you actually use it.
/api/healthreports unconfigured optional services asdisabled.
Manual path (dev track)
git clone https://github.com/f-amine/vibe-stack.git my-saas
cd my-saas
pnpm install
pnpm db:start
cp .env.example .env # only core vars needed to boot
pnpm db:push
pnpm dev
Core vars: DATABASE_URL (matches pnpm db:start), BETTER_AUTH_SECRET (openssl rand -base64 32), and the localhost URL vars. That's a fully working app — sign-up, sessions, orgs, the lot. Add other keys whenever the feature matters.
Prefer the wizard inside an existing clone? pnpm init:app runs the same flow. Full env reference: .claude/skills/setup/env-reference.md.
The vibestack workflow
Open Claude Code in the repo. Skills come vendored, no install step:
new feature /grill-with-docs → /to-prd → /to-issues → /tdd → /review
bug /diagnose → /tdd
refactor /improve-codebase-architecture → ADR draft → /to-issues
new idea /prototype (throwaway, to flush out the design)
UI / design /impeccable (mandatory for anything visual)
content /blog-writer · /video-writer
Each skill is a short, opinionated playbook. They share a domain model (CONTEXT.md) and a decision log (docs/adr/) so multiple Claude sessions stay coherent. Full catalogue: .claude/skills/README.md.
Common commands
pnpm dev # turbo dev across all apps (dev:web / dev:marketing / dev:admin for one)
pnpm build # turbo build
pnpm check # biome format + lint
pnpm typecheck # tsc across packages
pnpm test # vitest
pnpm test:e2e # playwright
pnpm db:start # docker postgres
pnpm db:push # apply schema directly (dev)
pnpm db:generate # generate SQL migration
pnpm db:migrate # apply migrations (prod)
pnpm db:studio # drizzle studio
pnpm db:seed # seed demo data
pnpm auth:generate # regen auth schema after editing packages/auth plugins
pnpm email:dev # react-email preview at :3010
pnpm init:app # interactive first-run wizard (name, features, keys, .env)
pnpm rename <name> # rename the @vibestack scope + brand strings only
pnpm skills:update # pull latest upstream skills
Renaming
npx create-vibestack and pnpm init:app do this first. To rename only:
pnpm rename my-product
pnpm install # regenerates the lockfile for the new scope
Unlike a raw sed, pnpm rename never touches pnpm-lock.yaml, skips node_modules / build output / binaries, and handles case variants. Review the diff before committing.
Deploying with Dokploy
- Provision a small VPS (Hetzner / DigitalOcean / Vultr) and install Dokploy.
- Point a Compose service at
docker-compose.prod.yml. - Set env in the Dokploy Environment tab — see
docs/deploy/production-env.mdfor required vs optional. - Map a domain to each app (container ports: marketing
3000, web3001, admin3002) and enable Let's Encrypt.
The stack runs migrations on deploy (a healthcheck-gated migrate service) and ships a nightly pg_dump → R2 backup (backup container, 30-day retention; restore with ./scripts/restore-r2.sh).
Behind Cloudflare? Its free SSL covers one subdomain level (
*.example.com). Keep app hosts one level deep (e.g.app.example.com, notapp.x.example.com) or grey-cloud the deep ones. Details indocs/deploy/production-env.md.
Power-user: 24/7 autonomous loop
Optional. A long-running Claude swarm that picks up triaged issues, implements them, and opens PRs. Runbook and risks: .ruflo/README.md.
Hard rules
- Don't touch
.env,.env.*,*.key,*.pem,secrets/*. - Don't bump major dep versions without an ADR.
- Branch → PR → CI → squash merge. Never push to
master, never--no-verify.
Credits
Initial scaffold via Better-T-Stack. Workflow skills vendored from mattpocock/skills. Logos via svgl.app. Extended into vibestack with marketing/admin apps, Fumadocs, Resend, R2, PostHog/GA, Sentry, next-intl, Dokploy compose + R2 backup, and the full Claude Code skill set.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi