---
title: "What Is Plane?"
description: "Understand Plane, a modern open-source project management platform built for software teams"
image: "https://tractiongrowth.com/og/open-source/plane-project-management/image.png"
---

# What Is Plane?

# What Is Plane?

<Callout title="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.
</Callout>

Plane is an open-source project management platform for software teams that combines issue tracking, sprint planning, wiki pages, and real-time collaboration in a self-hostable product. This explainer shows what Plane does, how its architecture works, and how the repository is organized so you can understand the product without reading the whole codebase.

## Plane at a Glance

**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)
```

<Callout type="info" title="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).
</Callout>

## 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                            |

<Callout type="info" title="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.
</Callout>

## 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

1. **Real-time CRDT collaboration** — Strongest technical moat; Hocuspocus + Yjs gives Google Docs-level editing
2. **Fully open-source + self-hosted** — Unlike Jira or Linear, you own your data and infrastructure
3. **Modern UX** — Clean interface closer to Linear than Jira
4. **Community + Enterprise editions** — `ce/` and `ee/` directories support feature gating
5. **Flexible deployment** — Docker Compose, Kubernetes, or single-container All-in-One

## What's Next

<Cards>
  <Card title="Plane Architecture Overview" description="System design, database schema, API patterns, and frontend state management." href="/open-source/plane-project-management/architecture" />

  <Card title="Plane Workflows and Data Flows" description="Key user journeys traced through frontend, API, and database layers." href="/open-source/plane-project-management/workflows" />

  <Card title="Plane User Stories and Growth Insights" description="Team adoption stories, collaboration loops, and expansion paths for PMs." href="/open-source/plane-project-management/user-stories-and-growth" />

  <Card title="How Plane Is Built" description="Repository structure, build pipeline, dependencies, and deployment." href="/open-source/plane-project-management/how-it-is-built" />
</Cards>

## Resources

* [Product Docs](https://docs.plane.so/)
* [Developer Docs](https://developers.plane.so/)
* [Self-hosting Guide](https://developers.plane.so/self-hosting/overview)
* [GitHub Repository](https://github.com/makeplane/plane)
* [Community Discord](https://discord.com/invite/A92xrEGCge)

