Who's free next week?
Illustrative October 2026 walkthrough with fictional data. Dates and sample bookings in the current demo vary; check each person’s capacity indicators when moving work.
Every small agency answers that question badly. It lives in someone's head, a colour-coded spreadsheet, or a group chat at 5pm on a Friday. So work gets promised to people who are already full, the quiet capacity nobody noticed goes unsold, and the person who was going to be on holiday finds out about their new project the week before they leave.
CapacityLens puts the answer on one shared screen: people down the side, days across the top, the work and time off in between. Red means someone is booked for more than they can do that day. See who is busy, who has room and who is about to be buried, and move work before it becomes a problem.
It is free and open source (AGPL-3.0), with no paid tier and no hosted version. You run it on your own server, and the only cost is that server (server size).
Manage the hosting? Install it with one command on a host that runs Node 24, ending with opening the setup link. You manage HTTPS, backups and upgrades: install CapacityLens.
Own the company? Open the setup link, create the company, invite an Admin: set up your company.
Set the work? Add your people, clients and projects, then book the first work: get the schedule ready.
Just want to see your work? Accept your invitation and your week is on the first screen: see your work.
Doing all of it yourself? The whole setup on one page.
For people comfortable with a terminal: the demo runs on your computer with sample data and no real sign-in, and needs the developer tools Node 24 and git. Its sample-account picker is cosmetic. Drag things about, book time off, break something: changes reset when you reload. Everyone else: watch the walkthrough above instead.
corepack enable
pnpm install
pnpm run dev:demoThen open the Local address it prints (usually http://127.0.0.1:5173), then pick a company on Choose a company.
- The weeks ahead at a glance: 1 to 8 weeks, filtered by discipline, client, project or activity.
- Early warning: over-capacity days in red, plus a 14-day warning for trouble off screen.
- Work you haven't won yet: tentative bookings, placeholders for roles you haven't filled, and external parties who don't count against your capacity.
- Time off in the same picture: holidays, closures and each person's start and end dates sit beside the work.
- How full everyone is: utilisation per person and across the weeks on screen.
- Server-owned scheduling: a connection is required; failed requests show an error and retry controls.
- Your own server: your data in one SQLite file you control, under AGPL-3.0.
CapacityLens does not track tasks, tickets, deadlines, budgets or timesheets, and it doesn't schedule anyone by the hour. If you need Jira, use Jira. This is the view you check before you open Jira.
There is no importer from spreadsheets or other tools: you enter your people, clients and projects in the app, and the JSON import only moves data between CapacityLens installations.
CapacityLens is currently supplied as a native Node.js release archive. Follow the installation guide, then configure HTTPS at a proxy on the same machine. Whoever manages your hosting handles ongoing maintenance. The operator guides cover configuration, backups, upgrades and monitoring. Docker support remains optional. Proxies in separate containers or on separate machines are not yet supported; use the native same-machine proxy setup for the first release. Sign-in is by password, and invitations and password resets need email delivery. See sign-in and access.
Read the documentation online, open
docs/index.html straight from a checkout with no server or build, or read the Markdown
sources in docs-src/. What is CapacityLens?
is the one-page introduction.
To update the site, edit docs-src/ and run pnpm run docs:build, then commit the sources and
rebuilt docs/ together. Documentation checks verify that they match. GitHub Pages publishes the
committed output only on a manual run of Publish documentation from main; neither a
documentation merge nor a published release updates the live site. See the
documentation contribution instructions.
CapacityLens is alpha software with a single maintainer. Beta will mean the upgrade path and the
settings are stable. The database schema starts from one forward-only baseline migration;
app:upgrade backs up an existing database before running pending migrations.
Before you adopt
covers status, getting your data out and support. See
how it is tested and the
release notes.
React, TypeScript and Vite in the browser; AdonisJS and Lucid over SQLite on the server; a shared TypeScript domain package for the scheduling rules. Start with CONTRIBUTING.md, the architecture reference and the standing decisions.
Governance · Support · Security policy · Security review · ASVS 5.0.0 ledger · Changelog · Trademarks
CapacityLens is AGPL-3.0-only. Product names and logos are handled separately in TRADEMARKS.md.
Validation includes application/backend checks, native packages and Chromium, Firefox and WebKit E2E tests. Coverage measures frontend source files; backend coverage is not included.