Today’s issue: The Universal Studios tour on bun install
, deterministic dating apps, and 1,600 calories of TanStack.
Welcome to #423.
When you finally free yourself from node_modules
On Wednesday, Deno stans got some good news and some bad news.
You can’t win ‘em all – but hey, at least we’ve got permissions in our deno.json
config files now. This lets you define named permission sets once and reuse them everywhere, instead of repeatedly typing out --allow-read --allow-env --allow-run
flags like a caveman. Here’s what it looks like:
{
"permissions": {
"process-data": {
"read": ["./data"],
"write": ["./data"]
}
},
"tasks": {
"dev": "deno run -P=process-data main.ts"
}
}
That’s definitely the biggest feature in this release, but they also shipped a few more cool updates:
HTML entrypoints in deno bundle
– You can now point at an index.html
and Deno will scoop up all your scripts and styles then spit out a new build that’s ready to ship.
Testing hooks – Deno finally added beforeAll
, afterEach
, and friends to Deno.test
, so you don’t have to copy-paste the same setup/teardown code across every test file.
Permissions audit log – They added a new DENO_AUDIT_PERMISSIONS
env var that can generate a JSON trail for every file, env var, or socket your app touches. Helpful for debugging and/or shaming your coworkers.
Bottom Line: Deno’s early idealism around being “ESM only/secure by default/TS-first” is shifting towards a more pragmatic focus on things like smoother DX and stronger Node compatibility. Yes that’s a little more boring, but it’s an important part of growing up.
![]() ![]() ![]() ![]() |
Watching your team wait around for two hours before they can deploy
AI-powered QA tools are popping up everywhere, but how do you choose the right one for your team?
That’s why QA Wolf is hosting a workshop specifically for engineering leaders on How to choose the best AI tools for your dev team.
Their Staff Engineering Lead, Yurij Mikhalevich will share:
Sign up for the workshop here – or get your own personalized QA Wolf demo to see how they’ve helped hundreds of teams increase their release cadence by 5x.
It now lets you view logs in context, so you can see them in the same view as errors and performance to easily figure out what happened and why, without having to switch tools.
Nested loops aren’t ideal, but sometimes they’re unavoidable. Given the nested loop below, how can we break out of the nested loop when j === 2
?
function loop () {
for (let i = 0; i < 4; i++) {
for (let j = 0; j < 4; j++) {
if (j === 2) {
// Break out here
}
}
}
}
Right on cue, a new, Rust-based JavaScript runtime named Andromeda just launched. We can’t prove that Old Larry and the Big O funded this project, but we also can’t not prove it.
Adam Argyle compiled a list of 100+ new CSS features that have come out in the past five years. And no, you can’t use any notes on the final, so get studying.
CodeRabbit created a free VS Code extension that gives you advanced-level AI code reviews right in your editor. It understands the context of your whole codebase and gives you line-by-line feedback with one-click fix suggestions you can implement instantly. [sponsored]
Mediabunny is a JavaScript library for reading, writing, and converting video and audio files directly in the browser.
Lydia Hallie wrote this in-depth article that takes you behind the scenes of bun install
. Not quite as cool as Universal Studios’ behind-the-scenes tour of Backdraft, but it probably won’t inspire thousands of 10-year-old boys to become pyromaniacs. So, tradeoffs.
Matt Perry wrote a new Motion x Tailwind CSS guide on how to use two of the best frontend libraries of all time together.
G2i connects you with pre-vetted contract and full-time developers – so you can get top talent with 5+ years of experience across any major tech stack, without having to go through endless piles of AI-slop resumes. They’ve helped teams at Meta, Microsoft, 1Password, and more to hire developers faster and with full transparency through recorded technical interviews. And they’ve got 8,000 devs ready to go. [sponsored]
Maxi Ferreira created this interactive guide to TanStack DB – which still sounds like the name of a 1,600-calorie breakfast combo at IHOP.
Tom MacWright (Val Town CTO/co-founder) wrote about how to keep package.json
under control.
Clerk just introduced free trials for subscriptions, which lets you use Clerk Billing to easily enable free trials for any type of subscription tier on your application – with best practices built in. [sponsored]
Nico Albanese gave a great talk on building an AI agent in 10 mins with AI SDK 5.
Horace He wrote this in-depth article on defeating nondeterminism in LLM inference. After that, he plans to move on to defeating nondeterminism in romantic relationships so we can all just save each other a lot of time.
It’s rarely used, but in JavaScript you can use a labeled statement to add a label to a for loop. This then allows you to break
and interrupt the loop when needed – even from inside another loop.
function loop () {
dance:
for (let i = 0; i < 4; i++) {
for (let j = 0; j < 4; j++) {
if (j === 2) {
break dance;
}
}
}
}