Simple Analytics
Privacy analytics without Kubernetes cosplay
Adriaan van Rossum built Simple Analytics — a privacy-friendly Google Analytics alternative — in three months using Node.js and Postgres, then added Elasticsearch when aggregations hurt. Multiple plain servers, no containers, EU hosting.
2018
Three-month MVP, tools already known
Node.js
PostgreSQL
Chart.js
Handlebars
Single VPS
Van Rossum started Simple Analytics after refusing to paste Google Analytics on his own sites. His Code Story interview is explicit: previous products died because he kept learning new frameworks — this time he used only Node.js, Postgres, and Chart.js.
The MVP took about three months. He launched on Product Hunt and Hacker News with a cookieless, privacy-first pitch — finished on time because boring tools did not block shipping.
Lesson
Pick tools you have muscle memory for. Novelty is a tax on launch dates.
2019–2020
Four servers, encrypted main, queue for uptime
Node.js
PostgreSQL
Dedicated Queue server
Encrypted Main server
nginx
Cloudflare CDN
His “failure” post documents the production layout: a Queue server collects pageviews from embed scripts; the Main server is encrypted and only boots with a password; a Testing server runs acceptance checks; an External server handles custom domains and SSL — separation of concerns without Kubernetes.
They moved servers to Iceland (1984 hosting) for privacy, then adjusted CDN strategy when embed latency ticked up. Postgres carried the MVP; Elasticsearch arrived later when drill-down features needed faster aggregations.
Lesson
Encrypt the crown jewels, queue the rest. Uptime for analytics means never losing a pageview batch because someone rebooted.
2021–today
Elasticsearch when Postgres hurt, still no k8s
Node.js
Elasticsearch
PostgreSQL
Netherlands hosting
Horizontal API servers
Van Rossum hired Elasticsearch expertise when Postgres aggregations across five tables became painful — a deliberate graduation, not day-one over-engineering. Monthly updates describe fully encrypted API servers scaling horizontally with customers.
Simple Analytics stays off containers and orchestration by choice: multiple dedicated servers in the Netherlands, Cloudflare for DNS/CDN, transparency posts about outages and architecture. The product sells trust, not infra novelty.
Lesson
Swap databases when queries hurt, not when HN announces a fork. Privacy products need boring reliability more than fashionable orchestration.
Sources
- Simple Analytics — Why I share my failure (4-server architecture)
- Simple Analytics — Why we moved our servers to Iceland
- Simple Analytics — Code Story founder interview (Node/Postgres MVP)
Facts drawn from public engineering posts and interviews. Numbers are approximate where sources disagree — we're stack advisors, not historians.
Get the right stack for YOUR scale — not theirs
Simple Analytics's stack made sense for Simple Analytics. Yours won't — and copying theirs is how you end up with a $4k/month bill and three unused Kubernetes clusters.
Plan my stack — free