ALMOST

A weekend of work, and real gaps remain.

HR administration for small companies: staff records, holiday requests, time tracking, documents and the reporting around them.

Promptfree, for everyone, and the only version there is
Build the HR administration I actually need instead of Factorial — with one warning stated first.

**Employment law is local and it changes.** Holiday accrual, overtime, working time records and payslip retention are all specified by your country and often by a collective agreement. Build the system; do not invent the rules. Put every rule in configuration, dated, so a change in the law is a new row rather than a rewrite.

STACK
- Node 20+ with Fastify, server-rendered HTML with a little vanilla JS
- SQLite through better-sqlite3, WAL mode
- Caddy in front

THE DATA MODEL
- people: id, name, email, started_at, ended_at, manager_id, contract_ref
- contracts: id, person_id, kind, hours_per_week, effective_from, effective_to — **contracts change, so this is a history and not a column on the person**
- absence_types: id, name, is_paid, accrues, carries_over, max_carry_days
- balances: computed at query time from entitlements minus taken. Never a stored total that can drift
- absences: id, person_id, type_id, from_date, to_date, half_day_start, half_day_end, status, requested_at, decided_by, decided_at, note
- entitlements: id, person_id, year, days, reason, effective_from — append-only, because 'why did she have 26 days in 2024' must be answerable
- time_entries: id, person_id, started_at, ended_at, source, edited_by, edit_reason
- documents: id, person_id, kind, path, sha256, uploaded_at, visible_to_person

HOLIDAY, WHICH IS ALL ANYBODY USES IT FOR
- Request, approve, and a team calendar. That is ninety percent of the value
- Half days matter and are always forgotten. Model them from the start; retrofitting is painful
- Public holidays per country and region, in a dated table, and never hard-coded
- Carry-over with an expiry date, and a warning to the person a month before they lose days
- **Balances computed, never stored.** A stored balance drifts the first time a request is edited, and then nobody trusts the system

TIME RECORDS, WHICH ARE A LEGAL DOCUMENT IN MANY COUNTRIES
- Clock in and out, or a daily total, depending on what your law requires
- **Every edit recorded with who and why, and the original kept.** A working-time record that can be silently changed is worthless to an inspector and to the employee
- Weekly and monthly exports in whatever format your accountant or authority expects

DOCUMENTS AND ACCESS
- Payslips and contracts, visible to the person and to a named few. Access checked on the server for every file, every time
- **Personnel data is the most sensitive data a small company holds.** Encrypt at rest, log every read of another person's record, and default to deny
- Retention per document kind, per your local requirement, with a sweeper

WHAT NOT TO BUILD
- Payroll calculation. Getting tax and social contributions wrong is a fine and a very bad month. Export to whoever runs payroll and let them do it

WHAT MATTERS MOST
Dated rules in configuration and computed balances. One survives the law changing; the other keeps the numbers true.

What you lose

  • Compliance with your own country’s labour rules, maintained
  • Payroll connections that actually reconcile
  • A mobile app employees will use for clocking in
  • Document templates that are legally current

If you would rather not build

  • A hosted HR product, if local compliance is the reason you are buying
  • A shared calendar and a spreadsheet, which is what most small teams run

The escape hatch

open source · no votes, no paid placement

Kimai

$0

Self-hosted time tracking with exports and rules.

kimai/kimaifree · open source

OrangeHRM

$0

Open-source HR management with leave and personnel records.

orangehrm/orangehrmfree · open source

Why this verdict

our own opinion · changed only by a person

50/100

Verdict kinda at 50: the holiday and record-keeping half is a fortnight and genuinely useful. Payroll and local compliance are deliberately out of scope and the entry says so.

History

tracked since 14 Aug 2026 · nothing is ever overwritten

Interest · last 30 days

Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.

Questions about Factorial

answered from the record above

Is Factorial free?

No — the plan we track is $5 a month. From around €5 per employee per month for the core modules, priced by what you switch on.

Can you replace Factorial by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 50 out of 100, build time a weekend. Read what you lose before you decide.

How much does Factorial cost?

$5 a month on Core — $60 a year. Recorded 14 Aug 2026.

What do you lose by replacing Factorial?

Compliance with your own country’s labour rules, maintained; Payroll connections that actually reconcile; A mobile app employees will use for clocking in; Document templates that are legally current. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Factorial?

Yes: Kimai, OrangeHRM. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 31 in Tasks & project management

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc