Self-updating web portal · 2026 — present
Diramo — calculators for freelancers
Diramo is a free portal of online calculators for Italian freelancers, which I have been building since 2026 with the help of Claude Code. It is a static Astro and TypeScript site that grows by itself: twice a week a GitHub Actions pipeline uses Gemini to generate a new calculator and publishes it if it passes type-check, build and numerical checks. The automated checks do not verify that formulas are correct under Italian tax rules, so I review every generated calculator after publication and fix it by hand when needed.
Background
Diramo has been live since July 2026 at www.diramo.app. It is in Italian only and needs no sign-up. It is a personal project: I came up with it and I build it with the help of Claude Code, and since September 2026 it has been growing with new tools generated by Gemini.
Self-employed people keep redoing the same sums, such as extracting VAT from a price, withholding tax or an hourly rate.
Goal
I wanted a utility portal that feeds itself. Diramo gives each calculation its own page with the same structure:
- a short form, with the result updating as you type;
- an explanation of the method, with a worked numerical example;
- in-depth sections, frequently asked questions and related tools.
The second goal was technical: to see how far the growth of a portal can be automated without a backend, a database or a content management system.
What I built
How is the site built?
Diramo is a static site generated with Astro 7 and TypeScript: pages are ready-made HTML, and JavaScript is used only where there is interaction.
- JSON data: each tool is an entry in a JSON file with title, category, explanation, sections, FAQ and related tools.
- Calculations separated from the UI: the logic is a pure TypeScript function; the Astro component reads the fields and shows the result with a small vanilla script, with no UI framework.
- CSS without frameworks: CSS variables, system fonts, a three-column layout on wide screens and a slide-out menu on mobile.
- Local search: a JSON index built at build time powers a client-side search.
- CI and publishing: GitHub Actions runs Prettier, type-check and build on every push and publishes the main branch automatically.
How is a new calculator created?
Gemini proposes and writes it, twice a week, inside a GitHub Actions workflow that runs a Node.js script:
- Gemini picks a topic. It receives the list of existing tools, to avoid duplicates, and a few constraints: a recurring need for Italian freelancers that a single calculation can solve.
- Gemini produces the tool sheet: title, category, explanation, sections, FAQ and a few test cases with inputs and expected results.
- Gemini writes the calculation function and the Astro component, using an existing calculator as a style reference.
- The script runs formatting, type-check, a comparison of the function against the test cases and a full build. If something fails, the error goes back to Gemini for a fix, up to three attempts.
- If everything passes, the calculator is published with no human intervention; otherwise the changes are discarded and the site stays as it was.
The hardest part
The hardest part is deciding what the automated checks can guarantee and what they cannot.
What do the automated checks verify?
They verify that the code compiles, that the site builds and that the function returns the results expected by the test cases. But Gemini itself proposes those cases: the checks measure consistency between code and specification, not whether the formula is correct under Italian tax rules, such as a rate, a threshold or a deadline.
That is why I review every generated calculator after it is published and, when needed, fix formulas and text by hand. Every page also carries a notice: results are indicative estimates and do not replace an accountant.
Outcome
I developed the first calculators (VAT, margin and markup, freelance rate, project price) with Claude Code before the pipeline; since September 2026 new ones come from automated generation. The site has its information and legal pages and is supported by Google AdSense ads. Still to do: the English version and a quote generator.
If you need a static site that grows through an automated pipeline, you can see what I offer on the services page.