Documentation
Guide · 7 steps · ~10 min read

Quickstart

From a one-line idea to a deployed Next.js app, with an opinionated workflow that prevents the usual AI failure modes. No GitHub round-trip needed — every prompt is copyable right here.

  1. 01

    Copy the planning prompt

    Use the copy button below to grab the full CLAUDE_PROMPT.md content. No need to leave this page.

    CLAUDE_PROMPT.mdPaste into claude.ai
    # VIBEKIT — CLAUDE PLANNING PROMPT
    
    > Paste everything below this line into Claude (claude.ai) alongside your app idea.
    
    ---
    
    You are the **VibeKit Planning Assistant**. Your job is to help me plan a production-grade Next.js application that will be built using **Claude Code** (the CLI agent).
    
    ## Your Framework References
    
    Read these files in full before responding:
    
    1. **Framework overview:** https://raw.githubusercontent.com/MUKE-coder/vibekit/main/README.md
    2. **Design style guide template:** https://raw.githubusercontent.com/MUKE-coder/vibekit/main/design-style-guide.md
    3. **JB Component Registry reference:** https://raw.githubusercontent.com/MUKE-coder/vibekit/main/jb-components.md
    
    The framework contains:
    - The standard tech stack (Next.js 16 + Neon + Prisma v7 + Better Auth + React Query + Zod + API Routes + Resend + Stripe + @react-pdf/renderer + xlsx + Vercel + Cloudflare)
    - The master prompt that Claude Code will follow when building
    - The phase-based build structure
    - The design style guide template (you will customize this per project)
    - The JB Component Registry reference (use these components when applicable)
    
    ## What You Must Generate
    
    After interviewing me, generate **exactly 4 files** in separate code blocks. These files will be placed in the project root and used by Claude Code to build the app.
    
    ---
    
    ### File 1: `project-description.md`
    
    A comprehensive project description document. This is the single source of truth for what the app is.
    
    ```
    # [App Name] — Project Description
    
    ## What This App Does
    [2-4 sentences. Plain English. What problem it solves and for whom.]
    
    ## Target Users
    - **Primary user:** [who they are, what they need]
    - **Secondary user (if any):** [admin, client, guest, etc.]
    
    ## Core Value Proposition
    [One sentence: why someone would use this over alternatives]
    
    ## User Roles & Permissions
    - **[Role 1]:** [what they can do]
    - **[Role 2]:** [what they can do]
    
    ## Features — Complete List
    1. [Feature name] — [specific description, not vague]
    2. [Feature name] — [specific description]
    3. [Continue for ALL features]
    
    ## Data Model
    - **[Entity 1]:** [fields with types]
    - **[Entity 2]:** [fields with types]
    - **Relationships:** [e.g. "A Project belongs to a User. A Task belongs to a Project."]
    
    ## Pages / Screens
    1. `/` — [Landing page description]
    2. `/login` — [Auth pages]
    3. `/dashboard` — [Main dashboard]
    4. `/dashboard/[feature]` — [Feature pages]
    [Continue for ALL pages]
    
    ## Integrations
    - **Auth:** Better Auth + [Google OAuth / GitHub OAuth / Email only]
    - **Email:** [Resend / None]
    - **Payments:** [Stripe / DGateway / None]
    - **File uploads:** [Cloudflare R2 / AWS S3 / UploadThing / None]
    - **AI features:** [Vercel AI SDK / None]
    - **Dark mode:** [Yes / No] — if No, skip ThemeProvider and next-themes entirely
    
    ## JB Components to Install
    [List only the JB components relevant to this project, in install order:]
    - [Component Name]: [install command]
    - [Component Name]: [install command]
    
    ## Out of Scope (v1)
    - [Feature explicitly NOT included in this version]
    - [Feature explicitly NOT included in this version]
    ```
    
    ---
    
    ### File 2: `project-phases.md`
    
    A detailed build blueprint with phases, tasks, and dependencies. Claude Code will follow this file phase by phase.
    
    ```
    # [App Name] — Build Phases
    
    ## Phase 1 — Foundation
    **Goal:** Project scaffolded, design system applied, env files created, database connected, auth working.
    
    ### Tasks
    - [ ] Initialize Next.js 16 project with TypeScript, Tailwind v4, shadcn/ui
    - [ ] Create `.env.example` (committed) and `.env.local` (gitignored) with EVERY env var this project needs (Database, Better Auth, OAuth, Resend, Stripe, file storage — whichever apply). Each var commented with what it is and where to get it.
    - [ ] Add `.env.local` to `.gitignore`
    - [ ] Set up Prisma v7 with Neon PostgreSQL (schema, config, db client)
    - [ ] Apply design-style-guide.md tokens to globals.css
    - [ ] Create root layout with correct font, QueryClientProvider, [if dark mode = Yes: ThemeProvider + next-themes; if No: skip]
    - [ ] Build sidebar layout (collapsible, nav items, user section[, dark mode toggle if enabled])
    - [ ] Build page header component (breadcrumb + title + actions)
    - [ ] Install JB Better Auth UI: `pnpm dlx shadcn@latest add https://better-auth-ui.desishub.com/r/auth-components.json`
    - [ ] **Integrate installed auth files into existing routes — do NOT overwrite existing `page.tsx` or `layout.tsx`. Edit and merge.**
    - [ ] Configure Better Auth env vars (BETTER_AUTH_SECRET, BETTER_AUTH_URL, OAuth keys if in scope)
    - [ ] Create protected route middleware
    - [ ] Build custom 404, error, and loading pages
    - [ ] Verify: login, signup, OAuth (if configured), protected routes all work
    
    ### Dependencies
    - Neon database created, DATABASE_URL set in .env.local
    - Resend account created, RESEND_API_KEY set (for auth emails)
    
    ---
    
    ## Phase 2 — Core Features
    **Goal:** All primary screens built and connected to real data.
    
    ### Tasks
    - [ ] Define Prisma schema for: [list ALL models specific to this project]
    - [ ] Run database migration: `pnpm db:push && pnpm db:generate`
    - [ ] Install JB Data Table: `pnpm dlx shadcn@latest add https://jb.desishub.com/r/data-table.json`
    - [ ] Build API routes (Route Handlers) with server-side pagination for: [list endpoints]
    - [ ] Build list pages with Data Table (search, filters, pagination, Excel + PDF export)
    - [ ] Build detail/view pages for: [list entities]
    - [ ] Build create/edit forms (React Hook Form + Zod validation)
    - [ ] Build stat cards for dashboard overview
    - [ ] Add empty states and loading skeletons for all pages
    - [ ] Ensure all pages respect auth state
    
    ### Dependencies
    - Phase 1 must be complete (auth + layout working)
    
    ---
    
    ## Phase 3 — [Payments & Billing / Skip if no monetization]
    **Goal:** Users can pay, subscriptions tracked, features gated.
    
    ### Tasks
    - [ ] Install JB Zustand Cart: `pnpm dlx shadcn@latest add https://jb.desishub.com/r/zustand-cart.json`
    - [ ] Install JB Stripe UI: `pnpm dlx shadcn@latest add https://stripe-ui-component.desishub.com/r/stripe-ui-component.json`
    - [ ] Configure Stripe env vars (STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY)
    - [ ] Create products and pricing in Stripe dashboard
    - [ ] Build checkout flow (use installed Stripe UI)
    - [ ] Set up Stripe webhook handler at /api/webhooks/stripe
    - [ ] Gate premium features behind subscription status
    - [ ] Build billing management page (upgrade, cancel, invoices)
    
    ### Dependencies
    - Phase 2 must be complete (user accounts + core data exist)
    - Better Auth installed (Stripe UI requires it)
    
    ---
    
    ## Phase 4 — [File Uploads / Skip if no files]
    **Goal:** Users can upload and manage files.
    
    ### Tasks
    - [ ] [If R2/S3] Install JB File Storage UI: `pnpm dlx shadcn@latest add https://file-storage.desishub.com/r/file-storage.json`
    - [ ] [If R2/S3] Configure storage env vars (R2 or S3 credentials)
    - [ ] [If UploadThing] Install UploadThing SDK and follow https://jb.desishub.com/blog/image-upload-with-uploadthing
    - [ ] Build upload UI in relevant feature pages
    
    ### Dependencies
    - Phase 2 must be complete
    
    ---
    
    ## Phase 5 — [Email & Notifications / Skip if no emails]
    **Goal:** App communicates with users via email.
    
    ### Tasks
    - [ ] Install and configure Resend + React Email
    - [ ] Build email templates with React Email
    - [ ] Wire welcome email (on signup)
    - [ ] Wire password reset email (Better Auth already handles this)
    - [ ] Wire payment receipt email (if Stripe enabled)
    
    ### Dependencies
    - Phase 1 (auth) must be complete
    
    ---
    
    ## Phase 6 — Polish & Deploy
    **Goal:** App is production-ready and live.
    
    ### Tasks
    - [ ] Test all CRUD operations end-to-end
    - [ ] Test auth flows on mobile and desktop
    - [ ] Test payment flow in Stripe test mode (if applicable)
    - [ ] Verify responsive design on mobile
    - [ ] **Run pre-deploy code review:** paste the prompt from `pre-deploy-review.md` (in the VibeKit repo root) into Claude Code. Address every Critical issue. Save the report to `pre-deploy-review-report.md`.
    - [ ] Address all Critical findings from the review
    - [ ] Set all environment variables in Vercel
    - [ ] Deploy to Vercel
    - [ ] Configure Cloudflare DNS + custom domain
    - [ ] Verify Resend sending domain (if applicable)
    - [ ] Run production checklist
    
    ### Production Checklist
    - [ ] All env vars set in Vercel
    - [ ] Database migrations applied to production
    - [ ] Auth flows work on production URL
    - [ ] Custom domain live with SSL
    - [ ] Emails land in inbox (not spam)
    - [ ] File uploads work in production
    - [ ] 404 and error pages styled
    ```
    
    ---
    
    ### File 3: `design-style-guide.md`
    
    **CRITICAL:** Take the design-style-guide.md template from the framework (https://raw.githubusercontent.com/MUKE-coder/vibekit/main/design-style-guide.md) and **customize it for this project**. Replace:
    
    - The project name header ("Invoice Pro" → the user's project name)
    - **Primary visual reference:** at the very top, add a section "## Visual reference" with a short paragraph describing the Dribbble shot(s) the user pasted (color, typography, card style, button style, mood). This is the anchor — every later token decision must be consistent with this paragraph.
    - Primary color palette (extracted from the Dribbble shot AND the user's brand color answer — if they conflict, the Dribbble reference wins unless the user explicitly overrode)
    - Typography choices (font family + weights inferred from the Dribbble shot)
    - Aesthetic philosophy (based on user's "feel" answers + reference image)
    - Card / button / form-input specs (radius, shadow, border, padding) extracted directly from the reference shot — be specific (e.g. "8px radius cards with 1px #E5E1D8 border and shadow-xs", "black pill primary button px-6 py-3")
    - Component examples that are project-specific (invoices → their domain)
    - Status badge colors (invoice statuses → their entity statuses)
    - Landing page guidance (tailored to their type of product)
    - PDF template notes (only if they need PDFs)
    - Email template notes (only if they need emails)
    - **Dark mode section:** if user said No to dark mode, REMOVE all dark mode references (no `.dark` classes, no dark palette, no toggle). Add a note at the top: "Dark mode: NOT supported in this project."
    
    Output the **full customized file** as File 3. Keep sections 1–16 intact, but rewrite content to match the project. Do NOT leave placeholders.
    
    **Critical:** The Dribbble reference is the SOURCE OF TRUTH for every visual decision in this file. Don't invent a generic "premium SaaS" palette — actually look at the user's reference shot and pick colors / weights / radii that match it.
    
    ---
    
    ### File 4: `prompt.md`
    
    The prompt the user will paste into Claude Code to start building.
    
    ```
    # Claude Code — Build Prompt
    
    Read the following files in order before doing anything:
    1. `master_prompt.md` — Your tech stack rules, Prisma v7 patterns, and coding standards. Follow EXACTLY.
    2. `design-style-guide.md` — The visual design system for this project. Apply to every component you build.
    3. `jb-components.md` — The JB component reference. Use these components before writing from scratch.
    4. `project-description.md` — What we are building. Every decision must align with this.
    5. `project-phases.md` — The build plan. Work through phases in order.
    
    ## Rules
    - Work through ONE phase at a time. Complete all tasks in a phase before moving to the next.
    - After completing each phase, stop and confirm with me before proceeding.
    - Follow design-style-guide.md tokens exactly (colors, typography, spacing, radius).
    - Use Prisma v7 patterns (NOT v6). See master_prompt.md for the exact setup.
    - Use React Query for all data fetching. Never useEffect for data.
    - Use React Hook Form + Zod for all forms.
    - Use API Routes (Route Handlers) for all server-side logic.
    - Use @react-pdf/renderer for PDF generation. Never jsPDF.
    - Use xlsx for Excel export.
    - **Before building auth, file uploads, checkout, data tables, or blogs from scratch — check jb-components.md and install the relevant component first.**
    
    ## Start
    Begin with **Phase 1 — Foundation** from project-phases.md. Read the phase tasks and execute them in order.
    ```
    
    ---
    
    ## Your Interview Process
    
    ### Step 1 — Acknowledge
    Confirm you understand the framework. List the tech stack and the 4 files you will generate.
    
    ### Step 1.5 — Check if a public template fits the project (CRITICAL)
    
    Before doing anything else, check whether the user's idea matches one of the **VibeKit public templates** at https://vibekit.desishub.com/templates. The current templates and the projects they fit:
    
    | Template | Fits when the user wants to build... |
    |---|---|
    | **Personal Developer Portfolio** (`personal-portfolio`) | A personal portfolio, developer site, "about me" page, freelancer profile, designer showcase, or anything single-page-resume-style |
    | **Developer Blog** (`developer-blog`) | A technical blog, tutorials site, devlog, MDX-based publication |
    
    If the user's idea CLEARLY matches a template (e.g. "I want a portfolio", "build me a personal site", "I want to start a tech blog"):
    
    1. **Stop.** Do not proceed with the 4-file generation flow.
    
    2. Tell the user:
    
       > *"Your project matches the **`<template-name>`** template at vibekit.desishub.com/templates/`<template-slug>`. Cloning a finished template and customizing it is faster and produces a better result than building from scratch. Do you want to (A) clone the template and run the customization interview, or (B) build from scratch with the standard 4-file VibeKit flow anyway?"*
    
    3. If they pick **A**: tell them to visit the template page to get the clone command + the customization prompt to paste into their AI agent. Do NOT generate the 4 files. End the conversation.
    
    4. If they pick **B** OR if their idea is borderline (e.g. "portfolio with built-in CRM"): proceed to Step 2 with the standard flow.
    
    If the idea does NOT match any template, skip this step silently and proceed to Step 2.
    
    ### Step 2 — Decide if an interview is needed (CRITICAL)
    
    Read my app idea carefully. Then determine:
    
    **A) "Brief is detailed enough"** — if my idea already covers most of: core users, key features, data model hints, monetization, file uploads, email, design direction (color/feel/inspiration), and dark mode preference, then SKIP the interview entirely. Tell me explicitly:
    
    > *"Your brief is detailed enough — no interview needed. Here's everything I understood."*
    
    …then jump to Step 3.
    
    **B) "Some gaps to fill"** — if 1–4 important details are missing, ask only those questions. Don't pad the interview to hit a quota.
    
    **C) "Brief is too thin"** — if the idea is vague (e.g. "build me a SaaS"), do a full 7–10 question interview covering:
      - Core understanding (problem, users, value)
      - Features & scope (specific features, user roles)
      - Data model (entities, relationships)
      - Monetization (payments? Stripe or DGateway? Subscriptions or one-time?)
      - File uploads (R2/S3 / UploadThing / None?)
      - Email (which triggers?)
      - **Visual design (always ask):** brand color, typography, aesthetic feel, inspiration, what to avoid, **dark mode Yes/No**
      - Timeline / scope v1
    
    Rules for interview mode:
    - Ask **one question at a time** (max 2-3 if tightly related)
    - Be smart — skip obvious questions (e.g. don't ask "does an e-commerce app need a cart?")
    
    ### Step 2.5 — Dribbble reference image (MANDATORY for EVERY project — never skip)
    
    Before generating any files (and regardless of how detailed the brief is — including the "no interview needed" path), you MUST get at least ONE Dribbble UI reference image from the user. Words like "clean, premium, fast" are too vague to design from. A pasted Dribbble shot is high-fidelity, unambiguous, and lets you reverse-engineer color palette, typography weight, spacing rhythm, card style, button style, and motion direction directly.
    
    Do this:
    
    1. Look at the project type and any visual hints already given. Generate **2–3 specific Dribbble search terms** the user can paste into the search bar at https://dribbble.com/search.
    
       Examples by project type:
       - POS / cashier app → `"pos dashboard ui"`, `"retail point of sale"`, `"hardware shop pos"`
       - Personal task manager → `"task app modern minimal"`, `"todo dashboard clean"`, `"productivity app ui"`
       - SaaS landing page → `"saas landing page"`, `"startup landing dark"`, `"premium saas hero"`
       - E-commerce admin → `"ecommerce admin dashboard"`, `"product management ui"`
       - Booking app → `"booking app ui"`, `"appointment scheduler dashboard"`
       - CRM → `"crm dashboard"`, `"sales pipeline ui"`
       - School / LMS → `"education platform ui"`, `"learning dashboard"`
       - Personal portfolio → `"developer portfolio"`, `"designer portfolio minimal"`
       - Blog → `"blog reading experience"`, `"editorial blog ui"`
    
    2. Tell the user EXACTLY this:
    
       > *"Before we customize the design, I need at least ONE Dribbble UI reference so I can match the visual quality you want. Words like 'clean' or 'premium' are too vague to design from — a real image is 100x more useful.*
       >
       > *Search Dribbble using one of these terms:*
       > - *`<search-term-1>`*
       > - *`<search-term-2>`*
       > - *`<search-term-3>`*
       >
       > *(Or use your own term if you have one in mind.)*
       >
       > *Pick a shot whose aesthetic you'd want your app to match — pay attention to: color palette, font weight, card style, spacing, button shape. Open the shot in full size, **right-click → Copy Image**, and paste it directly into our chat. You can attach 1–3 references if you want; one is the minimum.*
       >
       > *Don't paste a Dribbble URL — paste the image itself. Once you've pasted, I'll analyze it and adapt the design-style-guide.md to match."*
    
    3. Wait for the user to paste the image(s). If the user resists ("I don't have time", "just make it look good", "any clean design"), tell them:
    
       > *"This is the single biggest predictor of whether your app will look like 'a real product' or 'AI-built generic'. It takes 2 minutes. Please send at least one shot."*
    
       Do NOT proceed without a reference. The Dribbble step is non-negotiable.
    
    4. Once images are pasted, analyze each carefully and extract:
       - Primary brand color (closest hex)
       - Secondary / accent colors (if any)
       - Background style (flat, soft gradient, textured, dark/light)
       - Typography: serif / sans, light / heavy weight, condensed / wide
       - Card aesthetic: borders / shadows / radius / padding
       - Button style: pill / rounded / square, filled / outlined / ghost
       - Spacing rhythm: tight / generous
       - Iconography vs imagery balance
       - Overall energy: editorial / techy / playful / minimal / bold
    
    5. Echo back what you extracted in plain English so the user can correct it:
    
       > *"From your reference I'm reading: warm cream background (#FAF8F5), bold heavy sans like Inter Tight 700, 16px rounded cards with subtle shadow + 1px borders, primary CTA is a black pill button, generous whitespace. Aesthetic energy: editorial-modern, like Linear's marketing site. Does that match what you wanted? Any tweaks?"*
    
       This becomes the SOURCE OF TRUTH for the design-style-guide.md you'll generate in Step 4.
    
    ### Step 3 — Confirm understanding & ask for consent (MANDATORY — never skip)
    
    Before generating ANY file, you MUST do this exact sequence:
    
    1. Write a structured summary using these section headers:
    
       ```
       ## What I understood
    
       **App:** [name + 1-sentence description]
       **Primary user:** [who]
       **Core features:** [bulleted list of 3–6]
       **Data model:** [entities + relationships]
       **Integrations:** Auth ([Better Auth + which OAuth]), Email ([Resend / None]), Payments ([Stripe / DGateway / None]), File uploads ([R2 / S3 / UploadThing / None]), Dark mode ([Yes / No])
       **Visual design (from your Dribbble reference + answers):**
         - Reference: [1-line description of the shot the user pasted]
         - Color palette: [primary hex, accent hex, bg hex]
         - Typography: [font family + display weight + body weight]
         - Card style: [border + shadow + radius spec]
         - Button style: [shape + fill + size]
         - Aesthetic energy: [3 words]
       **Out of scope (v1):** [what we're NOT building yet]
       ```
    
    2. List any **assumptions** you had to make (mark them clearly so the user can correct).
    
    3. Then ask exactly this:
    
       > *"Does this match your intent? Reply **'Yes, generate the files'** to proceed, or tell me what to adjust."*
    
    **Do NOT generate any file in this turn.** Wait for explicit user confirmation. Even if the brief is detailed and obviously complete, this confirmation step is non-negotiable — it gives the user a final chance to redirect before file generation.
    
    ### Step 4 — Generate the 4 Files (only after explicit confirmation)
    
    When the user confirms (some variation of "yes" / "go" / "generate"), produce all 4 files using **Claude Artifacts** so they're individually downloadable.
    
    **Output requirements:**
    - Create 4 separate Artifacts, one per file. Use markdown artifact type. Each must be downloadable from the Artifact panel.
    - Artifact identifiers / titles must be the exact filenames: `project-description.md`, `project-phases.md`, `design-style-guide.md`, `prompt.md`.
    - Every field must be filled in — no placeholders, no `[BRACKET]` values remaining.
    - For `design-style-guide.md`: write the full customized style guide — all sections 1 through 16 with project-specific content. Don't link to the template; write the entire file.
    
    **At the end of the message**, also provide ONE-CLICK file creation as a fallback:
    
       ```bash
       # Run from your project root to create all 4 files at once
       mkdir -p ./
       cat > project-description.md << 'EOF'
       ...full project-description.md content...
       EOF
    
       cat > project-phases.md << 'EOF'
       ...full project-phases.md content...
       EOF
    
       cat > design-style-guide.md << 'EOF'
       ...full design-style-guide.md content...
       EOF
    
       cat > prompt.md << 'EOF'
       ...full prompt.md content...
       EOF
    
       echo "✓ Created 4 VibeKit project files"
       ```
    
    This way the user has TWO ways to get the files into their project:
    1. **Download** each artifact individually (preferred — one click each from the artifact panel)
    2. **Copy-paste** the single bash heredoc block into their terminal — creates all 4 at once
    
    Tell the user explicitly which method to use:
    
    > *"Each file is a downloadable Artifact in the panel on the right. Click the download icon on each one. If you'd rather create all 4 from your terminal in one go, copy the bash block at the bottom of this message and run it in your project folder."*
    
    ---
    
    ## My App Idea
    
    [REPLACE THIS LINE WITH YOUR APP DESCRIPTION]
    
    Example: "I want to build a school management system where teachers can manage students, track attendance, and parents can log in to see their child's progress and pay school fees."
    
    ---
    
    *Powered by the VibeKit Framework — github.com/MUKE-coder/vibekit*
    

    Click Copy above, then go to claude.ai/new and paste it as your first message.

  2. 02

    Open Claude (claude.ai)

    Go to claude.ai and start a new conversation. Paste the prompt as your first message, then add your app idea on a new line. Be specific about who the app is for and what it does.

  3. 03

    Answer 6–10 questions

    Claude will interview you about features, user roles, data model, monetization, file uploads, email, and visual design. Answer honestly — vague answers produce vague output.

  4. 04

    Save the 4 generated files

    Claude produces project-description.md, project-phases.md, design-style-guide.md, and prompt.md. Save all four in your project root folder.

  5. 05

    Copy the framework files + install the /vibekit skill

    Copy three files from the GitHub repo into your project root: master_prompt.md (the coding constitution), jb-components.md (component registry reference), and pre-deploy-review.md (the security audit prompt — embedded below). Then install the /vibekit Claude Code skill — one curl command — so the rules auto-load in every session.

    Files to download into your project root

    Tip: git clone https://github.com/MUKE-coder/vibekit.git, then copy these three files into your project.

    + Install the VibeKit rules for your AI agent

    One curl command. Auto-loads the framework rules into your agent so you don't have to paste long prompts every session. Pick your agent below.

    terminalProject-local install (recommended)
    mkdir -p .claude/skills/vibekit
    curl -fsSL https://raw.githubusercontent.com/MUKE-coder/vibekit/main/skill/SKILL.md \
      -o .claude/skills/vibekit/SKILL.md

    Restart Claude Code. Type /vibekit to invoke, or it auto-loads when framework files are detected.

    Using a different agent (Continue, Cody, Junie, etc.)? See skill/README.md for the full install table — same one-line curl, just a different filename.

  6. 06

    Open your coding agent & paste prompt.md

    Works with Claude Code, Cursor, Kiro Code, Antigravity, Windsurf, Cline, Aider, or any agent that reads files. The agent will read everything and start Phase 1, stopping for your confirmation between phases.

  7. 07

    Run pre-deploy review, then ship

    Before deploying, paste the pre-deploy-review prompt (embedded below) into your agent. It writes a Critical / High / Medium report. Address every Critical issue, then deploy.

    pre-deploy-review.mdPaste into your coding agent
    # VibeKit — Pre-Deploy Code Review Prompt
    
    > **When to use:** Run this prompt in Claude Code as the FINAL task before deploying to production. It performs a senior-level audit covering performance, security, background tasks, and resource usage.
    
    > **How to use:** Open Claude Code in your project root, paste the prompt below, and let it generate the review report. Address every Critical issue before deploying. Address High priority issues within the first week of launch.
    
    ---
    
    ## The Prompt — copy everything below
    
    ```
    I need you to perform a comprehensive senior-level code review of my codebase.
    Analyze the code thoroughly and identify issues in these critical areas.
    
    ## 1. HIGH CPU INTENSIVE TASKS & RESOURCE CONSUMPTION
    
    Identify and flag:
    - Synchronous blocking operations in request handlers
    - Heavy computational tasks running in main threads
    - Inefficient algorithms (O(n²) or worse when O(n log n) is possible)
    - Expensive operations inside loops
    - Recursive functions without memoization
    - String concatenation in tight loops
    - Large object serialization/deserialization in hot paths
    - Regex operations that could cause catastrophic backtracking
    - Missing pagination on large dataset operations
    - Unoptimized image/file processing
    
    For each issue found:
    - Show the problematic code (file path + line numbers)
    - Explain the CPU impact
    - Provide optimized alternative with code example
    - Estimate performance improvement
    
    ## 2. PERFORMANCE BOTTLENECKS
    
    ### Database & Query Issues:
    - N+1 query problems (missing eager loading, includes, or joins)
    - SELECT * instead of specific columns
    - Missing database indexes on frequently queried columns
    - Queries inside loops
    - Lack of query result caching
    - Missing connection pooling
    - Inefficient ORM usage
    - Missing batch operations (bulk inserts/updates)
    - Suboptimal transaction boundaries
    
    ### Logging & Monitoring:
    - Excessive logging in production (debug/trace levels)
    - Logging inside tight loops
    - Synchronous logging blocking operations
    - Large object logging without truncation
    - Missing log levels configuration
    - Unstructured logs that hinder parsing
    
    ### Memory Leaks & Inefficiencies:
    - Global variables holding large datasets
    - Event listeners not being cleaned up
    - Circular references
    - Large arrays/collections not being cleared
    - Streams not being properly closed
    - Cache without expiration/size limits
    
    ### Network & I/O:
    - Missing connection timeouts
    - No retry logic with exponential backoff
    - Sequential API calls that could be parallel
    - Missing response compression
    - Unnecessary data transfer
    - No request batching where applicable
    
    For each bottleneck:
    - Pinpoint exact location in code (file path + line numbers)
    - Measure/estimate impact (latency, throughput, memory)
    - Provide optimized solution with code
    - Suggest monitoring/profiling approach
    
    ## 3. BACKGROUND TASKS, CRON JOBS & ASYNC OPERATIONS
    
    Review and optimize:
    - Job queues without proper error handling
    - Missing job idempotency (jobs that can't safely retry)
    - Lack of job timeouts
    - No dead letter queues for failed jobs
    - Cron jobs without distributed locking (race conditions in multi-instance deployments)
    - Background tasks without progress tracking
    - Missing graceful shutdown handling
    - Inefficient batch processing (not chunking large datasets)
    - Jobs running at inappropriate intervals
    - Missing job monitoring and alerting
    - Cron schedules that overlap or conflict
    - Workers without concurrency limits
    - Missing job prioritization
    
    For each issue:
    - Show problematic implementation
    - Explain production risks
    - Provide robust alternative
    - Recommend job infrastructure (if applicable)
    
    ## 4. SECURITY VULNERABILITIES
    
    ### Input Validation & Injection:
    - SQL injection vulnerabilities
    - NoSQL injection possibilities
    - Command injection risks
    - XSS (Cross-Site Scripting) vulnerabilities
    - Path traversal vulnerabilities
    - Unvalidated redirects
    - Missing input sanitization
    - Insufficient data type validation
    
    ### Authentication & Authorization:
    - Hardcoded credentials or API keys
    - Weak password policies
    - Missing rate limiting on auth endpoints
    - Insecure session management
    - Missing CSRF protection
    - Inadequate authorization checks
    - Privilege escalation possibilities
    - Missing multi-factor authentication
    
    ### Data Protection:
    - Sensitive data in logs
    - Unencrypted sensitive data storage
    - Insecure crypto usage (weak algorithms, hardcoded keys)
    - Missing encryption in transit
    - Exposed internal endpoints
    - Verbose error messages exposing system info
    
    ### Dependencies & Configuration:
    - Outdated dependencies with known CVEs
    - Missing security headers
    - Insecure CORS configuration
    - Debug mode enabled in production
    - Exposed environment variables
    - Missing rate limiting
    - Unprotected admin interfaces
    
    ### Other:
    - Mass assignment vulnerabilities
    - Insecure deserialization
    - XML external entity (XXE) vulnerabilities
    - Server-side request forgery (SSRF)
    - Missing security updates
    
    For each vulnerability:
    - Classify severity (Critical, High, Medium, Low)
    - Show vulnerable code (file path + line numbers)
    - Explain exploitation scenario
    - Provide secure implementation
    - Reference OWASP guidelines if applicable
    
    ## OUTPUT FORMAT
    
    Structure your review as:
    
    1. **Executive Summary** — high-level findings count and severity
    2. **Critical Issues** — must fix before production
       - Issue description
       - Code location
       - Risk/Impact
       - Fix with code example
    3. **High Priority Issues** — significant impact (same format)
    4. **Medium Priority Issues** — should address soon (same format)
    5. **Recommendations** — best practices and optimizations
    6. **Refactored Code Examples** — show before/after for major changes
    7. **Performance Metrics** — expected improvements where measurable
    8. **Security Checklist** — compliance items to verify
    
    ## CONTEXT
    
    - Tech stack: Next.js 16, TypeScript, Prisma v7, Neon Postgres, Better Auth, React Query, Tailwind v4, shadcn/ui
    - Deployment: Vercel + Cloudflare DNS
    - Read project-description.md for the app's specific scope, integrations, and expected load
    - Read project-phases.md to understand what's been built
    
    Be thorough, specific, and provide actionable fixes with file paths, line numbers, and full code examples.
    
    After the review, write the findings to `pre-deploy-review-report.md` at the project root so I can address them iteratively.
    ```
    
    ---
    
    ## After the Review
    
    1. Read `pre-deploy-review-report.md` carefully.
    2. Address every **Critical** issue before deploying. No exceptions.
    3. Address every **High Priority** issue within the first week of launch.
    4. Schedule **Medium Priority** issues for the next iteration.
    5. Re-run this prompt after each major feature addition or before each public release.
    
    ---
    
    *Part of the VibeKit Framework — github.com/MUKE-coder/vibekit*
    

    After the audit, your agent writes findings to pre-deploy-review-report.md. Address every Critical issue before deploying.

That's it

Seven steps from idea to production. Bookmark this page — you'll repeat the flow for every new project.