When Astro Beats Next.js for Content Sites
Next.js is the default. It's also overkill for most content sites. Astro's island model ships less JS, builds faster, and lets you keep React where you actually need it.
Exploring the modern static-first web: pre-rendering, ISR, edge rendering, and how static sites evolved beyond “just HTML.”
26 posts in this category.
Next.js is the default. It's also overkill for most content sites. Astro's island model ships less JS, builds faster, and lets you keep React where you actually need it.
S3 is the default because it's been the default. For static assets served at scale, R2's zero-egress pricing rewrites the math — and the cases where S3 still wins are smaller than people think.
Most arguments against WordPress are technical. The stronger case is financial — hosting costs, security incidents, page-speed revenue impact, and maintenance hours add up to a budget line that a static site on a CDN simply doesn't have.
Shipping a tokenizer to the browser to color code blocks made sense in 2014. It doesn't now. Build-time highlighting is faster, cheaper, and produces better-looking output — and the tradeoffs are smaller than you think.
MDX ships JSX inside Markdown and promises interactive content without leaving your post file. That's real power — when you need it. Most dev blogs don't. Here's the honest threshold.
The white-flash-on-load that ruins half the dark-mode implementations on the web is preventable in about twelve lines of code. CSS variables, a render-blocking script, and one localStorage read — that's the whole trick.
If your data changes hourly and your traffic doesn't, server-side rendering is solving the wrong problem. Fetch at build time, ship static HTML, and let the CDN do the work.
Algolia, Elastic, and Lunr earned their place when static sites couldn't search themselves. Pagefind changed that. Here's how to ship real search without a backend or a subscription.
Static-first doesn't mean static-only. Here's how to add server-side logic at the edge without giving up the performance and simplicity you chose static for.
RSS never died — it became the underlayer for Mastodon, Bluesky, AI agents, and every newsletter aggregator. Static sites can ship a feed at build time in 50 lines. Here's why you should.
Generating social card images on demand from a serverless function feels modern. It's also slow, expensive, and fragile. Static sites can pre-render every OG image at build time, cache it forever, and never pay for it again.
For a decade, smooth page transitions meant shipping a SPA router and giving up the simplicity of multi-page architecture. The View Transitions API ends that tradeoff — and it's finally supported everywhere that matters.
Git already has versioning, branching, review, collaboration, and publishing. Pair it with CI/CD and you have a content workflow more powerful than any admin panel.
The 'but my client needs a contact form' objection to static sites is five years out of date. Here's how to add forms, comments, auth, search, payments, and newsletters — with code.
Structured data, Open Graph, sitemaps, and RSS — all generated at build time, all under your control, and none of them require a plugin that phones home.
Free-tier static hosting from Render, Vercel, Cloudflare Pages, and Netlify is so capable that paying for hosting is now a choice, not a requirement.
Sharp at build time, next/image in static export, WebP/AVIF variants, blur placeholders, responsive srcset — image optimization used to be a manual chore. Now it's a build step.
Blue-green deployments, canary rollouts, instant rollbacks — the DevOps practices that keep SREs up at night are trivially simple when your output is a folder of files.
You've decided WordPress isn't worth the maintenance anymore. Here's the full migration playbook — content extraction, markdown conversion, image handling, redirects, and deployment.
You escaped WordPress. Then you locked yourself into Contentful. Here's when a headless CMS actually makes sense — and when markdown is all you need.
Most hero sections are built for client presentations, not end users. Here are five React patterns that actually convert — with code you can use today.
No database. No admin panel. No plugin updates at 2am. Just files.
Vercel is the obvious choice. Here's why you might not want it — and how to get the same result on Render with full control.
A real look at the pipeline I built to take a client intake form and turn it into a deployed website — with minimal human involvement.
The mental model most developers have for static sites is ten years out of date. Here's what they actually are now.
The two most popular ways to build small business websites are both optimizing for the wrong thing.