An open-source, self-hostable business operating system for developer-freelancers and small dev studios: clients, projects, time tracking and invoicing in one connected flow.
Early but real: the connected flow works end to end. What exists today:
- Clients with contacts, default rates, VAT numbers and an activity thread
- Projects and tasks with a kanban board and list views
- Time tracking: start/stop timers, manual entries, a weekly timesheet
- Invoicing: generate lines from unbilled time (grouped your way) or add fixed amounts, multi-currency with ECB conversion fixed per line, standard/zero-rated/reverse-charge VAT, gapless per-year numbering, draft/sent/paid/overdue lifecycle, PDF export
- The money math is fixture-tested against a signed-off billing spec
(
BILLING-SPEC.md) - every rule has a hand-verified expected output - Auth: email/password (Better Auth), optional Google SSO via env, small-team memberships; everything scoped per business
- One-command self-host via docker-compose, demo seed included
Not yet: proposals, recurring invoices, payment collection, importers, a client portal. The design is mid-pass; screens are functional and consistent but still being refined.
The README will track honest feature status as things actually land.
Requires Docker.
git clone https://github.com/PunterDigital/Atelier.git
cd Atelier
docker compose upThis starts Postgres, applies database migrations, and serves the app on
http://localhost:3000. Defaults are fine for
trying it locally; set POSTGRES_PASSWORD (see .env.example) before
exposing it anywhere.
Requires Node 24+, pnpm 10+, and a Postgres instance (or use
docker compose up postgres).
pnpm install
cp .env.example .env # point DATABASE_URL at your Postgres
pnpm db:migrate
pnpm db:seed # optional demo data (demo@atelier.local / atelier-demo)
pnpm devQuality gate (all must pass before any commit):
pnpm typecheck
pnpm lint
pnpm test
pnpm test:billing
pnpm buildAGPL-3.0. You can self-host, modify, and redistribute freely; if you run a modified version as a network service, you must offer its source to your users. Chosen so the project stays genuinely open.