Open Source · Beta Coming Soon

Coordinate changes across
your entire architecture

CodePlans gives engineering teams a shared view of what's changing, in which components, and why — from individual tasks up to cross-service migrations.

📦
Products
Top-level boundary
🔩
Assets
Services, apps, libs
📋
Code Plans
Coordinated changes
Tasks
Units of work

Everything your team needs to ship coordinated changes

Built for engineering teams managing change across complex service-oriented and monorepo architectures.

📦

Product & Asset Inventory

Model your architecture as products containing typed assets — apps, services, libraries, datastores, and platforms. Track health and tech debt per component.

📋

Code Plans

Coordinate related changes under a single plan with a clear lifecycle: Draft → Active → Completed. Assign target assets, set deadlines, and track progress at a glance.

Task Management

Break plans into tasks with priorities, effort estimates, assignees, and asset scope. View work in a list table or a kanban board by status.

Velocity Tracking

Dashboard metrics show active plans, completed tasks, tasks this week, and rolling velocity — so teams always know how fast they're moving.

🏢

Teams & Organisations

Invite team members with role-based access — owner, admin, editor, or viewer. Products can be shared across an organisation or owned by an individual.

🔌

Pluggable Backend

Run locally with SQLite (zero cloud setup) or connect to Supabase + Postgres for production. Auth works with a local password store or Supabase Auth.

Technical reference

Everything you need to understand the data model, architecture decisions, and current feature state.

Up and running in minutes

Local SQLite mode requires no cloud account, no API keys, nothing external.

# Clone and install
git clone https://github.com/SylonZero/CodePlans.git && cd CodePlans
pnpm install

# Configure (defaults work for local SQLite)
cp .env.example .env.local

# Run migrations and create the admin account
pnpm db:migrate
pnpm db:seed

# Start the dev server
pnpm dev

Open localhost:3000 and sign in with admin@example.com / Password1!. Change your password in Settings → Security after first login.

Want realistic demo data? Run pnpm db:seed-demo after the initial seed to populate with products, assets, plans, and tasks. All demo accounts use password Password1!.
Deploying to a server? Set AUTH_URL=https://your-server-domain (or http://ip:port) in .env.local. Auth.js requires this in production to construct correct callback URLs — without it, login redirects will fail. If running the dev server on a remote machine, also set ALLOWED_DEV_ORIGINS=your.server.ip.

Deployment modes & environment variables

Two independent knobs control how your instance behaves — the deployment model and who can register.

HOST_MODE — deployment model
team
Single private team. One org, registration closed by default, billing UI hidden. Recommended for self-hosted installs.
saas
Multi-tenant hosted. Multiple independent orgs, open registration possible, billing UI available.
REGISTRATION — who can create accounts
closed
/signup returns 404. Users are created by an admin via pnpm db:seed.
invite
/signup shows an invite-only message. (Token invite flow is planned.)
open
Anyone who can reach the server can sign up.
Variable Default Description
PORT 3000 Port the dev server binds to.
HOST_MODE saas team (private self-hosted) or saas (multi-tenant hosted).
REGISTRATION open closed, invite, or open — controls who can create accounts.
AUTH_PROVIDER local local (bcrypt + session cookie) or supabase.
DB_PROVIDER sqlite sqlite or postgres.
DATABASE_URL :memory: SQLite: file:data/codeplans.db or :memory:. Postgres: full connection string.
DB_SSL true Set false for local or non-SSL Postgres (e.g. Railway, local Docker).
AUTH_SECRET Secret for local auth session signing. Min 32 chars. Generate: openssl rand -base64 32.
AUTH_URL Required in production
Full URL of the server (e.g. https://codeplans.yourteam.com or http://ip:3000). Auth.js uses this to construct callback URLs and validate login redirects. Not needed for localhost dev.
BILLING_ENABLED true Set false to hide billing UI. Always off when HOST_MODE=team.
ALLOWED_DEV_ORIGINS Comma-separated hosts allowed to access Next.js dev resources. Needed when running the dev server on a remote machine.
RESEND_API_KEY Resend API key for transactional email (email change verification, future team invites). Without this, verification URLs are logged to the server console — fine for local dev.
RESEND_FROM_EMAIL CodePlans <noreply@codeplans.ai> From address used in outgoing emails.

See .env.example for the full annotated configuration file.

Built on proven, modern tooling

No heavy abstractions. Readable Next.js App Router code with a clean DB layer you can fork and adapt.

Layer Technology Notes
Framework Next.js 16 App Router Server Components, Server Actions, streaming
Language TypeScript 5.7 Strict mode throughout
Styling Tailwind CSS v4 + Radix UI shadcn/ui component patterns
ORM Drizzle ORM Dual SQLite + Postgres schemas with migrations
Database SQLite local / PostgreSQL cloud Switched via DB_PROVIDER env var
Auth Local bcrypt local / Supabase cloud Switched via AUTH_PROVIDER env var
Charts Recharts Velocity, effort accuracy, tech debt trends
Testing Vitest 88 tests — queries, mutations, utils; in-memory SQLite

Current feature status

Transparent about what's wired, what's in progress, and what's coming.

Feature Status
Products & asset inventoryAvailable
Tech debt scoring per assetAvailable
Code Plans with status lifecycleAvailable
Task management (list & kanban)Available
Dashboard with velocity metricsAvailable
Organisation & team managementAvailable
Pluggable auth & database backendsAvailable
Product / asset CRUD formsIn Progress
Code Plan create/edit flowsIn Progress
Task inline status updatesIn Progress
Analytics wired to real dataIn Progress
Asset dependency graphIn Progress
Activity feedIn Progress
AI-assisted effort estimationPlanned
Team invite flowPlanned