astro development

Astro sites your team changes by asking.

I build marketing sites in Astro with Sanity for the editors. After launch, a change starts as a request and ends as a preview you approve. The same person designs it, builds it and ships the hundredth edit.

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.

How a build runs.

Five stages, in this order. Each one ends with something you can open and check, so you know where the project stands without asking.

  1. Inventory and scope

    Every page, form, integration and person who edits the site, written down before anything is designed. The stack is Astro, with Sanity and Cloudflare.

    • URL and template list
    • Who edits what
    • Integration list
    • Fixed scope

    4 in hand so far

  2. Content model

    The pages become document types and fields in Sanity: what repeats, what references what, and which fields search engines read.

    • Sanity schema
    • Studio on your domain
    • SEO fields per page

    7 in hand so far

  3. Design system in code

    Color, type and spacing as tokens, then the sections built from them. New pages are assembled from these parts, so they match the old ones without anyone checking.

    • Tokens
    • Section components
    • A page listing every part

    10 in hand so far

  4. Pages, forms and preview

    Templates wired to Sanity, forms posting to wherever leads actually live, analytics behind consent, and a preview of every draft before it publishes.

    • Page templates
    • Working forms
    • Draft preview
    • Rebuild on publish

    14 in hand so far

  5. Launch and handover

    Redirects, sitemap and a speed check, then the domain moves early in the week so problems surface while I am watching.

    • Redirect file
    • Sitemap
    • Handover doc
    • Repository in your account

    18 things handed over, all yours

What you end up with.

  • Sanity for the people who write

    Marketing edits pages and posts in Sanity Studio, served from your own domain. Layout stays in code, so a busy week of publishing cannot break the design.

  • HTML first

    Pages are rendered ahead of time. JavaScript loads only for the parts that move or respond, like a calculator or a demo, not for every heading and paragraph.

  • Search and AI readers built in

    Titles, canonicals, the sitemap, structured data and an llms.txt are generated from the content, so a new page cannot ship without them.

  • A repository you own

    The site is plain files in your GitHub account, hosted in your Cloudflare account. If you stop working with me, nothing has to be exported.

  • Changes by asking

    After launch a request arrives through the Console or the channel agreed at kickoff, and comes back as a preview. Nothing goes live until you approve it.

  • Parts that agents can use

    Documented components and tokens mean a coding agent builds a new page from the same parts I would, and the change still arrives for review.

Is Astro the right call?

Better to hear it before the build than after it.

A fit when

  • Most pages are the same for every visitor: product pages, pricing, posts, guides.
  • Marketing publishes every week and should not wait on a developer to do it.
  • Search traffic and page speed matter to how the business finds leads.
  • You want the code in your own repository, not inside a builder.

Not a fit when

  • Screens behind a login, dashboards, or components shared with a React product. That is an application. I build the marketing site in Astro in front of it. Stay or move
  • A store, memberships or bookings at the core of the site. The platform already running them is usually the right place to stay. Stay or move
  • Brand identity. I build from a brand you have; I do not create one.
  • A team that lays out new pages visually every week. A visual builder suits that better. Stay or move

The stack.

  1. Changes

    Where your team asks for something

    • The Console
    • Claude
    • Slack
  2. Site

    What visitors load

    • Astro
    • TypeScript
    • Tailwind
  3. Content

    Where editors write and publish

    • Sanity
  4. Hosting

    Where it runs, in your accounts

    • Cloudflare
    • GitHub

Questions about building in Astro.

Why Astro for a marketing site?

Most marketing pages are the same for every visitor, so they can be built once and served as HTML. Astro does that by default and adds JavaScript only to the components that need it, which keeps pages light without anyone having to fight the framework.

Do you build in Next.js?

If it's a better fit for your site, I do that too.

Can marketing edit it without a developer?

Yes, in Sanity. Editors change copy, images, posts and page sections there, and publishing rebuilds the site. What they cannot do is invent a new layout, which is the point: the design system holds.

How long until a published change is live?

On a static build, publishing in Sanity triggers a rebuild, which usually takes a minute or two. Pages that genuinely need to change instantly can be rendered on request instead; that gets decided page by page during scoping.

What does it cost?

A move from another platform is fixed price from $5,000, quoted once after the inventory. A new build is scoped the same way. Ongoing work afterwards is $2,500 a month with no minimum term. The cost page breaks the bands down.

Who does the work?

I do, all of it: scope, content model, design system, build, launch and the changes after. 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 and what does that cost?

On Cloudflare, in your account. A mostly static marketing site often fits in the free tier. Sanity has its own plans, which depend on your team size and usage, and I check them against your editors during scoping.

What if we outgrow Astro?

Then the content is already structured in Sanity and the site is a normal repository, so a new front end can read the same content. Nothing is locked inside a builder.

Next step

Have a site that should be Astro?

Send your site

I can scope a migration. Send a brief and I will reply by email with next steps.