#446 — July 19, 2019

Read on the Web

JavaScript Weekly

Smashtest: A Language for Describing Test Cases — A Cucumber-esque way to write end to end tests in a more natural way but which essentially boil down to JavaScript powered tests. The examples on the homepage do a good job of selling the idea IMHO.


Introducing Osgood: A New V8-Based Platform for Building HTTP Servers — Built using Rust and the V8 JavaScript engine, Osgood is a new platform (a la Node) focused around building secure HTTP services. Security comes by demanding that I/O policies are specified rather than everything being open. GitHub repo.

Thomas Hunter II

Triggering Trusted CI Jobs on Untrusted Forks — In this post, we discuss how to use Git itself as a means for marking code as trusted and we walk through a full demonstration of how these concepts can be applied to a specific repository host (GitHub) and CI provider (CircleCI).

CircleCI sponsor

▶  JavaScript, JavaScript…. Rocks You! — A fun, musically-packed look at how to recreate the sounds of effects pedals in JavaScript to play with audio in real time via the Web Audio API.

Vitalii Bobrov

Quark: A Software 'Sketchbook' for Node, HTML and CSS Experiments — Built in Electron but currently for Windows and Linux only, Quark is a Jupyter Notebook/Glitch-esque development environment for quickly creating HTML, CSS and JavaScript-based apps, complete with access to Node’s APIs and Electron’s native features.

Nishkal Kashyap

Google Explains the JavaScript SEO Basics — Did you know that when Googlebot is crawling the Web, it runs a version of Chromium behind the scenes and actually runs your JavaScript? This means there are some things to be aware of.

Google Developers

🎧 Some recent JavaScript podcast episodes

There are several great JavaScript podcasts out there. Here are some the recent episodes we've enjoyed:

▶  The Fundamentals of JavaScript — Wes Bos (of JavaScript 30 fame) and Scott Tolinski discuss the fundamentals of JS and what you really must know.


▶  How Christian Heilmann Got into JavaScriptMy JavaScript Story is a podcast that interviews JavaScript developers about how they got into JavaScript. I particularly enjoyed Chris Heilmann’s (a popular JavaScript speaker) episode, but there are lots to enjoy.

My JavaScript Story

▶  The Benefits and Challenges of Server-Side Rendering (SSR) — An hour-long round table discussion featuring Dan Shappir, performance tech lead at Wix.

JavaScript Jabber

▶  Discussing Managing Your npm Dependencies with Jan Lehnardt

Real Talk JavaScript

💻 Jobs

Frontend Engineer at Goodreads (Amazon) — Join Goodreads to build the frontend of a highly ambitious product that supports reading activities of more than 80 million readers.


Front End Engineer / TrackVia (Denver, CO) — TrackVia powers drag-n-drop creation of sophisticated enterprise apps. Join our fun & fast-pace team in beautiful downtown Denver.


Land a New Dev Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.


📘 Tutorials, Opinions, and Videos

Tetris Turns 35, so Let's Build a Tetris Clone — A guide to what’s involved in putting together your own Tetris clone with a nifty visual twist.

JavaScript Teacher

Is postMessage Slow? — A fantastic deep dive into performance issues and concerns around postMessage, a method used to send messages into a Web Worker.


Async Await Error Handling in JavaScript — Attempts to clear up some confusion caused when handling errors in async/await scenarios.

Valeri Karpov

Comprehensive Image & Video Management with Our JavaScript SDK — Upload, manipulate, optimize, & deliver rich media with code that integrates seamlessly. Try Cloudinary for free.

Cloudinary sponsor

A Look at Private Class Fields, a Proposed JavaScript Feature — A few weeks ago Axel covered public class fields, but private fields are part of the proposal too (currently at stage 3).

Dr. Axel Rauschmayer

A 'Falling Sand'-Style Image Transition Effect in 16 Lines of JS — This is a lot neater than I was expecting.


Reverse Engineering, or How YOU Can Build a Testing Library in JavaScript — The goal here is not to add another testing library to the giant pile of existing ones, but to learn more about how they work by building your own.

Chris Noring

Finally... A Post on finally in Promises — A quick explanation of when finally will fire when using a promise.

Sarah Drasner

Node.js 12: The Future of Server-Side JavaScript — Node.js 12 introduced several exciting improvements like ES6 module support, better application security, and quicker startup times.

Paige Niedringhaus

Angular Architecture Patterns and Best Practices (That Help to Scale)

Bartosz Pietrucha

Web Unleashed - The Front-End Developer Event in Toronto, Sept 13-14 — Networking, sessions, workshops and more. Save 20% on tickets to #WEBU19 with code JAVASCRIPTWEEKLY

FITC sponsor

Learn Svelte 3 by Building a Todo List App — A practical introduction to Svelte, a build-time UI framework that’s been getting a lot of love recently.

Ayo Isaiah

The Web Can't Survive a MonocultureYou have the power to prevent the Web becoming a Chrome-dominated monoculture, says Mike.

Mike Pennisi

🔧 Code and Tools

Color Thief: Grab Color Palettes from Images — Given an image, this uses canvas to return a list of the dominant colors.

Lokesh Dhakar

Polly.js: Record, Replay, and Stub HTTP Interactions — Working with both Node and in the browser, Polly taps into HTTP APIs and adds the ability to record and replay requests plus even slow down or speed up time.

Netflix, Inc.

MongoDB Atlas is a Powerful and Reliable Cloud Database. Try Now

MongoDB sponsor

Airtable.js: A JavaScript Client for Airtable — Airtable is a popular cloud-based spreadsheet-meets-database service. We use it at Cooperpress so it’s great to see a well maintained official library.


SurveyJS: A JavaScript Survey and Form Library — Here’s a live demo.

Devsoft Baltic OÜ

jest-puppeteer: Run Your Tests using Jest and Puppeteer

Smooth Code

⚡️ Quick Releases

Popular libraries and tools with recent releases that don't need a full write-up:

P.S. Did you know we're on Twitter as well? Follow us @JavaScriptDaily