You Don't Need a Form Library
HTML5 has had client-side validation for over a decade. :user-invalid, setCustomValidity(), and the novalidate pattern cover 95% of what React Hook Form does — and the last CSS gap closed in late 2023.
Critical analysis of trends, frameworks, and industry narratives in modern web development.
23 posts in this category.
HTML5 has had client-side validation for over a decade. :user-invalid, setCustomValidity(), and the novalidate pattern cover 95% of what React Hook Form does — and the last CSS gap closed in late 2023.
Five SaaS tools you can replace with a $6/month VPS and open-source software — analytics, email, monitoring, git hosting, and automation.
Performance-monitoring SaaS sells you a wrapper around a tool you already have. GitHub Actions and Lighthouse CI fail the build on regressions for free.
Google Fonts is a tracker that happens to also serve fonts. Self-hosting is faster, more private, and a one-afternoon migration in 2026.
Google Analytics is slow, GDPR-hostile, undercounted by ad blockers, and answering questions you mostly aren't asking. Here's why I removed it from every site I run, and what I use instead.
The awesome-astro list is the default entry point into the Astro ecosystem. It is also half noise. Here is what to actually install — and what to skip — sorted by what survives a year of production use.
Last week we published the case for picking Astro over Next.js on content sites. Then we migrated this blog. One PR, half a working day, and a Lighthouse Performance score of 100 from a real production deploy — here are the honest numbers and what surprised us.
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.
Most JS projects have never had their dependency list audited line by line. Doing it once — with a real method instead of vibes — usually halves the count and exposes which packages were doing nothing in the first place.
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.
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.
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.
Everyone's measuring AI by lines-per-minute. The real leverage is in architecture, debugging, and the work nobody wants to do.
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.
The App Router shipped with promises of simpler data fetching, better performance, and a cleaner mental model. Two years of production projects later — here's the honest verdict.
A perfect 100 in Lighthouse means your test environment is fast. It says almost nothing about whether real users on real networks are having a fast experience.
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.
How the most successful CMS in history became one of the web’s most exhausting platforms to maintain.