- Learn
- AI Code Editors
- Cursor
- Using Notepads
Intermediate12 min1 prerequisite
Maintain persistent reference information with Cursor's Notepads feature for project documentation and shared context.
Using Notepads
Notepads are persistent markdown documents that you can reference in any AI conversation. Unlike conversation history that gets lost, notepads stay available as reusable context.
What Are Notepads?
Notepads are Cursor's way to store:
- Project documentation
- API references
- Architecture decisions
- Style guides
- Frequently referenced information
- Complex requirements
They're like persistent notes that AI can always access.
Creating Notepads
From the Sidebar
- Click the Notepad icon in the left sidebar
- Click New Notepad
- Give it a descriptive name
- Start writing
Notepad Format
Notepads use markdown:
Terminal
# API Reference
## Users Endpoint
Base URL: `https://api.example.com/v1`
### Get User
GET /users/:id
Response:
{
"id": "string",
"name": "string",
"email": "string"
}
### Create User
POST /users
Body:
{
"name": "string",
"email": "string"
}
Referencing Notepads
In Chat
Use @ to reference:
Terminal
@notepad:api-reference
Create a function to fetch user by ID
In Composer
Same @ syntax works:
Terminal
@notepad:style-guide @notepad:api-reference
Build a user profile page following our conventions
Effective Notepad Content
Project Architecture
Terminal
# Architecture Overview
## Tech Stack
- Frontend: Next.js 14, React 18
- Styling: Tailwind CSS, shadcn/ui
- Backend: Next.js API Routes
- Database: PostgreSQL via Prisma
- Auth: NextAuth.js
- Payments: Stripe
## Key Directories
- /app - Pages and API routes
- /components - React components
- /lib - Shared utilities
- /prisma - Database schema
## Conventions
- Server Components by default
- Fetch data at page level
- Use React Query for client caching
API Documentation
Terminal
# External API Reference
## Weather API
Base: https://api.weather.com/v2
### Current Weather
GET /current?city={city}
Headers:
- X-API-Key: [from env]
Response:
{
"temp": number,
"humidity": number,
"conditions": string
}
### Forecast
GET /forecast?city={city}&days={days}
Same headers, returns array of daily forecasts.
Design System
Terminal
# Design System
## Colors
- Primary: blue-600
- Secondary: gray-500
- Success: green-500
- Error: red-500
- Warning: amber-500
## Spacing
- Card padding: p-6
- Section gap: space-y-8
- Button gap: gap-4
## Typography
- Headings: font-semibold
- Body: text-gray-700
- Muted: text-gray-500
## Components
Always use shadcn/ui components from @/components/ui
Complex Requirements
Terminal
# Subscription System Requirements
## Plans
1. Free - 10 projects, no team
2. Pro - Unlimited projects, 5 team members
3. Enterprise - Everything + SSO
## Billing Rules
- Monthly or annual
- Annual = 2 months free
- Pro-rated upgrades
- No refund on downgrade
## Feature Gates
Check user.plan before:
- Creating projects (check limit)
- Adding team members (check limit)
- Accessing premium features
Database Schema Context
Terminal
# Database Schema
## Core Tables
### Users
- id: UUID (PK)
- email: String (unique)
- name: String
- role: Enum (user, admin)
- createdAt: DateTime
- updatedAt: DateTime
### Projects
- id: UUID (PK)
- name: String
- ownerId: UUID (FK -> Users)
- settings: JSON
- createdAt: DateTime
## Relationships
- User has many Projects
- Project has many Tasks
- Task belongs to User (assignee)
Organizing Notepads
By Domain
Terminal
notepads/
├── api-reference
├── database-schema
├── design-system
├── auth-flow
└── deployment-guide
By Feature
Terminal
notepads/
├── checkout-requirements
├── user-management
├── notifications
└── analytics
By Audience
Terminal
notepads/
├── onboarding-new-devs
├── architecture-decisions
└── ops-runbook
Notepad vs Other Context
| Method | Persistence | Best For |
|---|---|---|
| @ file mention | Current session | Code files |
| .cursorrules | Permanent | Coding conventions |
| Notepad | Permanent | Reference docs |
| Conversation | Current chat | Discussion context |
Best Practices
Keep Notepads Focused
One topic per notepad:
Terminal
# ❌ Too broad
api-and-database-and-auth-and-deployment
# ✅ Focused
api-reference
database-schema
auth-flow
deployment-checklist
Update Regularly
When things change:
- Update the relevant notepad
- Remove outdated information
- Add new patterns and decisions
Use Clear Structure
Terminal
# Good Structure
## Overview
Brief context
## Details
### Subsection 1
Specifics
### Subsection 2
More specifics
## Examples
Concrete examples
## Common Issues
Troubleshooting info
Include Examples
Don't just document—show:
Terminal
# API Error Handling
All API routes should handle errors consistently.
## Pattern
```typescript
try {
const result = await doSomething()
return NextResponse.json(result)
} catch (error) {
return NextResponse.json(
{ error: error.message },
{ status: 500 }
)
}
Common Errors
- 400: Validation failed
- 401: Not authenticated
- 403: Not authorized
- 404: Resource not found
- 500: Server error
Terminal
## Team Collaboration
Notepads are local, but you can:
### Share via Files
Export important notepads to project docs:
docs/ ├── ARCHITECTURE.md ├── API.md └── CONVENTIONS.md
Terminal
Then everyone can @ mention these files.
### Template Notepads
Share notepad templates with your team:
```markdown
# [Feature Name] Requirements
## Overview
Brief description
## User Stories
- As a [user], I want to [action] so that [benefit]
## Technical Approach
## Dependencies
## Success Criteria
Summary
- Notepads store persistent reference information
- Reference with @notepad:name in any AI conversation
- Keep focused—one topic per notepad
- Include examples not just descriptions
- Update regularly as project evolves
- Share via files for team consistency
Next Steps
Notepads help with documentation. MCP servers extend Cursor with external capabilities—connecting to databases, APIs, and other tools directly from your AI conversations.
Mark this lesson as complete to track your progress