Every agency has built a lead magnet. Ours were never very good: a PDF behind an email form, downloaded once, never opened again.
This summer we tried the opposite. We built 21 free calculators and templates for UK tradespeople and gated nothing. No signup, no email, no download wall. A plumber can work out a CIS deduction, a landscaper can price a load of MOT Type 1, and neither of them has to give us anything.
We are a few days into having them live, so this is not a results post. It is what the build involved, and the decisions we would repeat.
Every number has a source and a date, in code
The tools give tax, VAT, legal and materials figures. Get one wrong and you have told a sole trader the wrong thing about their tax return.
So no figure is typed into the copy. Rates live in config files with the page they came from and the date we last checked them, and the pages render from those. The self-employed tax calculator, the mileage rate quoted in a guide and the printable checklist all read the same constant. When HMRC moves a rate, we change one line and every page that quotes it moves with it.
It shows up in odd places. The CIS tax calculator has to separate labour from materials because the deduction only applies to labour, and the VAT flat rate calculator has to know that reverse-charged sales earn nothing on the scheme while you still lose the VAT on your costs. Those are not edge cases to the person using them. They are the whole question.
That discipline produced a maintenance document nobody had to remember to write: one line per config, its sources, and what triggers a recheck. Tax and National Insurance after each Budget and on 6 April. VAT flat rate percentages after a Budget. Court fees when the fee order changes. The Bank of England reference rate only on 30 June and 31 December, because that is how the statutory late payment rate actually works, and getting that wrong would overstate what someone can charge.
Performance budget first, because the audience is on a phone on site
Target: under 150 KB of first-load JavaScript on a calculator page, under 200 KB on the document builders.
We missed it at first. Measuring properly showed roughly 130 KB of every page was React and Next before any of our code ran, and small things had crept into the initial bundle: a PDF library, a QR code library, a signature canvas, an embed panel that shipped on all 21 pages.
The fixes were unglamorous. The embed panel became server-rendered HTML with one button. The QR and PDF code loads on first use. The late payment interest calculator was keyed on the current date, so React threw the whole component away after hydration and rebuilt it, which was the longest task on the page.
Calculators now land in the high 140s of KB and the document builders under 170 KB. PageSpeed Insights mobile came back at 97, with 100 for accessibility, best practices and SEO.
The default result renders without JavaScript
Each calculator server-renders a worked example. With JavaScript off you still get a real answer, the working and the sources. The day rate calculator shows a full rate, built from take-home, tax and the days you can actually bill, before a single event handler attaches. It is the same discipline progressive enhancement always was, and it earns its keep for someone on one bar of signal in a van.
The only filter on the hub is CSS: radio inputs and :has(), no client code. Every card is in the HTML, and the chips only hide.
What you type stays in your browser
The quote builder, job sheet and RAMS builder generate PDF and Word files in the browser. Nothing is posted to us. That was a privacy decision first, but it removed a pile of server code, storage and liability we would otherwise be maintaining.
Where the time actually went
Roughly six weeks alongside client work, most of it on sourcing rather than code. Reading HMRC's manuals on what counts as an allowable expense takes far longer than building the form that adds them up. Working out what a trade can legally do when a customer refuses to pay meant reading the pre-action protocols, the court fee order and a law firm's note on why materials fixed to a building stop being yours. None of that is visible in the interface, and all of it is the reason the pages are worth anything.
What we would tell anyone doing the same
- Pick the sums your audience already does badly on paper, not the ones that are easy to build.
- Put the working on screen. It is the difference between a widget and something people trust.
- Decide where the truth lives before you write a word of copy.
- Set a JavaScript budget at the start and measure it, because weight arrives by accident.
- Do not gate it. The reason to build these is that they are worth linking to.
Every calculator has an embed snippet, free to use with a credit link. If you build for accountants, trade bodies or contractors, take one.
Janusz Wozniak is founder of JW Digital Services Ltd, a Manchester company building websites and SEO for UK trades.