Skip to main content

Next.js · React · Node

When a template stops being enough.

Web applications for businesses and Not for Profits. Built to load quick, get found by Google, and still be workable in five years. We run our own sites on the same stack, so the example below is one we can show you in full rather than describe around.

Four reasons people call

Nobody rings up wanting a Next.js application. They ring up because one of these is happening.

The website works, but the business has outgrown it

It was a good fit back when it was five pages. Now there are members, bookings, a directory or a dashboard bolted on through plugins, and every small change turns into a negotiation with the theme. There comes a point where the template costs more than a build would have.

You need a real application, not a brochure

People log in. They submit things, search, filter, see their own data. That is software. It wants building as software, even when it still has to look like a website and rank like one.

It is slow, and that is costing you

Five seconds to load and you have lost people before they arrived. Google notices too. Most of the fix is architectural: deciding what gets built ahead of time and what genuinely has to be fetched while someone waits.

Google cannot see it

Plenty of modern sites render entirely in the browser, so a crawler turns up and finds an empty page. Getting search visibility and app-like behaviour at the same time is a decision you make early or pay for later.

One we built, start to finish

Client work is usually confidential. This one is ours, it is public, and every decision in it is one we would make again.

Worked example

AllSwims.au

A free public map and directory of where to swim in Australia. Ocean events, surf clubs, public pools, rock pools, cold-water clubs and inland water holes, all in one searchable place.

It looks simple, which is the point. Underneath sits a database of a couple of thousand locations, a national map, and a content system that has to be open to search engines and shut to bulk copying at the same time.

Visit AllSwims.au
Findable by Google, page by page
Every location gets a real page of its own, rendered on the server with its own title, description and structured data. A crawler sees finished HTML, not an empty shell waiting on JavaScript to fire.
The data stays the asset
The full dataset never goes to the browser. The map asks for what fits the current view and nothing more, through a capped, rate-limited endpoint. Useful to visitors, without handing a competitor the whole database.
No login, no friction
The public site asks nothing of visitors at all. Contributors and admins sign in by emailed link, so there is no password to choose, forget, or leak.
Built to be cheap to run
Managed hosting and a managed database, both of which scale down to nothing when the site is quiet. Nothing to patch, and the bill tracks actual use rather than capacity you booked in advance.

What that buys, in plain terms

The reasons we build this way, rather than a list of the technologies we build with.

2,054

records, one map

AllSwims.au is a national directory of swim spots. Events, pools, ocean baths, surf clubs, water holes. Served as a fast public map with no login and no sign-up wall in the way.

Sub-second

first paint

Pages are rendered ahead of time on the server, so they turn up complete. The interactive map loads separately, after the content the visitor actually came for.

Indexed,

not harvestable

Every page is visible to Google while the underlying dataset never ships to the browser in bulk. Findable and copyable are two different problems and they want different answers.

One person

runs it

Built so the ordinary upkeep takes minutes, not days. Managed hosting, managed database, deploy on push, no server sitting there waiting to be patched.

What we do on this stack

Front end and back end both. If yours is on the list we have done it before, and if it is not, ask anyway.

  • Next.js applications: server rendering, static generation, incremental updates
  • React front ends and design systems
  • Node.js APIs and server-side logic
  • TypeScript throughout, so the code survives being handed over
  • PostgreSQL and Prisma: schema design, migrations, query performance
  • Interactive maps and data visualisation
  • Authentication: passwordless links, sessions, roles and permissions
  • Search visibility built in from the start rather than bolted on later
  • Accessibility to WCAG 2.1 AA
  • Deployment pipelines on Vercel, with a preview per change and deploy on merge
  • Rebuilding older sites without losing their search rankings
  • Handover, with documentation written for whoever comes next

Common questions

Why not just use WordPress or Squarespace?

For a site that is mostly pages, you should. We build those too, and we will say so when that is the right answer. The rough line is this: if people mainly read it, use a CMS. If they log in, submit, search or see their own data, it is an application, and building it as one works out cheaper over its life than fighting a template every time you want a change.

Will a React site still rank on Google?

Yes, if it is built to. The risk is that pages render only in the browser, so a crawler turns up to nothing. We render on the server, so every page arrives as finished HTML with its own title, description and structured data. Search visibility is an architectural call you make at the start, not a plugin you add at the end.

How long does something like this take?

A focused first version is usually six to twelve weeks, depending on how much of it is genuinely new. We would rather ship something real and build on it than disappear for six months and come back with a surprise. You see working software early and often.

What does it cost to run once it is live?

Usually far less than people expect. Managed hosting and a managed database both scale down when the site is quiet, so a low-traffic site can run on tens of dollars a month rather than the cost of a server sitting idle waiting for a busy week that comes twice a year.

What happens if we want to take it elsewhere?

You own the code and the data, and it is written so someone else can read it. No proprietary framework, no licence to keep paying, nothing locked to us. We would rather be kept on because the work is good.

Start with the problem, not the technology

Tell us what people need to do that they cannot do now, and roughly how many of them there are. That is enough for us to say whether this is a build or a much smaller job. And if it is the smaller job, we will tell you.