Skip to content

Repository files navigation

Plotter

A Notion-like collaborative workspace built with Next.js, Fastify, and Y.js. Create nested pages, rich-text documents, and relational databases — all with real-time multiplayer editing.

Features

  • Rich text editor — Headings, lists, code blocks, callouts, toggles, images, task lists
  • Slash commands — Type / to insert any block type
  • @mentions — Type @ to link to any page in the workspace
  • Real-time collaboration — Multiplayer cursors and live sync via Y.js + Hocuspocus
  • Databases — Table and board/kanban views with typed properties (text, number, select, date, checkbox, multi-select, URL, email)
  • Row detail panel — Click any database row to open its full page editor inline
  • Page cover images — Upload a cover image per page
  • Comment threads — Threaded comments with replies and resolve/unresolve
  • Version history — Snapshot and restore previous page states
  • Public share links — Share pages with view/comment/edit access
  • Full-text search⌘K command palette to find pages across the workspace
  • Workspace members — Invite collaborators with role-based access (owner / admin / editor / viewer)

Architecture

packages/
├── api/        Fastify REST API          :3001
├── collab/     Hocuspocus WebSocket      :1234
├── web/        Next.js 14 frontend       :3000
└── shared/     Zod schemas + TypeScript types
Layer Technology
Frontend Next.js 14, React 18, Tailwind CSS, TipTap
API Fastify 4, Drizzle ORM, PostgreSQL 16
Real-time Hocuspocus, Y.js (CRDT)
Auth JWT (access + refresh token rotation)
Cache Redis 7
File uploads @fastify/multipart, served via @fastify/static
Package manager pnpm workspaces

Quick start

See INSTALL.md for full local setup instructions.

# 1. Start infrastructure
docker compose up -d

# 2. Install dependencies
pnpm install

# 3. Copy and configure environment files
cp packages/api/.env.example    packages/api/.env
cp packages/collab/.env.example packages/collab/.env
cp packages/web/.env.local.example packages/web/.env.local

# 4. Run database migrations
pnpm db:migrate

# 5. Start all services in parallel
pnpm dev

Open http://localhost:3000.

Deployment

See DEPLOY.md for production deployment to Google Cloud Run.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages