Introduction to Plane
Understand Plane, a modern open-source project management platform built for software teams
Introduction to Plane
TL;DR for Product Managers
Plane is an open-source alternative to Jira and Linear. It lets software teams track issues, run sprints, and collaborate in real-time — and it can be self-hosted. Think of it as a modern project management tool that companies can own and customize entirely.
What is Plane?
Plane is a full-stack, open-source project management platform designed for software teams. It's a monorepo containing 6 applications and 16 shared packages that together deliver a product comparable to Jira, but with a modern UX, real-time collaboration, and full self-hosting support.
The Product at a Glance
| Dimension | Details |
|---|---|
| What it does | Project management — issues, sprints, wikis, roadmaps |
| Who uses it | Software engineering teams of all sizes |
| How it's different | Open-source, self-hostable, real-time CRDT editing, modern UX |
| Core tech | React 18 + Django 4.2 + PostgreSQL 15.7 + Valkey (Redis) |
| Repo structure | pnpm monorepo with Turborepo (6 apps + 16 packages) |
| License | AGPL-3.0 |
| Deployment | Docker Compose (13 services), Kubernetes, All-in-One |
Core Concepts
Understanding Plane starts with its entity hierarchy. Everything lives inside a Workspace, which is the multi-tenancy boundary:
Workspace (your organization)
├── Projects (separate boards / products)
│ ├── Issues (units of work — the central entity)
│ ├── Cycles (sprints / time-boxed iterations)
│ ├── Modules (epics / feature groups)
│ ├── Pages (wiki / documentation)
│ ├── Views (saved filters: List, Kanban, Calendar, Gantt, Spreadsheet)
│ ├── States (custom workflow statuses)
│ └── Intake (triage inbox for external requests)
├── Labels (shared tags across projects)
└── Members (team access at workspace or project level)Key Insight
Issues are the central entity in Plane. Almost everything — cycles, modules, views, comments, activities — connects back to an issue. The issue.py model file alone defines 17 related models (Issue, IssueBlocker, IssueRelation, IssueMention, IssueAssignee, IssueLink, IssueAttachment, IssueActivity, IssueComment, IssueLabel, IssueSequence, IssueSubscriber, IssueReaction, CommentReaction, IssueVote, IssueVersion, IssueDescriptionVersion).
The Tech Stack — Why Each Piece Exists
| Layer | Technology | Why It's Used |
|---|---|---|
| Frontend | React 18.3.1 + React Router 7.12.0 | Component-based UI with modern routing and SSR support |
| Build | Vite 7.3.1 + Turborepo 2.8.12 | Fast dev server, optimized builds, monorepo orchestration |
| State | MobX 6.12.0 + SWR 2.2.4 | Fine-grained reactivity for stores; SWR for data fetching/caching |
| Styling | Tailwind CSS 4.1.17 | Utility-first, consistent design system |
| Backend | Django 4.2.29 LTS + DRF 3.15.2 | Mature Python framework with REST API toolkit |
| Database | PostgreSQL 15.7 | Relational integrity for complex entity relationships |
| Cache | Valkey 7.2.11 (Redis-compatible) | Session cache and pub/sub |
| Message Broker | RabbitMQ 3.13.6 | Celery message broker for background job queuing |
| Task Queue | Celery 5.4.0 | Async jobs (email notifications, cleanup, imports/exports) |
| Real-time | Hocuspocus 2.15.2 + Yjs | Conflict-free real-time collaborative editing (CRDT) |
| Editor | Tiptap + ProseMirror + Yjs | Rich text editor with collaboration bindings |
| Storage | MinIO / AWS S3 | File attachments and user uploads |
| Proxy | Caddy 2.10 | Automatic HTTPS and reverse proxy |
| Linting | OxLint + oxfmt | Fast Rust-based linting and formatting |
For PMs: What's a CRDT?
CRDT stands for Conflict-free Replicated Data Type. It's the same technology Google Docs uses for real-time editing. When two people edit the same page simultaneously, CRDTs automatically merge their changes without conflicts — no "save conflict" dialogs needed. Plane uses the Yjs library (via Hocuspocus server) to power this.
Key Statistics
| Metric | Value |
|---|---|
| Frontend apps | 3 (web, admin, space) + live server + API + proxy |
| Shared packages | 16 |
| TSX components (web app) | 1,482 |
| UI component library | 84 components in @plane/ui |
| MobX store files | 180+ |
| Database model files | 30+ (with 17 issue-related models alone) |
| Database migrations | 126 |
| API view files | 110 |
| Docker services | 13 |
| Auth methods | 7+ (Session, API key, Google/GitHub/GitLab/Gitea OAuth, Magic link) |
| Supported languages | 20 (via @plane/i18n) |
Core Features
Shipping Today
- Issues / Work Items — Rich text editor (CRDT-powered), sub-issues, relationships, attachments, comments, activity log, reactions
- Projects — Multi-project workspaces with custom states, labels, and point estimates
- Cycles — Sprint planning with progress tracking
- Modules — Epic/feature management with configurable lifecycle states
- Pages / Wiki — Collaborative documentation with real-time editing
- Views — 5 layout types (List, Kanban, Calendar, Spreadsheet, Gantt) with filters, sorts, group-by
- Intake — External feedback/proposal triage workflow
- Analytics — Custom analytics with filterable dimensions and metrics
- Integrations — GitHub sync, Slack notifications, Webhooks, REST API
- Notifications — In-app + email with granular per-project preferences
- Stickies — Quick-capture sticky notes
- i18n — 20 languages including EN, FR, DE, ES, JA, KO, ZH, RU, PT-BR
Security
- Authentication: Session-based, Google/GitHub/GitLab/Gitea OAuth, Magic links, API keys
- Authorization: Role-based access at workspace and project level
- Input Validation: nh3 HTML sanitization (backend), sanitize-html (frontend)
- Rate Limiting: 30/min anon, 60/min API key, plus per-endpoint throttles
- CORS: Configurable allowed origins with credential support
What Makes Plane Different
- Real-time CRDT collaboration — Strongest technical moat; Hocuspocus + Yjs gives Google Docs-level editing
- Fully open-source + self-hosted — Unlike Jira or Linear, you own your data and infrastructure
- Modern UX — Clean interface closer to Linear than Jira
- Community + Enterprise editions —
ce/andee/directories support feature gating - Flexible deployment — Docker Compose, Kubernetes, or single-container All-in-One
What's Next
Architecture Overview
System design, database schema, API patterns, and frontend state management.
Workflows & Data Flows
Key user journeys traced through frontend, API, and database layers.
How Plane Is Built
Repository structure, build pipeline, dependencies, and deployment.