Skip to content

Next.js Vercel TypeScript .cursorrules prompt file

Author: Oleksii Bondarenko

What you can build

AI-Powered Customer Support Chatbot: Develop a customer support chatbot for websites using ai-sdk-rsc, integrated with Vercel middleware for session management and a KV database to persist conversation state.Real-Time Translation Tool: Create a real-time language translation application utilizing AI SDK RSC for language processing, KV database for user session state, and Vercel middleware for efficient request handling.Interactive Storytelling Platform: Build a platform that uses AI SDK to generate personalized storylines, stores user choices and story progression in a KV database, and renders content dynamically using React Server Components.Personalized News Aggregator: Design a personalized news feed that learns user preferences through AI SDK RSC, stores user data in a KV database, and delivers content based on stored preferences using server-side data fetching.AI-Enhanced Code Collaboration Tool: Develop a coding collaboration tool that leverages AI for code suggestions, session management using Vercel's KV database, and real-time collaboration enabled by ai-sdk-rsc.Dynamic Product Recommendation Engine: Create an e-commerce recommendation system with AI-driven suggestions based on user browsing history, utilizing KV database for storing user interactions and Vercel middleware for efficient processing.Interactive Virtual Tutor: Build a virtual tutoring platform that uses AI SDK for generating real-time educational content, tracks student progress in a KV database, and handles interactions via Vercel middleware.AI-Powered Content Generator for Bloggers: Implement a blogging assistant that provides content suggestions and drafts using AI SDK RSC, with user preferences saved in a KV database, and UI updates handled via React Server Components.Language Learning App with AI Assistance: Develop a language learning application that uses AI for real-time conversation practice, session state managed in a KV database, and streamlined by Vercel middleware for user sessions.Music Composition Assistant: Create an AI-driven tool for musicians that generates composition ideas, stores session data and user patterns in a KV database, and provides interactive feedback through React components and AI SDK integration.

Benefits

Synopsis

Developers skilled in Next.js and TypeScript can build scalable, efficient AI-driven interfaces using React Server Components, Vercel middleware, and KV databases.

Overview of .cursorrules prompt

The .cursorrules file provides a comprehensive set of guidelines for integrating the ai-sdk-rsc library with Vercel middleware and a KV database within a Next.js application. It outlines best practices for utilizing TypeScript, React Server Components, and Shadcn/Radix UI, emphasizing modularity, performance optimization, and styling. The file includes instructions on setting up middleware in middleware.ts, managing user sessions with Vercel's KV database, and using AI SDK hooks for generative content streaming. It also covers data fetching strategies, state management, and deployment considerations to ensure a scalable and efficient application.

.cursorrules Content

json
To extend the provided rules to include usage of the `ai-sdk-rsc` library and integrate it with Vercel middleware and a KV database, here's an updated set of instructions tailored for use with Cursor IDE. These instructions are designed to help you effectively implement generative user interfaces using React Server Components (RSC) with the AI SDK.### Extended Rules for AI SDK RSC Integration with Vercel Middleware and KV Database**Environment and Tools**- You are an expert in TypeScript, Node.js, Next.js App Router, React, Shadcn UI, Radix UI, Tailwind, and Vercel middleware.- You are familiar with Vercel's KV database for managing stateful data.**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.- Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements.- Use declarative JSX.**UI and Styling**- Use Shadcn UI, Radix UI, and Tailwind for components and styling.- Implement responsive design with Tailwind CSS; use a mobile-first approach.**Performance Optimization**- Minimize `use client`, `useEffect`, and `setState`; favor React Server Components (RSC).- Wrap client components in `Suspense` with fallback.- Use dynamic loading for non-critical components.- Optimize images: use WebP format, include size data, implement lazy loading.**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.**AI SDK RSC Integration**- **Setup and Installation**: Integrate `ai-sdk-rsc` into your Next.js project. - Install the library using `npm install ai-sdk-rsc` or `yarn add ai-sdk-rsc`. - Configure middleware in `middleware.ts` to manage requests and sessions using Vercel's KV database.  - **Middleware Implementation**: Use Vercel middleware to handle incoming requests. - Create a middleware file in the `middleware` directory (e.g., `middleware/ai-middleware.ts`). - Use middleware to parse user input and manage sessions with the KV database. - Example:  ```typescript  import { NextRequest, NextResponse } from 'next/server';  import { kv } from '@vercel/kv';  export async function middleware(req: NextRequest) {   const sessionId = req.cookies.get('session-id');   if (!sessionId) {    const newSessionId = generateSessionId();    await kv.set(newSessionId, { state: {} }); // Initialize state in KV database    const res = NextResponse.next();    res.cookies.set('session-id', newSessionId);    return res;   }   // Fetch state from KV database   const state = await kv.get(sessionId);   req.nextUrl.searchParams.set('state', JSON.stringify(state));   return NextResponse.next();  }  function generateSessionId() {   return Math.random().toString(36).substring(2);  }  ```- **React Server Components (RSC) and AI SDK**: - Use `ai-sdk-rsc` hooks to manage state and stream generative content. - Example usage of AI SDK hooks in a React Server Component:  ```typescript  import { useAIStream } from 'ai-sdk-rsc';  import { FC } from 'react';  interface ChatProps {   initialMessage: string;  }  const Chat: FC = ({ initialMessage }) => {   const { messages, sendMessage } = useAIStream({    initialMessage,    onMessage: (message) => console.log('New message:', message),   });   return (    {msg.content}  export default Chat;  ```- **KV Database Integration**: - Use Vercel's KV database to store and retrieve session data. - Utilize `kv.set`, `kv.get`, and `kv.delete` to manage data. - Ensure the database operations are asynchronous to avoid blocking server-side rendering (SSR).- **Data Fetching and State Management**: - Use Next.js data fetching methods (`getServerSideProps`, `getStaticProps`) to manage server-side state. - Avoid client-side data fetching methods (`useEffect`, `fetch`) except for critical, non-blocking operations.- **Deployment Considerations**: - Ensure all environment variables (e.g., API keys, database credentials) are securely stored in Vercel's environment settings. - Configure Vercel's KV and other serverless functions correctly to handle scalability and performance needs.By following these extended rules, you'll be able to create a well-optimized, scalable, and efficient Next.js application that leverages `ai-sdk-rsc`, Vercel middleware, and KV database for building sophisticated AI-driven interfaces.

Released under the MIT License.