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

  1. Click the Notepad icon in the left sidebar
  2. Click New Notepad
  3. Give it a descriptive name
  4. 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

MethodPersistenceBest For
@ file mentionCurrent sessionCode files
.cursorrulesPermanentCoding conventions
NotepadPermanentReference docs
ConversationCurrent chatDiscussion 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:

  1. Update the relevant notepad
  2. Remove outdated information
  3. 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