![]() This week, we’re experimenting with our runtime features, learning about The Edge™️, and (hopefully) avoiding accidental tax fraud. Welcome to #97.
Some experiments pay off Node gets experimentalNode 18 was released last week, and it celebrated becoming a legal adult by doing what lots of us did on our 18th birthday: All of the big new features in Node 18 come with that spooky 🔬 Experiment #1: global 🔬 Experiment #2: Test runner module — This new, built-in test runner lets you create and run Node tests without a third-party library. This is great news for smaller libraries looking to minimize dependencies and developers who just want to use Jest less (so, everyone). 🔬 Experiment #3: Web Streams API — This implementation of 17 different APIs is a lot. But the idea is that it allows you to use JavaScript to programmatically access streams of data and process them in a bunch of different ways. The bottom line: We’re just happy to see Node being so productive despite the abandonment issues they must have been dealing with ever since
Building notifications from scratch. [sponsored] Courier’s new API saved me from my PMYou know that one person on your team who loves building complex notification systems? Of course you don’t. That’s because notifications have become a special kind of hell with tons of different platforms to worry about — email, SMS, chat, web and mobile push, Slack and more. That’s what makes Courier’s simple API so powerful. It’s a one-stop shop for all notification platforms — so you can use the same API call to send your users an email, an SMS, a Slack message, or a push notification. And their new Courier Elemental update gives you a JSON-based syntax to easily customize the design and content for each platform you send messages to. This makes designing the actual notifications a lot less tedious, and it lets you create more dynamic notifications like magic login links and location based alerts. So tell your PM to go as crazy as they want with notifications, because Courier’s got your back. Check it out and get 10,000 free sends a month.
My innie trying to figure out wtf “the edge” is Netlify and Deno are teaming up at The Edge™️Netlify and Deno just announced that they’re partnering to deliver Edge Functions — a new serverless compute offering. Given that developers reference the “the edge” more than my mother-in-law’s flat earth Facebook group, we should probably address what the big deal is. “The Edge”, otherwise known as a spicy Content Delivery Network (CDN), has been around for a while. CDNs provide the infrastructure to cache static content and deliver it from the closest server to the end user. Cloudflare changed the game when they released Workers in 2017, making it possible to run JavaScript at the edge. Since then, hosting providers have been aggressively pursuing their own “edge compute” offerings. Like Workers, Deno & Netlify’s new offering is built on top of the V8 JavaScript engine and has a similar API to service workers in the browser. Here are some of the highlights:
The Bottom Line: It’s hard to be more stoked about “the Edge” than I was in high school (closet U2 fan - terrible decision), but with companies like Cloudflare, Deno, and the rest of the homies working on it, “the Edge” definitely seems like the next big thing. JobsSynapse Studios is looking for Senior JavaScript Engineers in the USSynapse is a software consultancy (Node/React) with a focus on engineering excellence and tightly knit, low-ego teams. We believe devs want to feel productive, challenged, and supported and build our culture around those concepts. Come join our growing crew as we solve interesting challenges in healthcare, fitness, IoT, retail and more, for a variety of clients, at scale. 🔬 Spot the Bug — Sponsored by PostHogPostHog is an open-source product analytics suite you can self-host. Heatmaps, Recordings, Funnels and more — all in a platform where you can build your own TypeScript plugins!
Cool Bits
🔬 Spot the Bug — Sponsored by PostHogThe
The nullish coalescing operator works because it returns its right-hand side operand when its left-hand side operand is |