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.
Browsers have supported ES modules natively since 2018. Every browser you care about can read import and export without help.
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.
The original problem modules solved was not performance — it was namespace pollution.
Stuff a software engineer should know about browsers
PEAK has had its final major update. That doesn’t mean it is abandonware.
deep knowledge, and why everyone using agents is now a site reliability engineer
How the browser event loop actually works — tasks, microtasks, Web APIs — and what async/await is really doing underneath the syntax sugar. Includes the edge cases that actually break in production.
Ramble about being constrained, I guess
This book gave psychological context to many things I had already observed at work: learning needs time, performance depends on the environment, and belonging matters. Software development is social, not individual. Sustainable teams need room for learning, problem-solving and helping others instead of constantly optimizing for short-term output.
Accelerating the Security Development Lifecycle
MCP’s 2026-07-28 specification removes protocol sessions and the `Mcp-Session-Id` header, making remote MCP servers cheaper and easier to scale. This post explains the old session model, why it required infrastructure such as sticky routing and Redis, and how stateless MCP preserves application state through explicit handles.
Schema workshop: the doctor is in
freeq is an IRC server. It speaks the protocol your 1999 client speaks, and it adds one thing IRC never had: every participant holds a cryptographic key.
Dissecting Linear as a local-first app.
So when we say that an AI called a tool, what usually happened is a little more specific than that phrase suggests. Here's a deeper look into that plumbing.
I have gone through the five stages of grief with AI, after a bad first impression I started out deeply sceptical but I have come out the other side a fully-converted acolyte. Agentic coding is here to stay, it is revolutionising software development and thats a good thing.
About a year ago, I published my first app – and I may have some insights and opinions.
As so many others, I played around with OpenClaw (https://openclaw.ai/). I guess I did not find any revolutionary, but as always, I tried to sketch up how 'my' agent works. So, here we go.
On building software, vibe coding, and what happens to market prices when the barriers fall
A practical framework for building reliable AI agent workflows through harness design, state management, and end-to-end verification.
With the rise of agents, terminal emulators are quickly evolving into a lot more than just interfaces, here's a glimpse into where they're headed!
hashtags on links, MultiPasses, Explore Page, and more
With industry changes forcing us to re-evaluate what software engineering should be, the retrospection path isn't uniform or unanimous, nor should it be.
But it's also good — Musings about the last year of Roomy development, and more.
An in-depth analysis of the critical role of deterministic governance and proactive protection mechanisms, such as hooks, in ensuring the safe and reliable operation of autonomous coding agents like Claude Code and GitHub Copilot CLI.
Alem Tuzlak breaks down building TanStack Dev Tools and how TanStack AI differentiates itself in the crowded AI library landscape.
Workday's CEO called AI agent startups "parasites." Linear shipped a native AI agent that understands software development workflows. These are two ends of a spectrum, with most of the industry stuck in the middle — exposing data through MCP without embedding any intelligence. The companies that win will be the ones that make AI native to their domain workflow.
My first weeks in an accelerator cohort and what I've learned so far
Paolo Ricciuti, Svelte maintainer and TMCP creator, discusses Svelte 5's new runes system and his journey from fan to core contributor.
Redux maintainer Mark Erikson covers his journey maintaining Redux, building Redux Toolkit, and pioneering time-travel debugging at Replay.io.
Infinite Red founder Jamon Holmgren shares his coding journey, building a React Native consultancy, and creating his new game Into the Dawn.
Today, a weird malware distribution campaign targeting users of omg.lol and Triton, an open-source macOS client of omg.lol, was found. The attack leverages the trust of GitHub, creating a malicious fork where the download link has been replaced with malware hidden in presented .zip file.
Today, a weird malware distribution campaign targeting users of omg.lol and Triton, an open-source macOS client of omg.lol, was found. The attack leverages the trust of GitHub, creating a malicious fork where the download link has been replaced with malware hidden in presented .zip file.
Engineering Standards and Quality Control in the Age of AI Agents
Why "That's Not My Job" Might Be Stalling Your Career
Why I'm Switching from MIT to AGPL and from CC BY-NC to CC BY-SA after a conversation with Dr. Matt Lee about copyleft licensing and protecting free software from corporate exploitation.
If you’re maintaining an open-source library or building a community around a project, you’re eventually going to look for a place for that community to live. I’ve spent the last few years navigating this as a core maintainer of Tiptap—an open-source framework for building rich text editors.