Who's free next week?
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).
Installing it? Install it (five short steps, about ten minutes on a host that already runs Node 24), add HTTPS, check backups and hand over: install CapacityLens.
Own the company? Sign in with the setup token, 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 sign-in, and needs the developer tools Node 24 and git. 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), select the sample sign-in on Choose an account, 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.
- Offline, read-only: an optional snapshot of the schedule on your device, kept for seven days.
- 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.
Every release from 0.73.0-alpha.1 carries a server archive. You need Node 24.19.0 or newer within 24.x and a hostname with HTTPS. Node 26.9.0 or newer within 26.x is experimental.
- Download
capacitylens-X.Y.Z.tar.gzfrom the latest release and unpack it. - Pick a folder for the database; its file is created there on first start.
- Configure: in the unpacked folder, run
node server/dist/index.mjs init --public-url <address> --db <file in step 2's folder>. It prints the environment file with both secrets generated: paste it into your host's environment editor, or add--out /etc/capacitylens.envto write the file. - Start it with
node --env-file=<your env file> server/dist/index.mjs, or as a service. - Open the address and check the first-Owner screen loads. If you are also the Owner, set up your company with the setup token from step 3; otherwise send the address, and the setup token separately and privately, to the Owner.
Install CapacityLens has the commands for a managed host or a Linux host; Docker is another route. Sign-in is by password, with Google Workspace and Microsoft Entra ID as company login options.
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.
CapacityLens is alpha software with a single maintainer. Beta will mean the upgrade path and the settings are stable. Database upgrades are tested from thirteen released database snapshots, the oldest from 0.20.0-alpha.1, so a database created by that release or any later one is expected to upgrade in place. 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; Fastify and Better Auth over Node's built-in SQLite on
the server; a shared TypeScript domain in shared/ for the scheduling rules. Start with
CONTRIBUTING.md, then the development guide
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.