> starmerx.io
[github]
← cd ../blogs
[blog] · · 2 min

Why we built starmerx.io as a static site

An engineering team's public site should be like our code: simple, readable, easy to deploy. Zero server-side, zero cookies, deployed to the CDN edge.

astrocloudflarearchitecture

An engineering team’s public site should be like our code: simple, readable, easy to deploy.

TL;DR

starmerx.io is a purely static site. Built with Astro, hosted on Cloudflare Pages—zero server-side, zero cookies.

Why? Because:

  1. We’re not building a product, we’re building a shop window.
  2. Static = cheapest, fastest, easiest to maintain.
  3. We write thousands of lines of business code daily; our spare time shouldn’t be eaten by site operations.

What we didn’t do

  • ❌ No database
  • ❌ No API
  • ❌ No cookie consent banner
  • ❌ No comment system
  • ❌ No Google Analytics (Cloudflare Web Analytics is cookieless and far more compliance-friendly)

What we did

pnpm install
pnpm dev       # local preview
pnpm build     # output to dist/
# → Cloudflare Pages automatically builds from git

The entire publishing pipeline is two steps: write MDX, git push. CI runs astro build automatically and ships to the edge.

Why Astro, not Next

  • Zero JS by default (most pages don’t need interactivity)
  • MDX is first-class
  • Content Collections + Zod schema auto-validate frontmatter
  • Fast builds (hundreds of pages in hundreds of milliseconds)

We’ve written internal admin tools with Next, where RSC / Server Actions fit nicely. But for a public-facing, content-driven site, Astro is the obvious right choice.

A counterintuitive point

“What about interactivity on a static site?”

Add JS. Astro’s client:* directives let you slot in React/Vue/Svelte/preact/raw wherever you actually need it.

We only ship JS in two places:

  • Theme toggle (~30 lines)
  • Hero shader (~60 lines + GLSL)

Everything else is plain HTML + CSS.

Our public stack

LayerChoiceReason
FrameworkAstro 4Static + MDX + zero JS by default
StylingTailwindFast, constrained, easy to rip out and rewrite
DeploymentCloudflare PagesGlobal edge, generous free tier
SearchPagefindIndex built at build time, fully static
Heroogl + GLSL20KB WebGL, no LCP impact

In closing:

We like to publish the stack we use and the traps we’ve hit. This blogs/ section will keep getting updated.