Nine posts. One request.
The previous post argued that most of what people put in a global store was never client state — it was server data, or URL state, or form values, all miscategorised.
Post 3 established a fact in passing that's worth picking back up: useEffect does not run during the SSR pass. Your client component executes on the server, produces markup, and its effects never fire.
This series has spent several posts taking things away from the browser.
Functions can't cross the boundary. Not because React is fussy, but because the two sides never share a scope — there's no lexical environment on the client for a server closure to be captured from. Props go into a text payload. A function isn't text.
One question before we start.
A module path, a chunk, an export name. That's bundler output — the bundler assigned the ID and decided which file the module lives in.
Here's a test. Take this component:
Here’s a question I sat with for longer than I should have: if React’s Virtual DOM is supposed to make things faster, why does a complex React app sometimes feel slower than a simple jQuery one?
Rendering patterns are one of those topics where everyone nods along in standup and then quietly Googles “SSR vs SSG” for the fourth time that week.
Sam Goodwin introduces Alchemy, a modern infrastructure-as-code tool built with Effect that challenges the tech debt of current solutions.
How portable is "use server" anyway?
Stable products still need maintenance. Defaults and shiny features quietly tax systems over time, and efficiency is a sign of craftsmanship, not penny-pinching.
Stable products still need maintenance. Defaults and shiny features quietly tax systems over time, and efficiency is a sign of craftsmanship, not penny-pinching.
Next.js Link prefetching quietly burned through 15 GB of bandwidth on my Vercel-hosted blog. Here's how I fixed it.
Next.js Link prefetching quietly burned through 15 GB of bandwidth on my Vercel-hosted blog. Here's how I fixed it.
Francois Best explains how Nuqs solves React URL state management challenges with elegant serialization and router adapter solutions.
Implementing a generator for llms.txt files to help AI models better understand and reference blog content
NextJS 15 made sync APIs async to force component coloring for SSR boundaries. Here's why.
Learn how I write and publish content on my Next.js site using Markdown and MDX, and a custom content creation workflow.
Learn how I write and publish content on my Next.js site using Markdown and MDX, and a custom content creation workflow.
A step-by-step guide on how to add RSS, Atom, and JSON feeds to a Next.js static blog using the Feed package
How to set up GitHub Actions workflows that intelligently handle content vs code changes, with automatic PR creation and selective deployments
Updated NextJS App deployed to App Runner with SSR and GitHub Actions
Hello! This is another article about next.js. And finally, about the new version! Each release is a set of new, interesting, and controversial features. This version will be no exception. However, new version is interesting not so much for its new functionality, but for the change in priorities and organization in next.js. And yes, as you may have guessed from the title, a significant part of this release is valuable for reflecting on previous mistakes.
I dive into the data from my PostHog AB Test and show you how to interpret the results.
I dive into the data from my PostHog AB Test and show you how to interpret the results.
NextJS App deployed to App Runner with GitHub Actions
I tackle a significant drop in my newsletter subscribers. Join me as I dive into the data using PostHog, identify and fix critical errors, and ultimately switch from ConvertKit to Resend.
I tackle a significant drop in my newsletter subscribers. Join me as I dive into the data using PostHog, identify and fix critical errors, and ultimately switch from ConvertKit to Resend.
In part two of my product analytics journey, I tackle a subscriber drop, dive into PostHog data, fix key errors, and switch from ConvertKit to the developer-friendly Resend.
In part two of my product analytics journey, I tackle a subscriber drop, dive into PostHog data, fix key errors, and switch from ConvertKit to the developer-friendly Resend.
This video dives into the process I used to diagnose and debug a conversion problem on my personal website using Posthog, a powerful product analytics tool.
This video dives into the process I used to diagnose and debug a conversion problem on my personal website using Posthog, a powerful product analytics tool.
Deploy a NextJS Application to AWS App Runner using CDK
Canonical tags are a powerful tool to help search engines understand which version of a page is the original one. This can help you avoid duplicate content issues and ensure that your content gets the credit it deserves.
Canonical tags are a powerful tool to help search engines understand which version of a page is the original one. This can help you avoid duplicate content issues and ensure that your content gets the credit it deserves.
class-variance-authorityってなに?
開発中にモックサーバーを立ち上げたかったので方法を調べてみた。
Structured Data can be added to your site tell Google and other search engines what type of content is on each page using a metadata format called JSON-LD.
Structured Data can be added to your site tell Google and other search engines what type of content is on each page using a metadata format called JSON-LD.
A YouTube live coding stream, learning to build content-driven sites with the Astro Web Framework.
A YouTube live coding stream, learning to build content-driven sites with the Astro Web Framework.
I hear from a lot of devs that they don't know where to start with SEO. Here are 3 tiny tips about to get you started.
I hear from a lot of devs that they don't know where to start with SEO. Here are 3 tiny tips about to get you started.
Obsidian as CMS: Using YAML frontmatter and GitHub's GraphQL API to create a free, flexible publishing system for markdown content that.