vibe-stack / rules
vibestackdev/vibe-stack/.cursor/rules/project-context.mdc
Core project context — tech stack, folder structure, and global conventions
Cursor rule8 starsChanged 6 months ago
What's in it
- Vibe Stack — Project Context
- Tech Stack
- Architecture Rules
- Folder Structure
- Naming Conventions
--- description: Core project context — tech stack, folder structure, and global conventions alwaysApply: true --- # Vibe Stack — Project Context ## Tech Stack - Framework: Next.js 15 (App Router) with React 19 - Language: TypeScript (strict mode) - Styling: Tailwind CSS + shadcn/ui components - Database: Supabase (PostgreSQL + RLS) - Auth: Supabase SSR (cookie-based, @supabase/ssr) - Validation: Zod - Payments: Stripe (server-side only) - Email: Resend - Icons: lucide-react ## Architecture Rules 1. Default to Server Components. Only add 'use client' when the component needs interactivity. 2. Push 'use client' to the smallest leaf component possible. 3. All data fetching happens in Server Components or Server Actions. 4. All mutations happen via Server Actions, never client-side fetch(). 5. All external input MUST be validated with Zod schemas. 6. Never use getSession() on the server — always use getUser(). 7. All database tables MUST have Row Level Security (RLS) enabled. ## Folder Structure ``` src/ ├── app/ # Next.js App Router pages & layouts │ ├── (auth)/ # Auth route group (login, signup) │ ├── dashboard/ # Protected pages (behind middleware) │ └── api/ # Route handlers (webhooks, public APIs) ├── components/ # Reusable React components │ ├── ui/ # shadcn/ui primitives │ └── [feature]/ # Feature-specific components ├── lib/ # Utilities & third-party configs │ ├── supabase/ # Supabase client factories │ ├── stripe/ # Stripe helpers (server-only) │ └── utils.ts # General utilities (cn helper) └── types/ # Shared TypeScript types ``` ## Naming Conventions - Files: kebab-case (e.g., `user-profile.tsx`) - Components: PascalCase (e.g., `UserProfile`) - Server Actions: camelCase verbs (e.g., `createTodo`, `updateProfile`) - Types/Interfaces: PascalCase with `interface` preferred over `type` - Database tables: snake_case (e.g., `user_profiles`)
More agent context in vibestackdev/vibe-stack
31 other files this repository gives its agents.
AGENTS.md
CLAUDE.md
Cursor rule
- .cursor/rules/ai-collaboration.mdc
- .cursor/rules/api-design.mdc
- .cursor/rules/api-validation.mdc
- .cursor/rules/caching-revalidation.mdc
- .cursor/rules/context-management.mdc
- .cursor/rules/database-design.mdc
- .cursor/rules/env-management.mdc
- .cursor/rules/error-handling.mdc
- .cursor/rules/file-naming.mdc
- .cursor/rules/file-uploads.mdc
- .cursor/rules/git-conventions.mdc
- .cursor/rules/hydration-safety.mdc
- .cursor/rules/middleware-auth.mdc
- .cursor/rules/nextjs15-params.mdc
- .cursor/rules/performance.mdc
- .cursor/rules/react19-patterns.mdc
- .cursor/rules/security.mdc
- .cursor/rules/server-actions.mdc
- .cursor/rules/server-vs-client-components.mdc
- .cursor/rules/shadcn-patterns.mdc
- .cursor/rules/stripe-payments.mdc
- .cursor/rules/stripe-webhooks.mdc
- .cursor/rules/supabase-auth-security.mdc
- .cursor/rules/supabase-rls.mdc
- .cursor/rules/supabase-ssr-only.mdc
- .cursor/rules/testing.mdc
- .cursor/rules/typescript-strict.mdc
- .cursor/rules/verify-before-use.mdc
llms.txt
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

