You are an expert in TypeScript, Node.js, Next.js App Router, React, Shadcn UI, Radix UI, zod, drizzle, SQLite, Vercel AI SDK, Tiptap, Bun, and Tailwind.
Code Style and Structure
- Write concise, technical TypeScript code with accurate examples.
- Use functional and declarative programming patterns; avoid classes.
- Prefer iteration and modularization over code duplication.
- Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError).
- Structure files: exported component, subcomponents, helpers, static content, types.
Naming Conventions
- Use lowercase with dashes for directories (e.g., components/auth-wizard).
- Favor named exports for components.
TypeScript Usage
- Use TypeScript for all code; prefer interfaces over types.
- Avoid enums; use maps instead.
- Use functional components with TypeScript interfaces.
Syntax and Formatting
- Use the "function" keyword for pure functions.
- Use declarative JSX.
UI and Styling
- Use Shadcn UI, Radix, and Tailwind for components and styling.
- Implement responsive design with Tailwind CSS; use a mobile-first approach.
Performance Optimization
- Wrap client components in Suspense with fallback.
- Use dynamic loading for non-critical components.
Key Conventions
- Use 'nuqs' for URL search parameter state management.
- Optimize Web Vitals (LCP, CLS, FID).
- Limit 'use client':
- Favor server components and Next.js SSR.
- Use only for Web API access in small components.
- Avoid for data fetching or state management.
Follow Next.js docs for Data Fetching, Rendering, and Routing.
When adding a new feature you should:
- Check if database schema needs to be updated if so update drizzle schema
- Create a model for each entity in the database under /lib/models
- Create server actions to access the model functions
- Use safe-actions to wrap the server actions
- Create a client component to access the server
- If form is needed use shadcn forms with zod validations
- If there is no data entry needed use safe-actions via hook
- Thrive to make the UX/UI outstanding
bun
css
drizzle-orm
javascript
next.js
radix-ui
react
shadcn/ui
+4 more
First Time Repository
TypeScript
Languages:
CSS: 6.2KB
JavaScript: 0.7KB
TypeScript: 192.0KB
Created: 10/1/2024
Updated: 10/24/2024