For sites with logins, live product data or components shared with your React app. Sanity
for editors, Vercel or Cloudflare for hosting. The same person designs the site, builds it
and ships the changes after.
Next.js earns its weight when pages differ per visitor, read from your product's API, or share components with a React app. If every visitor sees the same pages, I will tell you Astro is the better build. More framework than the site needs is a cost you pay on every change. Read the comparison.
A fit when
Some pages differ per visitor: an account area, a dashboard, pricing by plan.
The site reads live data from your product, and that data should not be copied into a CMS.
Your product is React, and the site should share its components instead of copying them.
Editors still publish the marketing pages in Sanity, without a ticket.
Not a fit when
Every visitor sees the same pages: pricing, guides, posts. Astro ships less to the browser, and there is less to maintain. Astro development
Your core backend: billing logic, data pipelines, the system of record. I build against its API; your engineers own it.
Native mobile apps.
A team that wants to design new layouts on a canvas each week. Stay or move
What a change looks like after launch.
A sample site with invented data. Pick a request: a fix, a new section, or a new page. On a
real site each one arrives as a preview, and nothing goes live until someone approves it.
northwind.com
NorthwindGet started free
NewException routing is live→
Freight that tells you where it is.
Every shipment, every carrier and every exception in one place, updated
from the source rather than from a spreadsheet somebody maintains.
Five stages, in this order. Each one ends with something you can open and check.
01
Scope and architecture
Which pages are static, which render per request, which sit behind a login, and where the data for each one comes from. This stage settles the build: Next.js, or Astro if nothing on the site needs Next.js.
Route map
Rendering plan per route
Data sources
Fixed scope
4 in hand so far
02
Content model and data
Marketing content modeled in Sanity; product data read from your API, not copied into a CMS where it will go stale.
Sanity schema
API contracts
Auth approach
7 in hand so far
03
Components and design system
Tokens and React components, written so they can be shared with your app later if you want them to be.
Tokens
Component library
A page listing every part
10 in hand so far
04
Product surfaces and integrations
Account areas, forms, payments and the calls to your backend, each tested against real responses including the failed ones.
Auth flows
API routes
Integration tests
Error states
14 in hand so far
05
Launch and handover
Redirects, sitemap, a performance pass on the routes that render per request, then the domain moves early in the week while I am watching.
Redirect map
Performance check
Handover doc
Repository in your account
18 things handed over, all yours
The same build on a calendar: what you do, what I do, and when.
Kickoff to launchSample plan, 4–6 weeks
Week 1Week 2Week 3Week 4Week 5
You YouWhat I need from you
PlanAudit and content model
BuildAstro or Next.js, with Sanity
LaunchContent, QA and cutover
You You
Week 1KickoffOne call to agree the scope, the dates and who signs off.
Week 1AccessYour current site, your domain and the accounts your new site will live in.
Week 1Plan approvedYou approve the page plan and the redirect policy before any build starts.
Week 4Preview reviewYou read the real pages on a private preview and send your notes.
Week 5LaunchThe site goes live in accounts your company owns.
Plan
Week 1AuditI list every URL, form, script and CMS field on your current site.
Week 1Content modelYour pages become structured Sanity types your editors can use.
Build
Weeks 2 to 4Pages and componentsI rebuild each template and compare it with the live page, side by side.
Launch
Weeks 3 to 4Content and redirectsYour content moves to Sanity, and every old URL gets its redirect.
Weeks 4 to 5QA and launchSpeed, links, forms and analytics get checked before the domain moves.
Point at or tap any item to see what happens then.
What you end up with.
Static where it can be
Marketing pages are still generated ahead of time. Only the routes that genuinely differ per visitor render on request, so the parts that can be fast are.
Sanity for the marketing pages
Editors publish in Sanity Studio and the affected pages refresh, without rebuilding the whole site or opening a ticket.
Your API, not a copy of it
Pricing, plans and status come from the system that owns them. When the product changes, the website does not need a second edit.
Auth that matches the app
Login uses the provider your product already uses, so a customer has one account and one session across both.
A repository you own
Plain TypeScript in your GitHub, deployed from your hosting account. Your engineers can read it without asking me what anything means.
Changes by asking
After launch, requests arrive through the Console or the channel agreed at kickoff and come back as previews. Nothing ships until you approve it.
The stack.
Changes
Where your team asks for something
The Console
Claude
Slack
Site
What visitors load
Next.js
TypeScript
Tailwind
Content
Where editors write and publish
Sanity
Hosting
Where it runs, in your accounts
Vercel
Cloudflare
GitHub
Related reading.
Questions about building in Next.js.
Should my site be Astro or Next.js?
Astro if every visitor sees the same pages. Next.js if the site has logins, reads live product data or shares React components with your app. I build both on one price list, and the first call usually settles which.
Can marketing still publish without a developer?
Yes. Marketing pages live in Sanity, and publishing refreshes the pages that changed. The account and product routes stay in code, where a content edit cannot break them.
Do you build the backend too?
The parts the website needs: API routes, form handling, auth, payments and the calls to your product. Billing logic, data pipelines and anything your product depends on stay with your engineers, and I build against their API.
Can you work in an existing codebase?
Yes, if the codebase is worth keeping. I will read it first and say what I would change, and whether the marketing site would be better as Astro.
What does it cost?
A move from another platform is fixed price from $5,000, quoted after the inventory. A new build is scoped the same way. Ongoing work afterwards is $3,500 a month with no minimum term. The cost page breaks the bands down.
Who does the work?
I do, all of it. There is no handoff to a junior and no second team. The trade is capacity: there is no second team to absorb a rush, so scope and cost are agreed in writing before work starts. More on that.
Where is it hosted?
In your Vercel or Cloudflare account. The repository is in your GitHub.