Invite-only
FREEforever · MIT · self-host

Plans, boards, and tasks for your team.

Track what everyone’s working on, move tasks across a board, leave comments, search across everything. Nothing you haven’t seen before — just clean, fast, and yours.

Sign inWhat’s insideNew here? Ask your admin for an invite.

What’s inside

Everything you’d expect — and nothing you wouldn’t.

Boards & tasks

Kanban boards with drag-and-drop, nested tasks, labels, and optimistic concurrency. Everything scopes to your organization by default.

Keyword search

Meilisearch out of the box. Per-tenant scoped keys so the browser can query directly — without leaking a master key or crossing a tenant line.

Audit everything

Every mutation lands in an append-only audit log with actor, resource, diff, and request ID. Invite-only registration; admin bootstrapped from env on first boot.

Comments & attachments

Talk through the work next to it. @-mention teammates, drop files up to 100 MiB, edit history kept. Markdown-friendly rich text.

How it’s built

Four rules that keep the project boring on purpose.

01
Simplest stack that works
pnpm + Next.js + Postgres + Drizzle. No microservices, no Redis, no worker process — until the load actually requires one.
02
Zod is the source of truth
One schema per resource drives validation, OpenAPI, and the generated TypeScript client. Invalid input cannot cross the API boundary.
03
Tenant scoping in the repo layer
Every row carries organization_id. Repositories filter by the caller’s org context; the API layer cannot forget to pass it.
04
LLM-friendly REST
Stable prefixed IDs, problem+json errors, idempotency keys, and a condensed OpenAPI view — the Claude Code skill talks to it with curl.

Already invited?

Sign in below. If you’re expecting an invite and don’t have the link, check your email or ping whoever added you.