LUMEN&HOUSEStart a project
01 — Capabilities

Next.js & React engineering

Production web applications and platforms in Next.js, React and TypeScript — typed end to end, fast by default, and yours to keep.

What we build

Customer-facing web applications, internal consoles, marketing platforms and the APIs behind them. The stack is the modern React one — App Router, server components, streaming — used the way it was designed rather than bent into a single-page app with extra steps.

Server rendering is the default and client interactivity is the opt-in, for the reasons we set out in why we ship Server Components by default. Where a route is genuinely data-heavy it renders next to the database instead of at the edge, which is a decision we make per route rather than per project — see edge rendering, honestly.

How it is engineered

  • Typed end to end: TypeScript from the database row to the button label, so whole classes of bug never reach a branch.
  • Budgets per route: JavaScript and timing ceilings enforced in CI — performance budgets that actually hold.
  • Accessible by default: keyboard, screen-reader and contrast checks run as build gates, not as a pre-launch scramble.
  • Tested where it earns its keep: Playwright for the paths that make money, Vitest for the logic that is easy to get wrong.

What you get

Your repository, your infrastructure, documented well enough that any competent team can pick it up — including one that is not us. Architecture and trade-offs are written down and agreed before the first commit, so nothing important gets decided by accident.

How an engagement runs

We start with a short architecture phase: stack, data model, rendering strategy and the trade-offs behind each, written down and agreed before anyone opens an editor. From there you get a live preview URL in the first week and a working increment every week after, so progress is something you can click rather than something you're told about.

Typical builds run six to fourteen weeks depending on scope. Bigger platforms run as successive phases, each one shippable on its own — we would rather put something real in front of users in month two than something complete in month nine.

Common questions

Do you work with an existing codebase or only greenfield?

Both. Roughly half our work is inherited — a codebase that got built quickly and now needs to scale, or a team that needs senior help stabilising it. We start with a written assessment of what to keep, what to replace and in what order, so you can see the reasoning before committing to the work.

Is Next.js always the answer?

No. It is our default because it fits most product web work, but a documentation site does not need it, and some applications are better served by a plain React SPA or server-rendered templates. We pick per project and explain the reasoning.

What happens when the build finishes?

You own the repository and the infrastructure, and the handover includes architecture notes and runbooks written so a team who has never met us can operate it. Most clients keep us on a lighter retainer afterwards, but that is a choice, not a dependency.

Start a project

Start here

Let's build the thing they can't stop using.

Send the brief. A senior engineer reads every one and comes back with an architecture, a plan and a quote written against your actual scope — usually within a day.