Toolora
110 free calculators and converters in one place.
The second thing I built, and the first one I put on a domain of my own.
People search for one small thing at a time — an EMI figure, a unit conversion, days between two dates — and land on pages covered in ads. I wanted to see whether a fast, quiet version of that could earn its own traffic.
The interesting constraint isn't any single calculator. It's building 110 of them without ending up with 110 small codebases, each with its own layout, its own metadata, its own bugs.
A tool is data, not a page
Every tool is an entry in a registry: its inputs, its category, and a pure function that turns inputs into results. One dynamic route renders all of them. Metadata, the sitemap, the category pages and the search index are all derived from the same array.
Adding a tool is one object. It shows up in navigation, in search, and in the sitemap without touching anything else — and because the compute function is pure, it's testable without rendering anything.
The registry is the sitemap, the nav, and the search index. There's no second list to forget to update.
Not every page that can exist should
Converters are the largest category, and the tempting move is to generate a page for every pair of units. Sixteen unit families permuted would produce thousands of routes overnight.
I generate the sixteen family pages, then hand-pick twelve direct-pair pages — kg to lbs, cm to inches — the conversions people actually search for by name. Each of those gets its own worked examples, a reference table and a reverse link. The rest are handled by the family page.
Thousands of near-identical pages is the thin-content failure mode of programmatic SEO. Fewer pages that each deserve to exist was the harder call and the right one.
28 converter routes: 16 unit families plus 12 curated pairs, rather than the thousands a full permutation would have produced.
What I’d do differently
- 01Building every tool at once was the wrong first target. I cut it to five — one per category — to find out what the shared shape actually needed to be before committing to it another hundred times.
- 02Search traffic is a slow instrument. Nothing I could have built faster would have changed the first three months.
- 03Pure compute functions made the testing cheap. 145 tests cover the engines — the maths, the conversions, the date handling — without rendering a single component.
