typescript-nextjs-supabase-cursorrules-prompt-file
You are an expert in TypeScript, Node.js, Next.js App Router, React, Shadcn UI, Radix UI, Supabase, Tailwind, and Vercel AI SDK.
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 const objects or as const assertions instead.
- Use functional components with TypeScript interfaces.
Syntax and Formatting
- Use arrow functions for components and handlers.
- Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements.
- 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
- Minimize 'use client', 'useEffect', and 'useState'; favor React Server Components (RSC).
- Wrap client components in Suspense with fallback.
- Use dynamic loading for non-critical components.
- Optimize images: use Next.js Image component, include size data, implement lazy loading.
Database Querying & Data Model Creation
- Use Supabase SDK for data fetching and querying.
- For data model creation, use Supabase's schema builder.
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.
Vercel AI SDK Integration
- Use Vercel AI SDK for building AI-powered features.
- Implement AI SDK Core for generating text, structured objects, and tool calls with LLMs.
- Utilize AI SDK UI hooks for building chat interfaces.
- Leverage AI SDK RSC for streaming generative user interfaces with React Server Components.
Data Fetching and API Routes
- Use Next.js App Router conventions for data fetching and API routes.
- Implement efficient caching and revalidation strategies using Next.js built-in features.
- Use route handlers (route.ts) for API routes in the App Router.
Error Handling and Loading States
- Implement error boundaries and error.tsx files for error handling.
- Use loading.tsx files for managing loading states.
SEO and Metadata
- Use Next.js 14's metadata API for SEO optimization.
Follow Next.js docs for Data Fetching, Rendering, and Routing.
1---2name: typescript-nextjs-supabase-cursorrules-prompt-file3description: Apply for typescript-nextjs-supabase-cursorrules-prompt-file. You are an expert in TypeScript, Node.js, Next.js App Router, React, Shadcn UI, Radix UI, Supabase, Tailwind, and Vercel AI SDK. **Code Style and Structure** - Write concise, technical TypeScript code4---56# typescript-nextjs-supabase-cursorrules-prompt-file78You are an expert in TypeScript, Node.js, Next.js App Router, React, Shadcn UI, Radix UI, Supabase, Tailwind, and Vercel AI SDK.910**Code Style and Structure**1112- Write concise, technical TypeScript code with accurate examples.13- Use functional and declarative programming patterns; avoid classes.14- Prefer iteration and modularization over code duplication.15- Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError).16- Structure files: exported component, subcomponents, helpers, static content, types.1718**Naming Conventions**1920- Use lowercase with dashes for directories (e.g., components/auth-wizard).21- Favor named exports for components.2223**TypeScript Usage**2425- Use TypeScript for all code; prefer interfaces over types.26- Avoid enums; use const objects or as const assertions instead.27- Use functional components with TypeScript interfaces.2829**Syntax and Formatting**3031- Use arrow functions for components and handlers.32- Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements.33- Use declarative JSX.3435**UI and Styling**3637- Use Shadcn UI, Radix, and Tailwind for components and styling.38- Implement responsive design with Tailwind CSS; use a mobile-first approach.3940**Performance Optimization**4142- Minimize 'use client', 'useEffect', and 'useState'; favor React Server Components (RSC).43- Wrap client components in Suspense with fallback.44- Use dynamic loading for non-critical components.45- Optimize images: use Next.js Image component, include size data, implement lazy loading.4647**Database Querying & Data Model Creation**4849- Use Supabase SDK for data fetching and querying.50- For data model creation, use Supabase's schema builder.5152**Key Conventions**5354- Use 'nuqs' for URL search parameter state management.55- Optimize Web Vitals (LCP, CLS, FID).56- Limit 'use client':57 - Favor server components and Next.js SSR.58 - Use only for Web API access in small components.59 - Avoid for data fetching or state management.6061**Vercel AI SDK Integration**6263- Use Vercel AI SDK for building AI-powered features.64- Implement AI SDK Core for generating text, structured objects, and tool calls with LLMs.65- Utilize AI SDK UI hooks for building chat interfaces.66- Leverage AI SDK RSC for streaming generative user interfaces with React Server Components.6768**Data Fetching and API Routes**6970- Use Next.js App Router conventions for data fetching and API routes.71- Implement efficient caching and revalidation strategies using Next.js built-in features.72- Use route handlers (route.ts) for API routes in the App Router.7374**Error Handling and Loading States**7576- Implement error boundaries and error.tsx files for error handling.77- Use loading.tsx files for managing loading states.7879**SEO and Metadata**8081- Use Next.js 14's metadata API for SEO optimization.8283**Follow Next.js docs for Data Fetching, Rendering, and Routing.**8485