PluginBench
Rule

nextjs vercel typescript

via PatrickJS/awesome-cursorrules

Next.js + TypeScript + Vercel development with AI SDK RSC, middleware, and KV database integration.

What is nextjs vercel typescript?

Comprehensive style guide for building AI-driven Next.js applications with TypeScript, Vercel infrastructure, and React Server Components. Covers code structure, naming conventions, performance optimization, middleware setup, and KV database integration for stateful AI interactions.

  • Configure Vercel middleware for session management and KV database state persistence
  • Integrate ai-sdk-rsc library for streaming generative content in React Server Components
  • Establish TypeScript conventions, naming patterns, and functional component structure
  • Optimize performance by minimizing client-side code and leveraging React Server Components
  • Implement responsive UI with Shadcn UI, Radix UI, and Tailwind CSS with mobile-first approach
  • Manage URL state with nuqs and handle data fetching via Next.js server-side methods

Applies to

File patterns this rule matches.

**/*
Rule definition (reference)

Source of truth, from the repository.

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:
      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:
      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.

Related rules

Next.js 15, React 19, Vercel AI, and Tailwind CSS development guide with TypeScript best practices.

**/*
41k
via PatrickJS/awesome-cursorrules

27 architecture rules for Next.js 15 + Supabase preventing auth, params, and security hallucinations

**/*
41k
via PatrickJS/awesome-cursorrules

Node.js and Express.js best practices for backend development

**/*.js +2
41k
via PatrickJS/awesome-cursorrules

Node.js + MongoDB + Express setup guide for multi-entry pool management with JWT auth and admin approval workflows.

**/*
41k
via PatrickJS/awesome-cursorrules

Node.js + Express + MongoDB + JWT + React stack rules for sports pool management systems.

**/*
41k
via PatrickJS/awesome-cursorrules

DRY and SOLID principles integration for optimization development in Cursor.

**/*
41k
via PatrickJS/awesome-cursorrules