Back to Templates

Simple v0
The simplest way to use v0. Just prompt and see your app generated instantly - no chat management, no complexity. Build AI-powered apps with real-time generation and seamless deployment to Vercel.
Deploy Your Own
You can deploy your own version of Simple v0 to Vercel with one click:
Setup
-
Install dependencies:
pnpm install -
Configure environment: Create a
.env.localfile in the root directory:V0_API_KEY=your_api_key_here# Optional: For rate limiting (if not provided, rate limiting is disabled)KV_REST_API_URL=your_kv_rest_api_urlKV_REST_API_TOKEN=your_kv_rest_api_token- Get your v0 API key from v0.dev/settings
- Optionally get your Upstash Redis credentials from upstash.com for rate limiting
-
Run development server:
pnpm devOpen http://localhost:3000 to view the application.
Features
- AI App Generation: Create applications from natural language prompts using v0's AI
- Project Management: Organize your work into projects with multiple chat conversations
- Live Preview: Instantly preview generated applications in an embedded iframe
- Chat Management: Continue conversations, fork chats, rename, and delete as needed
- One-Click Deployment: Deploy generated apps directly to Vercel
- File Attachments: Upload images and files to enhance your prompts
- Voice Input: Use speech-to-text for hands-free prompt creation
- Rate Limiting: Built-in rate limiting (3 AI generations per 12 hours) to prevent abuse
- Responsive Design: Works seamlessly on desktop and mobile devices
- Session Caching: Improved performance with intelligent caching of projects and chats
API Routes
GET /api/validate- Validate API keyGET /api/projects- List all projectsGET /api/projects/[id]- Get project details with associated chatsPOST /api/generate- Generate or continue app conversationGET /api/chats/[id]- Retrieve chat details and historyDELETE /api/chats/[id]- Delete a chat conversationPATCH /api/chats/[id]- Update chat (rename)POST /api/chats/fork- Create a new chat from an existing onePOST /api/deployments- Deploy generated apps to Vercel
Tech Stack
- Framework: Next.js 15 with App Router
- Runtime: React 19 with TypeScript
- Styling: Tailwind CSS 4
- UI Components: Radix UI primitives with custom styling
- API Integration: v0-sdk for Platform API communication
- Rate Limiting: Upstash Redis with sliding window algorithm
- Fonts: Geist Sans and Geist Mono via next/font
- Build Tool: Turbopack for fast development
Rate Limiting
This application implements optional rate limiting to prevent abuse and ensure fair usage:
- Limit: 3 AI generations per 12 hours per IP address
- What counts as 1 generation: Each call to
v0.chats.create()orv0.chats.sendMessage() - Scope: Applies to all AI generation requests regardless of chat type
- Implementation: Uses Upstash Redis with a sliding window algorithm
- Optional: If Upstash credentials are not provided, rate limiting is disabled
- Fallback: If rate limiting service is unavailable, requests are allowed (fail-open strategy)
When the rate limit is exceeded, users receive a 429 status code with information about when they can try again.
Project Structure
├── app/│ ├── api/ # API route handlers│ │ ├── chats/[chatId]/ # Chat CRUD operations│ │ ├── deployments/ # Vercel deployment handling│ │ ├── generate/ # AI app generation│ │ ├── projects/ # Project management│ │ └── validate/ # API key validation│ ├── components/ # App-specific components│ ├── projects/[projectId]/ # Dynamic project pages│ │ └── chats/[chatId]/ # Individual chat pages│ ├── globals.css # Global styles and Tailwind config│ ├── layout.tsx # Root layout with metadata│ └── page.tsx # Homepage with main interface├── components/│ └── ui/ # Reusable UI components (buttons, dialogs, etc.)├── lib/│ ├── hooks/ # Custom React hooks│ └── utils.ts # Utility functions└── public/ # Static assets
Environment Variables
| Variable | Required | Description |
|---|---|---|
V0_API_KEY | Yes | Your v0 Platform API key from v0.dev/settings |
KV_REST_API_URL | No | Upstash Redis REST URL for rate limiting (if not provided, rate limiting is disabled) |
KV_REST_API_TOKEN | No | Upstash Redis REST token for rate limiting (if not provided, rate limiting is disabled) |
Development Commands
# Install dependenciespnpm install# Start development server with Turbopackpnpm dev# Build for productionpnpm build# Start production serverpnpm start# Run lintingpnpm lint# Format codepnpm format# Check formattingpnpm format:check
Usage
- Start Creating: Enter a prompt describing the app you want to build
- Organize Work: Create projects to group related conversations
- Iterate: Continue conversations to refine and improve your apps
- Deploy: One-click deployment to Vercel for sharing and testing
- Manage: Rename, delete, or fork chats as your projects evolve


