
Today’s issue: Using TypeScript to con your local government, Bun’s unethical red shell usage, and the Mariana Trench of GPU topics.
Welcome to #450.


It's called fashion, sweetie. Look it up.
As someone who’s worn the same Bytes t-shirt and jorts to every major life event for the past four years, you could say I appreciate the simple beauty of being “unstyled.”
So I was pretty excited to see Base UI launch v1 of their unstyled React component library last week, which is built by the creators of Material UI and Radix UI.
Which leads me to my next question – How is this different from Radix UI again?
Short answer: It’s not really that different, at least today. The team wrote that “both libraries are very similar” in terms of API design, and they both provide high-quality React components that are:
Base UI does ship a few more complex components and has deeper a11y and edge-case coverage than Radix. It also has a pretty stacked team of seven full-time developers and designers actively working on it, so it should improve quickly.
So why not just continue improving Radix UI? Money and control, probably. WorkOS acquired Modulz (the company behind Radix UI) back in 2022 and now controls the project. My theory is that Base UI quietly went into development the day after someone’s non-compete finally expired.
Bottom Line: Base UI does feel a little bit like Radix UI (Taylor’s Version) right now, but I don’t think it will forever. The team is shipping fast, they’re already getting 350k weekly downloads, and shadcn just added Base UI support. 2026 should be big.


Me winning a little holiday cash from Convex
Convex just launched the ability to build reusable components – and they’re giving away thousands of dollars to developers who build the best ones before Jan 23rd.
Here’s how it works:
Start with the Convex Component Template or fork an existing component with npx create-convex@latest --component
Follow the Authoring Components docs to package functions, schemas, and persistent state into a reusable module
Submit your custom Component to the directory for review before Jan 23rd
You can build components for storage, API usage, third-party sync, analytics, and lots more. Check it out.

Get the APM insights you need, without the enterprise price tag. Built for dev teams, not Fortune 500s. Try AppSignal.
What gets logged?
const myObject = {};
const key = Symbol('key');
myObject[key] = 'this is the value for the key';
console.log(myObject[Symbol('key')]);
console.log(JSON.stringify(myObject));

Jack LaFond wrote about how he used TypeScript to obtain one of the rarest license plates in the state of Florida. It’s Florida Man in his final form.
Dan Abramov created RSC explorer to show you how the magic works under the hood. Thanks again for inventing React, Dan.
The 90-day AI Readiness Playbook is a free guide from Postman that shows exactly how engineering leaders can transform APIs into AI-ready tools that agents can discover, understand, and execute reliably. [sponsored]
Sebastian Aaltonen published a Mariana Trench-level deep dive on simplifying the way we interact with GPUs with the concept of a “No Graphics API.”
The Chrome DevTools MCP server can now directly connect with active browser sessions for live debugging.
Clerk just released their API Keys public beta, so you can easily allow your users to create API keys that delegate access to your application’s API on their behalf. [sponsored]
Kate Holterhoff created The JavaScript Bundler Grand Prix, and I must say that I was disappointed to see Jarred Sumner’s unethical use of the red shell on the final lap.
Alice Moore wrote about The AI software engineer in 2026.
Next.js 16.1 comes with an experimental bundle analyzer, easier debugging, and “transitive external dependencies” – or Big TEDs, as Tim Neutkens likes to call them.
Shopify’s Winter ‘26 Edition just dropped with 150+ new product updates and enhancements. AI is now a fundamental part of the Shopify platform, with a Dev Dashboard for Agents to build agentic commerce flows with Shopify Catalog, and checkout to enable agents to search products, and render checkouts, AI native dev platform and Shopify Catalog MCP or REST API that enable AI agents to search across billions of products. [sponsored]
Simon Willison wrote about how he ported JustHTML from Python to JavaScript in 4.5 hours using Codex CLI and GPT-5.2. It was either that or watch Wicked 1 and 2 back to back for the third time this week.
React Aria v1.14.0 shipped some shiny new docs with interactive, real-world examples and MCP server support. They also shipped Spectrum 2 v1.0 because Devon Govett is a machine that runs on G Fuel and style macros. Just like Santa.
What gets logged?
const myObject = {};
const key = Symbol('key');
myObject[key] = 'this is the value for the key';
console.log(myObject[Symbol('key')]);
console.log(JSON.stringify(myObject));
undefined - The Symbol function creates a unique value, so the Symbol used to set the value of myObject[key] is not the same as the Symbol used to get the value of myObject[key].
{} - JSON.stringify ignores Symbol properties when stringifying an object.
This is useful for creating private properties on objects that can’t be accessed or modified outside of the object. You can read more about Symbols here.