Every time I've looked at leave management SaaS, the pricing page shows something like $1.50 per user per month. It sounds reasonable. Then I do the math for a 30-person team over three years and the number stops looking reasonable. The alternative is self-hosted leave management: running open source software on your own server, where the data stays yours and the cost doesn't compound. But that alternative has its own cost. Here's how I think about the decision.

The honest case for SaaS

SaaS wins on time-to-running. You sign up, invite your team, and the thing works in an afternoon with zero infrastructure. If you don't have a developer on the team, or if spinning up a Docker container is a blocker, SaaS is the right call. Don't fight the constraints you actually have.

Tools like Timetastic, Personio, and BambooHR are mature products and genuinely good choices if the constraints fit. They have mobile apps, SSO, and integrations that take years to build. If any of those are requirements today, a well-established SaaS product likely covers them out of the box.

The cost is twofold: money, ongoing and per-user, and trust. Every SaaS tool handling employee data is a data processor under GDPR. Under GDPR Article 28, every SaaS tool processing employee data requires a signed Data Processing Agreement and an entry in your Article 30 records. When you self-host, that processing stays internal, so no DPA and no third-party sub-processor entry are required. You need to trust their security practices. You accept that their pricing can change and that they can be acquired or shut down.

The honest case for self-hosted leave management

The maths shifts when you run the numbers over a full year, or three.

Scenario SaaS ($1.50/user/mo) Self-hosted (fortrabbit) Self-hosted (VPS)
15 people, 1 year $270 €60 ~$60 or $0
30 people, 1 year $540 €60 ~$60 or $0
30 people, 3 years $1,620 €180 ~$180 or $0

The self-hosted cost is per server, not per user. A €4.5/month fortrabbit plan or a $6/month VPS runs Who's OOO for a team of 5 or a team of 200. And if you already have a server, adding Who's OOO costs nothing.

The setup cost is real. It's a developer afternoon, not ten minutes. But it's a one-time investment, not a recurring one. Once it's running, it runs. You're not paying a subscription forever in exchange for someone else handling the ops.

On data: when you self-host, employee absence records, including sick leave, parental leave, anything sensitive, never leave your infrastructure. There's no vendor to trust, no DPA to sign, no audit to commission. The data is in your datacenter under your control.

On vendor risk: SaaS tools can change pricing mid-year, add paywalls to features you relied on, or get acquired by a company whose values or roadmap don't match yours. A few HR tools have pivoted or shut down in the last five years. When you own the software, that risk disappears.

When to choose leave management without SaaS

Choose SaaS if:

  • Nobody on your team is comfortable with Docker or server maintenance
  • You need a mobile app now
  • You need SSO/LDAP on day one
  • You need to be running in under an hour and can't commit an afternoon

Choose self-hosting if:

  • There's a developer on the team who can spend an afternoon on setup (or use fortrabbit for a git push deployment)
  • You care about where employee data lives (EU, GDPR, or just principle)
  • You're cost-conscious over time and prefer one-time work over recurring cost
  • You want an open source absence tracker you can inspect, fork, and modify
  • You want to own the software and not depend on a vendor's roadmap

What self-hosted leave management looks like in practice

Who's OOO is the open source leave management tool I built when I wanted the self-hosted path. Symfony 7.4 on PHP 8.5, AGPL-3.0 license. The core flow: employee submits a request, manager gets a Slack notification with approve/decline buttons, calendar updates, Slack statuses sync automatically on approved days.

It's not a feature-equivalent replacement for every SaaS tool. It doesn't have a mobile app or multi-level approvals or SSO. If those are blockers for you, it won't be the right fit.

What it does cover: leave requests, manager approvals, leave types with configurable balances, automatic public holiday imports for 100+ countries, iCal export, Slack integration with status sync, and a team calendar. For most teams of under 50 people, that's the full list of things that actually matter. For teams that want a lightweight self-hosted HR tool without the overhead of a full HRIS, it covers the practical requirements.

Deployment: what setup actually looks like

The easiest way to get Who's OOO running is on fortrabbit, a PHP hosting platform built for apps like this. We run our own instance there. The total cost is €4.5/month for the full stack: PHP, MySQL, storage, backups, and a job runner. You deploy with git push and fortrabbit handles the rest.

If you prefer to manage your own infrastructure, Who's OOO also ships as a Docker Compose stack. You pull the repo, configure a .env file with your Slack credentials and database settings, and run docker compose up. The full setup, including first login, takes one developer afternoon.

Ready to set it up? The installation guide covers every step, and most teams are running in an afternoon. If you want to inspect the code first, the full source is on GitHub under the AGPL-3.0 license.

Related guides