Web app development
Web app development is the design and engineering of a real software application that runs in the browser — frontend, API, database and deployment, built as one type-safe system rather than a page of marketing content bolted onto a CMS. We're Klura, an independent fullstack studio in Stockholm. We build web apps where the data, the logic and the interface are engineered together: React 19 on the front, a typed API and Postgres behind it, deployed to Cloudflare's edge. This page explains what that includes, how we work, the stack and its honest tradeoffs, and roughly what it costs. The short version of our differentiator: this is real software, not a templated site — and this very page is running on exactly the stack we'd build yours on.
What "web app" actually means here
There's a meaningful difference between a website and a web app, and the Stockholm market blurs it constantly. A website presents content. A web app does work: users log in, data is read and written, state changes, and something useful happens on the server. A booking system, an internal dashboard, a customer portal, a SaaS product, a tool that talks to other systems — those are web apps, and they are software-engineering projects, not design-and-publish projects.
Most outfits selling "webb" in Sweden are design agencies ("webbyrå") assembling WordPress or a page builder. That's a fine choice for a brochure site. It's the wrong tool the moment you need accounts, custom logic, real data, or anything that has to scale and stay maintainable. Klura sits on the other side of that line: we build the application, end to end, in code we own and understand.
- Customer or member portals — login, roles, account data, self-service.
- Internal tools and dashboards — replacing a fragile spreadsheet or a manual process.
- SaaS products — multi-tenant apps with billing, where the software is the business.
- Booking, scheduling and workflow apps — state, rules, notifications.
- Web platforms with an API — a backend that a mobile app or a partner can also consume.
How we work — scope, build, ship
We keep the process small and legible on purpose. You talk to the person writing the code at every step; nothing is handed down a chain. A typical engagement runs in four phases:
- 1. Scope — a short, concrete conversation about what the app has to do, for whom, and what "done" looks like for the first version. We map the screens, the data, and the integrations, and agree on a clear first milestone. The output is a written scope and an honest range, not a vague proposal.
- 2. Design and architecture — we shape the data model, the API surface and the interface together, because in a type-safe stack they're one decision. You see real, clickable interface early rather than static mockups, so changes are cheap while they're still cheap.
- 3. Build — we ship in small, working increments you can actually use, deployed to a live preview URL from day one. You watch the app take shape and steer it, instead of waiting months for a big reveal. Feedback goes straight into the next increment.
- 4. Ship and hand over — production deployment to the edge, a real domain, monitoring, and a clean handover: you get the source, the infrastructure, and documentation. If you want us to keep maintaining it, we do; if you want to take it in-house, nothing is locked to us.
What you get
Scope varies, but a Klura web-app build is fullstack by default — we don't hand you a frontend and leave the backend as your problem. Concretely:
- A polished, responsive frontend — React 19, accessible, fast on mobile, with a real design rather than a stock theme.
- A typed backend API — your business logic, validated at the boundary, with the same types shared front to back so a change can't silently break the other half.
- A real database — Postgres (Neon), with a proper schema and migrations, not a CMS pretending to be a data layer.
- Authentication and roles when you need them — secure login, accounts, permissions.
- Integrations — payments (Stripe), email, third-party APIs, the external systems your app has to talk to.
- Deployment and infrastructure — set up as code, running on Cloudflare's edge, with preview environments and a path you can hand to anyone.
- The source code and ownership — it's yours, in a clean repository, no proprietary lock-in.
The stack — and why (with real proof)
We've standardised on one modern stack and we use it for everything, including this site. That's deliberate: depth in a coherent toolchain beats a different framework per project. Here's what we build with and the honest reason for each choice.
| Layer | What we use | Why |
|---|---|---|
| Frontend | React 19 + TypeScript | The most widely supported UI ecosystem, so you're never stuck with a niche framework or a developer who can't be replaced. TypeScript catches whole classes of bugs before they ship. |
| Framework | TanStack Start | Modern fullstack React with server rendering and type-safe routing and data loading. Fast first paint, good SEO, no separate backend framework to glue on. |
| Backend / API | TypeScript end to end | The frontend and backend share one language and one set of types. A change to your data model lights up every place that needs updating — bugs surface at compile time, not in production. |
| Database | Neon Postgres | Real, battle-tested SQL with a serverless driver that runs at the edge. Proper relational data, not a vendor's bespoke store you can't take elsewhere. |
| Hosting | Cloudflare Workers (edge) | Your app runs in datacentres close to your users, scales automatically, and costs little to nothing at small scale. No servers to patch. |
The honest tradeoffs: this stack is newer than WordPress, so it isn't the right answer for a five-page brochure site a non-technical person needs to edit daily — for that, a CMS genuinely is cheaper and we'll tell you so. And edge runtimes have constraints a traditional Node server doesn't, which is exactly the kind of thing experience handles quietly. What you get in return is software that's fast, type-safe, cheap to run, and maintainable for years instead of a plugin pile that rots.
The proof isn't a case study we're asking you to take on faith — Klura has no public client list to wave around, and we won't invent one. The proof is this page. klura.app is a TanStack Start app running on Cloudflare Workers, the same stack described above. You're reading the artifact. If it loaded fast and behaves well, that's the work.
What it costs
We don't publish a fixed price list, because an honest number depends on your scope and a made-up one helps nobody. As orientation: senior Swedish developer rates sit at roughly 800–1 200 kr/h, against roughly 900–1 800 kr/h for an agency. The difference with a senior solo studio is structural — there's no account manager, no sales layer, and no junior billed as senior, so you pay for the work rather than the overhead, and you talk to the person who actually builds it.
A focused web app — a portal or internal tool with login, a real backend and a clean interface — is typically scoped as a fixed-band first build, with running costs after launch that are small on an edge/serverless stack. For concrete number ranges, timelines and what drives the figure up or down, see our cost guide; the economics of a web app and a mobile app overlap heavily, since we build both on the same foundation.
FAQ
What's the difference between a web app and a website?
A website presents content; a web app does work — users log in, data is stored and changed, and logic runs on a server. A booking system, a customer portal, a dashboard or a SaaS product are web apps. Klura builds web apps: real software with a frontend, an API and a database, engineered end to end, not a CMS-based brochure site.
How is Klura different from a webbyrå?
Most Stockholm web agencies are design shops assembling WordPress or a page builder, which suits a brochure site. Klura is a fullstack software studio: we write the application in code we own — React, a typed API, Postgres, deployed to the edge. If you genuinely just need an editable five-page site, we'll say a CMS is the cheaper, better fit. If you need real software, that's exactly what we build.
Can you build both the frontend and the backend?
Yes — that's the whole point. A Klura web app is fullstack by default: the interface, the API, the database, authentication, integrations and deployment, all built and owned together. Because it's TypeScript end to end, the frontend and backend share one set of types, so a change can't silently break half the app.
Will I be able to maintain the app, or am I locked in?
You own the source and the infrastructure, in a clean repository with no proprietary lock-in. If you want Klura to keep maintaining it, we will; if you want to take it in-house or hand it to another developer, the stack is mainstream React and Postgres, so anyone competent can pick it up. We don't build dependence on us into the deal.
What does it cost to build a web app with Klura?
It depends on scope, so we give an honest indicative range on a first call and a fixed proposal once the scope is clear, rather than a fabricated list price. As orientation, senior Swedish rates run roughly 800–1 200 kr/h, and an edge/serverless stack keeps running costs low after launch. Our cost guide breaks down the ranges and what moves the number.
Have a web app in mind — a portal, an internal tool, a SaaS product? Tell us roughly what it needs to do and we'll give you a straight, honest range. Email hej@klura.app.