Next.js builds that actually use the platform.

App Router, server components, ISR, edge rendering, server actions — picked by fit, not by hype. Next.js is our daily driver: the stack we ship every client site and product on.

apps.solagon.com / v4.2
Shipped

Release

v4.2 · shipped Tuesday

Live on all platforms
Books
Today
Clients
Schedule
Reports

Today · 8 bookings

Tuesday, May 6

+ New
9
10
11
12
1p
Clara M.
10:00 · 30m
Maya K.
10:30 · 45m
Jay R.
11:15 · 60m

Web · v4.2

9:41
Books

Today

8 bookings

10:00

Clara M.

10:30

Maya K.

11:15

Jay R.

iOS + Android · v4.2

01

App Router, server components, server actions — used the way Vercel intends.

02

Rendering strategy chosen per route (SSG, ISR, SSR, edge) instead of one default.

03

Caching, revalidation, and tag-based invalidation built into the data layer.

What we build into every Next.js engagement.

Architecture, build, deploy, and the operational layer that keeps it cheap to run.

01

App Router architecture

Route groups, parallel routes, intercepted routes, and loading/error boundaries used the way the docs intend.

docs.solagon.com/scope

Scope of work

v1.0 · signed off

Signed off Tue

Users

  • · Clinic staff · 40 seats
  • · Patients · web + mobile
  • · Billing · read-only

Integrations

QuickBooksStripeTwilioIntercom

Milestones

  • · Discovery — Aug 12
  • · Beta — Sep 30
  • · Launch — Nov 1

Out of scope

EHR sync · deferred to Phase 2

02

Rendering-mode map

A per-route decision: static, ISR, SSR, edge SSR, or client. Documented in the repo. Reviewable.

stack.solagon.com

Full stack

one team · one codebase
UI
Next.jsReactTailwind

Marketing · web app · portal

API
tRPCZodWebhooks

GET /api/bookings · 142ms

Data
PostgresDrizzleRedis

Schema · migrations · backups

One team · one codebase · one handoff
03

Data layer with revalidation

Server fetches with cache tags. Server actions that invalidate tags on write. No stale data, no full-route revalidates.

github.com/solagon/web

components/Header.tsx

tsx

1

2

3

4

5

6

7

<header>

<nav aria-label="Main">

<button aria-label="Close menu">

Close

</button>

</nav>

</header>

axe-core · auditWCAG 2.2 AA · 12 / 12
04

Edge runtime where it pays

Cookie-based personalization, geo routing, AB-test flags — moved to the edge so origins stay cold.

api.yourapp.com

API console

production
GETapi.yourapp.com/bookings/today200 · 142ms
ResponseHeadersAuth
[
  { "id": 4218, "time": "10:00", "name": "Clara M." },
  { "id": 4219, "time": "10:30", "name": "Maya K." }
]

p50

18ms

p99

240ms

Uptime

99.99%

Five phases. Next.js-specific decisions baked in.

The phase names match every other engagement. The internals shift to surface Next.js-specific decisions early.

Week 1

Discovery

Audit the existing stack, the conversion targets, the data sources, and the constraints (CMS, auth, third-party services).

Week 2

Strategy

Per-route rendering map, caching strategy, data-layer design, Vercel deploy target plan. Signed off before scaffolding.

Weeks 3–7

Build

Pages, components, data layer, server actions, edge personalization. Real Lighthouse scores from week two.

Ship

Ship

Vercel production deploy, monitoring, runbook, and the cost-engineering pass that keeps the bill in line with the architecture.

Building on Next.js — or migrating to it?

Tell us the routes, the data sources, the constraints. We’ll map the rendering strategy, scope the build, and tell you honestly whether Next.js is the right call for what you’re trying to ship.