Today’s issue: Children yearning for the divs, your free-tier AI tools yearning for shell access, and Remix yearning for drama.
Welcome to #395.
The little guy inside Zod responsible for validating my data one by one
The #1 thing I look for in a friend is someone who blindly validates all of my choices no matter what.
That’s why I’m such a big fan of Zod, the TypeScript-first schema validator that just launched v4 last week. And I’m not alone – in the past two years, Zod’s weekly npm downloads have jumped by 8x to a whopping 31 million.
Why so much love? Unlike other validators, Zod lets you define schemas in TypeScript and use them to validate data at runtime. This saves you from having to maintain two separate validation layers, allowing you to just write your schema once and get both type safety and runtime checks.
And after a year of work, Zod 4 introduces a bunch of new features and improvements that make it even more powerful. Here are a few of our favorites:
Major perf upgrades – Zod 4 comes with 7x faster object parsing, 100x fewer tsc
instantiations, and a 2x smaller core bundle size than Zod 3.
Metadata – You can now add strongly-typed metadata to your schemas via a “schema registry” that associates a schema with some typed metadata.
Zod Mini sub-library – This functional variant of Zod is designed for maximum tree-shakability, which is helpful for constrained environments like edge runtimes.
Error pretty-printing – Zod now implements a top-level z.prettifyError
function for converting a ZodError
to a more user-friendly formatted string.
Bottom Line: Zod 4 is smaller, faster, more TypeScript-y than ever. And the best part is that it still just listens to me talk about my problems without ever judging me 🫶.
![]() ![]() ![]() ![]() |
When your code is so bad even AI can't understand it
Ever had to work in a crusty legacy codebase full of tangled spaghetti code? Of course you have.
It’s a huge pain for human developers – and it’s virtually impossible for AI tools to contribute without breaking a bunch of stuff.
Thankfully, Bit can help. It’s an open-source tool that lets you turn your codebase into a collection of reusable components that are each isolated, versioned, and easy for AI (and humans) to share across projects.
You can use Bit to gradually modernize legacy code and build new features in a clean, composable architecture. It also gives you AI-powered dev workspaces to build, test, and collaborate on everything from individual components to full design systems.
Explore Bit – and start building reliable, scalable applications for the AI era.
Angular v20 just dropped today. We’ll write more about it soon since Sundar was too rude to talk about it onstage during last week’s keynote.
Puter.js is a single JavaScript library that gives you serverless auth, cloud storage, LLM integration, and more – no backend, no config, and no stress required. [sponsored]
Benjamin Aster created CSS Minecraft, which is exactly as crazy as it sounds. The children yearn for the mines divs.
Remix is waking up from its nap and turning its back on React. So it’ll be extra awkward when they merge back into React Router again in 6 months.
Firefox 139 just became the first browser to support the Temporal API for working with dates and times.
Simon Willison wrote about how LLMs can run tools in your terminal with the LLM CLI. Because nothing says “trust” like giving your free-tier AI full shell access.
The Shopify team wrote about building resilient import maps to improve performance and DX.
CarbonQA handles all your QA needs, so your devs don’t have to. They work in your tools, talk with your team in Slack, and help you ship cleaner code without sacrificing velocity. [sponsored]
Docusaurus 3.8 comes with new infrastructure optimizations and a few new features as they gear up for their v4 release. The dino is evolving.
RockPack is a lightweight solution for setting up a React app with SSR, bundling, and linting. Not to be confused with a Rock Fact.