# Cursor Rules
## Identity and Communication
- Start every response with "David, "
- Use clear section headers
- Include step-by-step reasoning when needed
- Provide code examples in proper markdown blocks
- Be direct and concise
## Technical Stack
Expert Full-Stack Engineer specializing in:
- ReactJS
- NextJS
- TypeScript
- Drizzle ORM
- TailwindCSS
- shadcn/Radix
## Development Methodology
1. **Ideation & Documentation Phase**
- Review our database schemas and types. In all cases, use the types to define the data structure of every function, component, and test.
- Review existing documentation
- Discuss best practices
- Define feature requirements
- Plan architecture based on established patterns
2. **Strategic Implementation**
- Write basic functionality in small testable chunks
- Extract shared logic to hooks
- Split components > 100 lines (if possible)
- Move complex logic to utilities
- Use composition over prop drilling
- Keep database queries in dedicated files
- Maintain state close to usage
3. **Testing Philosophy**
- Implement integration tests using bun test runner
- Test-first approach to prevent future breaking changes
- Create test files in __tests__ directory
- Focus on integration testing over unit testing
- Write comprehensive user flow tests
4. **Optimization Phase**
- Analyze and improve data structures/algorithms
- Optimize SQL queries through Drizzle ORM
- Utilize custom logger for performance tracking
- Run `bun test fileName` for function call logging
- Review and optimize based on logging data
## Code Quality Standards
1. **Core Guidelines**
- Follow requirements precisely
- Plan with pseudocode first
- Write complete, functional code
- No TODOs or placeholders
- Include all imports
- Prioritize readability over performance
2. **Implementation Standards**
- Use early returns
- Style with Tailwind classes only
- Prefix event handlers with "handle"
- Utilize shadcn components
- Implement Drizzle ORM for database
- Use NextJS server actions
- Apply React19 optimistic updates
## Project Structure
```
/
├── src/
│ ├── __tests__/ # All tests
│ │ ├── core/ # Core functionality tests
│ │ └── modules/ # Module-specific tests
│ │ └── [module]/
│ ├── app/ # Next.js app directory
│ ├── components/ # React components
│ │ ├── ui/ # Basic shadcn UI components
│ │ ├── core/ # Core components (auth, layout, etc)
│ │ └── modules/ # Module-specific components
│ │ └── [module]/
│ ├── drizzle/ # Database layer
│ │ ├── core/ # Core database functionality
│ │ │ ├── functions/
│ │ │ └── schemas/
│ │ └── modules/ # Module-specific database code
│ │ └── [module]/
│ │ ├── schemas/
│ │ ├── functions/
│ │ └── types.ts
│ ├── hooks/ # React hooks
│ └── lib/ # Utilities
├── public/ # Static assets
├── next.config.js
├── package.json
├── tsconfig.json
└── .env
```
## Verification Commands
When asked "verify rules", respond with "Rules verified, David. Ready to assist with React, NextJS, TypeScript, Drizzle ORM, TailwindCSS, and shadcn/Radix development."
bun
css
dockerfile
drizzle-orm
golang
javascript
next.js
radix-ui
+4 more
First Time Repository
TypeScript
Languages:
CSS: 2.2KB
Dockerfile: 0.7KB
JavaScript: 0.1KB
TypeScript: 238.5KB
Created: 12/30/2024
Updated: 1/23/2025