I opened Fusionaly’s database yesterday. Six months of production web analytics. Thousands of pageviews, sessions, referrers, all the dashboards.
14 megabytes.
That’s absurdly small. I could email the whole thing.
Turns out that’s all I need.
I’m building two more products the same way.
Formlander handles form submissions. Three months in production, same architecture. LogNorth captures errors and logs. Two weeks old, same pattern.
SQLite for all of them. One file per product. No clusters. No shards.
The pattern isn’t the file size. The pattern is what I didn’t build.
No event streaming — SQLite handles my write volume fine. No separate analytics database — I aggregate on write, queries stay fast. No replication — daily VPS snapshots are enough for a business that won’t die if it’s down for an hour.
The industry would call this unscalable. They’re confusing my scale with Google’s. Google processes billions of events per second. I process thousands per day. That’s their rounding error. To me, it’s a business.
The math is almost embarrassing.
A busy site does 50,000 pageviews per day. Ten years of that is 180 million events — somewhere between 50 and 80 gigabytes. With aggregation, retention, and compaction, smaller still.
Check your production database. How big is it actually? You might be surprised.
“But what if I outgrow it?”
You’ll know. The database will tell you. The queries will slow down. The file will get big.
And when that day comes, you’ll have the revenue to solve it. That’s a good problem. Most businesses never get there.
What you shouldn’t do is build for imaginary scale today. I wasted years doing that.
Your data is small.
So why are you building like it isn’t?
That’s not a limitation — it’s your leverage. Small enough to self-host. Small enough to own completely.
Embrace it.