
Today’s issue: The holy grail for user-less apps, out-of-order streams, and ShadCN names another library after themselves.
Welcome to #518.


"I make meats now. I'm the meat chef."
You’d think having unlimited data, compute, and money to poach all the best AI talent in the world would make Meta the de facto leader in AI, but things haven’t gone exactly to plan. However, with this week’s release of Muse Spark 1.3, it feels like they’ve finally turned the corner.
Apparently all they needed to do to turn things around was turn Facebook into a sweatshop into a manual data-labeling factory, and the model started climbing the benchmark leaderboards. As of now, Muse Spark is a frontier-level model and might be the strongest open-weight model on the market.
Here’s a quick review of what Spark can do, how much it costs, and whether it’s worth using.
Capabilities: The main focus of Muse Spark 1.3 was agentic workflows. The model is now capable of handling more open-ended prompts and working on tasks for long periods of time. Meta also released a real-time voice transcription model based on Spark 1.3.
Cost: 1.3 comes with a new approach to pricing. Meta now offers “contributor” pricing, which basically lets them train models on your data for one-tenth the cost. The contributor tier is $0.20/mtok versus their standard pricing of $4.25/mtok, making both options significantly cheaper than Sol or Fable.
Speed: Spark 1.3 is 2x faster than Sol and 2–3x faster than Fable. This makes it a fairly ideal model for doing things like CI code review, where you want a balance of accuracy, speed, and cost.
Bottom line: Welp… OpenAI released GPT-6 while I was writing this (fml), which means the goalposts have moved again. But at least ‘Zander and Zuck got to spend a few days at the frontier, and all it cost was the souls of 5,000 developers.


Developers when they finally ship a huge PR
Most developers are discouraged from creating large pull requests because they’re hard to review. But now that we have long-running agents capable of making large-scale changes, we need to rethink this a little bit.
That’s why CodeRabbit’s Change Stack is such an important tool. It enables you, as a developer, to truly understand the code your agent is generating by:
Raise the quality bar. Lower the review burden.
Get started with CodeRabbit today.

Need Google Maps, Amazon, TikTok, or LinkedIn data? Someone already built the tool your agent keeps reinventing. It’s on Apify, and they maintain it so you don’t have to. Get $25 in free credits with code BYTES.
function deepClone(obj) {
if (obj === null || typeof obj !== "object") {
return obj;
}
const copy = Array.isArray(obj) ? [] : {};
for (const key in obj) {
copy[key] = deepClone(obj[key]);
}
return copy;
}
const objA = { value: 1 };
const objB = { a: objA };
objA.b = objB;
const clonedObj = deepClone(objA);

Charlie Deets wrote a post titled “Speed”, which is about the future of computing and not my favorite movie from 1994.
Lea Verou continues her war on dark mode toggles in her latest post.
Can AI agents actually build a production-ready database? Turso and Convex team up to find out in their latest video podcast. [sponsored]
Dan Robinson is dreaming of a self-driving codebase that automatically debugs and fixes your issues—or, as I like to refer to it, the holy grail for apps that have no users.
HTML now supports declarative out-of-order streaming.
Rslib, the Rust-based “library development tool,” just hit 1.0. I don’t know about you, but I’ve always wanted to use Rust to generate federated modules.
Your agents have been coding blindfolded. Expo Simulators gives them sight—a cloud simulator where they can run tests on your app and set up PRs. Oh, and it’s completely platform-agnostic. Join the waitlist [sponsored]
ShadCN created cn, a drop-in replacement for classnames that is 30x faster and supports merge conflict resolution. Is this the developer equivalent of naming your son Junior?
Google released Gemini 3.8 Flash and 3.8 Flash Cyber.
Agents are writing more of your code, and that’s fine — the trouble is your release process still moves at human speed. LaunchDarkly’s CodeControl enables teams to roll changes out gradually and helps automatically revert issues in production. [sponsored]
Anton Sten wrote about how the whole point of a design system is fewer decisions.
Astro 7.3 lets you run multiple preview servers at once and improves their Cloudflare bindings. Gotta keep the new boss happy.
The bug is that the deepClone function does not handle circular references. When objA is cloned, objB is cloned as well, which in turn clones objA again, and so on. This results in an infinite loop. To fix this, you can keep track of the objects that have already been cloned using a Map, and check if an object has already been cloned before cloning it again.
function deepClone(obj, map = new Map()) {
if (obj === null || typeof obj !== "object") {
return obj;
}
if (map.has(obj)) {
return map.get(obj);
}
const copy = Array.isArray(obj) ? [] : {};
map.set(obj, copy);
for (const key in obj) {
copy[key] = deepClone(obj[key], map);
}
return copy;
}
const objA = { value: 1 };
const objB = { a: objA };
objA.b = objB;
const clonedObj = deepClone(objA);