Development is where strategy and design turn into an actual product. This is where it is decided whether a digital experience stays fast, stable and maintainable.
We build websites, apps and custom software with a focus on clean architecture, comprehensible components and real-world usability. That does not mean as much technology as possible, but the right technical answer for the goal at hand.
The stack we work with — and why
For marketing sites and content platforms we mostly build with Nuxt and Vue, delivered over Cloudflare Workers. That means the page is server-rendered, so search engines and AI crawlers see it in full without executing JavaScript, and it is served from an edge location near the visitor rather than from one data centre.
Content sits in a headless setup shaped around the team that has to use it, not the other way round. A newsroom publishing daily needs a different interface than a company adding a page twice a year.
We choose the stack per project, not by preference. What we use Nuxt, Framer and Shopify for is on the respective pages. A shop with 40 products and no special logic does not belong in a custom build. A platform with roles, approvals and integrations does not belong in a website builder.
Performance is architecture, not a later fix
Load time can barely be repaired at the end of a project. It comes from decisions made early: what renders on the server and what in the browser? Which images ship at which sizes? How much JavaScript does the first view genuinely need?
We measure during development rather than after, using the same metrics Google collects from real users — Largest Contentful Paint, Cumulative Layout Shift, Interaction to Next Paint. Images run through edge transformations, fonts get fallbacks that do not shift the layout, scripts load only where they are used.
Maintainable means somebody else can continue
The real cost driver in digital projects is rarely the build but everything after it. A project only the person who built it understands is a risk — even when that person is us.
So we write code that reads without prior knowledge: clear component boundaries, few abstractions, comments where a decision is not self-evident. No framework inside the framework, no configuration layer for values that never change.
That includes things that look dull in a proposal and prove decisive in operation: repeatable deployments, a preview environment, correct redirects when structures change, monitoring that reports before a customer calls.
Apps and custom software
Not every problem is a website. When internal processes run on spreadsheets and email chains, a small, precisely scoped application is often cheaper than yet another off-the-shelf product with licence costs and a poor fit.
We build such applications deliberately narrow: the three things needed daily, solved properly, instead of twenty features of which fifteen are never used. What is missing can be added later — what was built too early has to be maintained forever.
For mobile we settle the budget question early: is an installable web app enough, or do you need genuine native builds with a store process? The answer depends on concrete requirements — push, offline use, hardware access — not on the wish for an app icon.
Taking over existing projects
We also take on work that started elsewhere. That begins with a technical audit: what is the state, what is debt, what is sound? Out of it comes an honest recommendation — continue, partially replace, or rebuild — including what each option realistically costs.
Typical work in this area:
- Web development for fast websites and platforms
- App development for digital products and applications
- Custom software for specific processes and systems


