Case —
Policies, invoices,
one calm desk.
A Danish insurance mutual needed day-to-day policy and billing work off ageing host infrastructure-without losing correctness, history, or the audit trail finance relied on. I worked across the PHP services and the Nuxt staff app that replaced it.

The client
A mutual-style insurer in Denmark-underwriting, renewals, and member administration with the regulation and audit expectations that come with the category. Staff lived in spreadsheets, printouts, and a legacy host system that was expensive to change and risky to extend.
The problem
Day-to-day work spanned memberships, policy lifecycles, tariff maintenance, invoice generation, settlement runs, notices, and reporting-with finance integrations and outbound documents that had to match legal wording.
Correctness and history mattered. A replacement could not mean re-entering years of policy data or breaking the audit trail between underwriters and finance.
Staff needed one platform, not a patchwork of host screens, Excel bridges, and manual hand-offs every time a renewal or settlement run moved through the building.
What I did
Backend
Slim PHP HTTP services with relational data under migrations. Queue-style jobs for slow work-settlement runs, batch invoicing, reporting exports. Twig-backed documents where PDFs and letters had to track the legal text.
Frontend
A static-generated Nuxt 2 SPA with Vuetify, Vuex, charts, rich text, validation, and Danish i18n. Dozens of operational screens for the workflows above-not a marketing surface.
Across both
I worked in both codebases-domain logic, reporting exports, and integrations on the API side; billing and policy lifecycle features, renewal edge cases, and UI that stayed honest as the API surface grew on the frontend side.
Where it helped the team, I stayed close to how underwriters and finance actually used the screens-so we shipped work that reduced double entry and spreadsheet bridges, not another isolated CRUD form.
Results
Policy and billing work moved into one staff-facing platform instead of bouncing between host screens and offline spreadsheets.
Underwriters and finance shared the same data through settlement and invoicing-fewer manual hand-offs and fewer places for numbers to diverge.
The Slim and Nuxt stack stayed in production through the engagement, with room to extend tariffs, settlement, and reporting without reopening the mainframe-style risk profile the legacy system carried.
Related cases —
Check out
other cases.

- Long-term contract
A shared Vue framework and a large back office
I built Nyx's reusable Vue component framework and led the frontend for their largest back-office application. The platform serves more than 250,000 users.

- Campaign site
DK Hostmaster's 20-year story-for the public and the press.
Static Nuxt front end with year-by-year storytelling and predictable hosting. Content lives in the repo so the team could update and hand it off without a CMS.

- Product platform
E-sport coaching platform rebuilt to grow revenue without growing firefighting.
End-to-end rebuild so the team could onboard more players, run day-to-day operations reliably, and ship product changes with confidence-Laravel, Vue, and AWS where it mattered for scale and cost.

- Marketing site
A marketing site the studio could publish from WordPress-and visitors would feel in the browser.
Scoped project for a design-led agency: mockups translated to a Nuxt front end, with WordPress headless so the team could ship cases and campaigns without learning a new CMS.
Looking for
the right developer?
Whether you're ready to start or just exploring your options, feel free to reach out. No commitment, no pressure.
I usually respond within 2 hours.