The Ultimate PRD Template for AI Coding Tools (2025)
A battle-tested PRD template optimized for Cursor, Claude Code, Lovable, and other AI coding tools. Copy-paste ready with examples.
After generating thousands of PRDs and watching how AI coding tools respond to them, I've developed a template that consistently produces better results.
This isn't your traditional PRD with timelines and stakeholder sections. This is an AI-agent-ready PRD—optimized for tools like Cursor, Claude Code, Lovable, Bolt, and Windsurf.
Why Traditional PRDs Fail for AI
Traditional PRDs were written for human engineers. They include:
- "Week 1-2: Discovery and planning"
- "Key stakeholders: Product, Engineering, Design"
- "Success metrics: 20% increase in user engagement"
AI doesn't care about any of this.
AI coding tools need concrete, executable instructions:
- What to build (features)
- How to build it (tech stack)
- What data to store (schema)
- How it should look (UI specs)
The rest is noise.
The AI-Ready PRD Template
Here's the template I use for every project:
# [Product Name] - Product Requirements Document
## Overview
[2-3 sentences describing what this product does and who it's for]
## Tech Stack
- Frontend: [specific framework and version]
- Backend: [specific framework or "frontend-only"]
- Database: [specific service]
- Authentication: [specific provider]
- Hosting: [specific platform]
- Additional: [any other services]
## Core Features
### Feature 1: [Name]
- [Specific behavior 1]
- [Specific behavior 2]
- [Edge case handling]
### Feature 2: [Name]
- [Specific behavior 1]
- [Specific behavior 2]
- [Edge case handling]
[Continue for all features...]
## User Roles
- **[Role 1]**: [What they can do]
- **[Role 2]**: [What they can do]
## Database Schema
### [Table/Collection 1]
- id: uuid, primary key
- [field]: [type], [constraints]
- [field]: [type], [constraints]
- created_at: timestamp
- updated_at: timestamp
### [Table/Collection 2]
- id: uuid, primary key
- [foreign_key]_id: uuid, references [other_table]
- [field]: [type], [constraints]
## API Routes (if applicable)
- GET /api/[resource] - [description]
- POST /api/[resource] - [description]
- PUT /api/[resource]/:id - [description]
- DELETE /api/[resource]/:id - [description]
## UI Components
### [Page/Screen Name]
- [Component 1]: [behavior description]
- [Component 2]: [behavior description]
- [Layout notes]
## Design Specifications
- Primary color: [hex code]
- Secondary color: [hex code]
- Font: [font family]
- Border radius: [pixels]
- Spacing scale: [values]
## Authentication Flow
1. [Step 1]
2. [Step 2]
3. [Step 3]
## Error Handling
- [Error type 1]: [How to handle]
- [Error type 2]: [How to handle]
## Out of Scope (V1)
- [Feature explicitly not included]
- [Feature explicitly not included]
Filled Example: Task Manager App
Let me show you this template in action:
# TaskFlow - Product Requirements Document
## Overview
TaskFlow is a personal task management app that helps users organize
their daily tasks with due dates, priorities, and categories.
Built for individuals who want a simple, fast way to track what
needs to get done.
## Tech Stack
- Frontend: Next.js 14 with App Router
- Backend: Next.js API routes
- Database: Supabase (PostgreSQL)
- Authentication: Clerk
- Hosting: Vercel
- Styling: Tailwind CSS + shadcn/ui
## Core Features
### Feature 1: Task Management
- Create tasks with title, description, due date, and priority
- Edit tasks inline with auto-save
- Delete tasks with confirmation dialog
- Mark tasks as complete with strikethrough animation
- Drag-and-drop to reorder tasks
### Feature 2: Categories
- Create custom categories with color labels
- Assign tasks to one category
- Filter task view by category
- Delete category (moves tasks to "Uncategorized")
### Feature 3: Due Date Management
- Date picker for setting due dates
- "Today", "Tomorrow", "This Week" quick filters
- Overdue tasks highlighted in red
- Sort by due date (ascending/descending)
### Feature 4: Priority Levels
- Three levels: High, Medium, Low
- Visual indicator (colored dot)
- Filter by priority
- Sort by priority
## User Roles
- **User**: Full CRUD access to their own tasks and categories
## Database Schema
### users
- id: uuid, primary key (from Clerk)
- email: text, unique, not null
- name: text
- created_at: timestamp with time zone, default now()
### categories
- id: uuid, primary key, default uuid_generate_v4()
- user_id: uuid, references users(id) on delete cascade
- name: text, not null
- color: text, default '#6366f1'
- created_at: timestamp with time zone, default now()
### tasks
- id: uuid, primary key, default uuid_generate_v4()
- user_id: uuid, references users(id) on delete cascade
- category_id: uuid, references categories(id) on delete set null
- title: text, not null
- description: text
- due_date: date
- priority: text, check (priority in ('high', 'medium', 'low'))
- is_completed: boolean, default false
- position: integer, default 0
- created_at: timestamp with time zone, default now()
- updated_at: timestamp with time zone, default now()
## API Routes
- GET /api/tasks - List all tasks for authenticated user
- POST /api/tasks - Create a new task
- PUT /api/tasks/:id - Update a task
- DELETE /api/tasks/:id - Delete a task
- GET /api/categories - List all categories
- POST /api/categories - Create a category
- PUT /api/categories/:id - Update a category
- DELETE /api/categories/:id - Delete a category
## UI Components
### Dashboard Page
- Header with app logo and user menu
- Sidebar with category list and filters
- Main content area with task list
- Floating action button for new task
### Task Card
- Checkbox for completion
- Title (editable on click)
- Due date badge
- Priority indicator dot
- Category tag
- Delete button (shows on hover)
### Task Modal
- Title input
- Description textarea
- Due date picker
- Priority dropdown
- Category dropdown
- Save and Cancel buttons
## Design Specifications
- Primary color: #6366f1 (Indigo)
- Destructive color: #ef4444 (Red)
- Background: #fafafa
- Card background: #ffffff
- Border radius: 8px
- Font: Inter
## Authentication Flow
1. User lands on /sign-in
2. Clerk handles OAuth or email/password
3. On success, redirect to /dashboard
4. Clerk webhook syncs user to Supabase
## Error Handling
- Network errors: Toast notification with retry option
- Validation errors: Inline field errors
- 404: Redirect to dashboard with toast
- 500: Error page with support contact
## Out of Scope (V1)
- Team collaboration / shared tasks
- Recurring tasks
- Subtasks
- File attachments
- Mobile app
- Calendar view
- Email reminders
Why This Template Works
1. No Ambiguity
Every decision is made upfront. The AI doesn't have to guess whether you want PostgreSQL or MongoDB—you've told it Supabase.
2. Concrete Data Model
The database schema is the foundation of any app. By specifying it upfront, you ensure consistent data handling across all features.
3. Complete API Contract
The API routes tell the AI exactly what endpoints to create. No more discovering missing routes during development.
4. Visual Specifications
"Make it look good" is useless. Hex codes, border radius, and font choices give AI concrete design targets.
5. Clear Boundaries
The "Out of Scope" section prevents feature creep. AI won't accidentally build recurring tasks when you just wanted simple task management.
Adapting the Template
For Games
Replace database schema with:
- Game mechanics
- Physics parameters
- Control mappings
- Level/wave progression
- Scoring system
For Landing Pages
Simplify to:
- Sections (hero, features, pricing, FAQ)
- Copy for each section
- CTA placements
- Color scheme
- Responsive breakpoints
For APIs Only
Remove UI components, expand:
- Endpoint specifications
- Request/response schemas
- Rate limiting
- Authentication method
- Error response formats
Generate PRDs Automatically
Writing PRDs by hand takes time. That's why I built TinyPRD—it generates AI-ready PRDs from a simple product description in about 30 seconds.
You describe your idea, pick your mode (app or game), and get a complete PRD ready to paste into Cursor, Claude Code, or Lovable.
Want PRDs without the writing? Generate your first one with TinyPRD and ship faster.