Fathom is $14/mo (100k pageviews). Headcount is a self-hosted alternative at $1.99/mo. Here's when each makes sense.
| Headcount | Fathom | |
|---|---|---|
| Hosting | Self-hosted, your infra | Managed SaaS (cloud only) |
| Data location | Your server, your disk | Fathom's cloud |
| Free tier | 10,000 events/mo | Paid only |
| Pro pricing | $1.99/mo | $14/mo (100k pageviews) |
| Dependencies | None (single binary + SQLite) | N/A (managed) |
| Setup time | ~30 seconds | Account signup |
| Dashboard | Built-in at /ui | Cloud dashboard |
| License | BSL 1.1 | Proprietary SaaS |
Headcount is a single Go binary with embedded SQLite. Install it with one command, and you are running in under a minute. Your data stays on your server.
curl -fsSL https://stockyard.dev/headcount/install.sh | sh
The decision between Headcount and Fathom usually comes down to one question: do you need the breadth of features that Fathom offers, or would a focused tool that stays out of your way be a better fit? Fathom has spent years building an ecosystem around user analytics. Headcount does one thing well and gives you complete control of the underlying data.
Architecturally, Headcount and Fathom could not be more different. Fathom runs on distributed cloud infrastructure with load balancers, managed databases, CDNs, and redundancy across availability zones. Headcount is a single process writing to a single file on a single disk. That sounds fragile until you realize that SQLite handles more concurrent readers than most web applications will ever need, and WAL mode means reads never block writes.
Moving from Fathom does not have to be all-or-nothing. Some teams run Headcount for new data while keeping Fathom as a read-only archive of historical records. The API makes it straightforward to build a sync script if you need both systems to reflect the same data during a transition period.
Single binary. Free to start. $1.99/mo for Pro.