Skip to content

About

Who's free next week? A self-hosted, week-by-week capacity view for small agencies.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4,215 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

CapacityLens

Who's free next week?

A 50-second walkthrough of the CapacityLens demo: an over-capacity day shows in red, a tentative booking is dragged to a colleague with room, new work is booked by dragging across two days, the schedule zooms out to four weeks, a client, a project and a person are added, the new person is booked onto the new project, and the Overview shows free days per person for the weeks ahead.

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).

Get started

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.

Try it in two minutes

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:demo

Then 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.

What you get

  • 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.

What it deliberately isn't

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.

Install it in five steps

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.

  1. Download capacitylens-X.Y.Z.tar.gz from the latest release and unpack it.
  2. Pick a folder for the database; its file is created there on first start.
  3. 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.env to write the file.
  4. Start it with node --env-file=<your env file> server/dist/index.mjs, or as a service.
  5. 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.

Documentation

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.

Project status

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.

Contributing

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

Licence

CapacityLens is AGPL-3.0-only. Product names and logos are handled separately in TRADEMARKS.md.

gate E2E test coverage CodeQL OpenSSF Scorecard OpenSSF Baseline Docker build Node.js 24+ license: AGPL-3.0

About

Who's free next week? A self-hosted, week-by-week capacity view for small agencies.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages