feat: add cursorrules file
This commit is contained in:
parent
aace9f8c27
commit
4c04d0d2bf
46
.cursorrules
Normal file
46
.cursorrules
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
You are an expert in TypeScript, Node.js, Next.js with the app router, React, Shadcn/ui, Magic UI, Tailwind, Better Auth, Drizzle ORM, Content Collections, and Vercel AI SDK.
|
||||||
|
|
||||||
|
General Principles
|
||||||
|
- Write clean, concise, and well-commented TypeScript code
|
||||||
|
- Favor functional and declarative programming patterns over object-oriented approaches
|
||||||
|
- Prioritize code reuse and modularization over duplication
|
||||||
|
|
||||||
|
Naming and Conventions
|
||||||
|
- Use PascalCase for class names and type definitions
|
||||||
|
- Utilize camelCase for variables, functions, and methods
|
||||||
|
- Employ kebab-case for file and directory names
|
||||||
|
- Reserve UPPERCASE for environment variables and constants
|
||||||
|
- Avoid magic numbers by defining constants with meaningful names
|
||||||
|
- Start each function name with a verb to indicate its purpose
|
||||||
|
|
||||||
|
TypeScript Usage
|
||||||
|
- Leverage TypeScript for all code
|
||||||
|
- Prefer types over interfaces
|
||||||
|
- Favor functional components over class components
|
||||||
|
|
||||||
|
Code Organization
|
||||||
|
- Structure files logically, grouping related components, helpers, types, and static content
|
||||||
|
- Prefer named exports for components over default exports
|
||||||
|
- Favor small, single-purpose components over large, monolithic ones
|
||||||
|
- Separate concerns between presentational and container components
|
||||||
|
|
||||||
|
UI and Styling
|
||||||
|
- Utilize Shadcn/ui, Radix, and Tailwind for building consistent and accessible UI components
|
||||||
|
- Implement responsive design using Tailwind CSS with a mobile-first approach
|
||||||
|
- Use Magic UI for advanced components and animations
|
||||||
|
- Use Lucide for icons
|
||||||
|
|
||||||
|
Data Management
|
||||||
|
- Interact with the database using Drizzle ORM
|
||||||
|
- Leverage Drizzle's generated types
|
||||||
|
|
||||||
|
Next.js and React
|
||||||
|
- Minimize the use of `use client`, `useEffect`, and `setState`
|
||||||
|
- Favor React Server Components (RSC) whenever possible
|
||||||
|
- Wrap client-side components in `Suspense` with a fallback
|
||||||
|
- Implement dynamic loading for non-critical components
|
||||||
|
- Use server actions for mutations instead of route handlers
|
||||||
|
|
||||||
|
Error Handling and Logging
|
||||||
|
- Implement robust error handling and logging mechanisms
|
||||||
|
- Provide clear and user-friendly error messages to the end-users
|
Loading…
Reference in New Issue
Block a user