Why We Built Atrium
When we started looking for client portal software, we found a gap in the market. The options were either expensive SaaS platforms charging $30+ per seat per month or stitching together Google Drive, Notion, and Stripe and hoping clients could follow along. We looked for open-source alternatives and couldn't find anything that covered the basics in one place. So we built Atrium.
What Atrium does
Atrium is a self-hosted client portal. Your clients log in and see their projects, download files, view invoices, and get status updates — all under your own branding.
The core features cover what agencies and freelancers actually need:
- Project tracking with custom status pipelines configurable per organization - File sharing with S3, MinIO, Cloudflare R2, or local storage - Invoicing with PDF generation - White-label branding so the portal looks like your product - Role-based access for your team and clients - Email notifications
The stack
NestJS API, Next.js frontend, PostgreSQL with Prisma, and Better Auth for authentication. The monorepo runs on Turborepo and Bun. Setup is git clone, bun run setup, bun run dev — or docker compose up for production.
Why open source
The agencies and freelancers who need this the most are the ones least likely to pay $30 per seat per month for it. Open-sourcing under the Elastic License means anyone can self-host it, customize it, and run it for their own agency. The only restriction is you can't resell it as a managed service.
We're still early. There's a lot we want to add — client-facing comments, Stripe payment integration, notification preferences, and more. But it already handles the workflow we were paying hundreds a month for, and we'd rather build it in the open than behind a paywall.
If you run an agency or freelance practice, give Atrium a look. We'd love to hear what you'd want from it.