---
title: "How Googlebot runs JavaScript, a new JS platform for HTTP services, and some JavaScript podcasts"
publication: "JavaScript Weekly"
issue: 446
published_at: "2019-07-19"
canonical_url: "https://javascriptweekly.com/issues/446"
---

This week's JavaScript news       

#446 — July 19, 2019 

[Read on the Web](https://javascriptweekly.com/issues/446)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1563558864/cswjxbqfdejg7lurzymi.png)](https://smashtest.io/)  

[Smashtest: A Language for Describing Test Cases](https://smashtest.io/) — 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. 

Smashtest   

[Introducing Osgood: A New V8-Based Platform for Building HTTP Servers](https://dev.to/tlhunter/introducing-osgood-4k1m) — 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.](https://github.com/IntrinsicLabs/osgood) 

Thomas Hunter II   [![\](https://copm.s3.amazonaws.com/42783ef4.png)](https://circleci.com/blog/triggering-trusted-ci-jobs-on-untrusted-forks/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=jul19&utm_content=javascript-weekly) 

[Triggering Trusted CI Jobs on Untrusted Forks](https://circleci.com/blog/triggering-trusted-ci-jobs-on-untrusted-forks/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=jul19&utm_content=javascript-weekly) — 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!](https://www.youtube.com/watch?v=_yt89v0S1MA) — 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](https://quarkjs.io/) — 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](https://developers.google.com/search/docs/guides/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](https://syntax.fm/show/162/the-fundamentals-js) — Wes Bos (of [JavaScript 30](https://javascript30.com/) fame) and Scott Tolinski discuss the fundamentals of JS and what you _really_ must know. 

Syntax.fm   

▶[How Christian Heilmann Got into JavaScript](https://devchat.tv/my-javascript-story/mjs-114-christian-heilmann/) — _My 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](https://devchat.tv/my-javascript-story/) to enjoy. 

My JavaScript Story   

▶[The Benefits and Challenges of Server-Side Rendering (SSR)](https://devchat.tv/js-jabber/jsj-371-the-benefits-and-challenges-of-server-side-rendering-ssr-with-dan-shappir/) — An hour-long round table discussion featuring Dan Shappir, performance tech lead at Wix. 

JavaScript Jabber   

▶[Discussing Managing Your `npm` Dependencies with Jan Lehnardt](https://realtalkjavascript.simplecast.fm/3d0e3510) 

Real Talk JavaScript     

💻 Jobs  

[Frontend Engineer at Goodreads (Amazon)](https://www.goodreads.com/jobs?id=750680) — Join Goodreads to build the frontend of a highly ambitious product that supports reading activities of more than 80 million readers. 

Goodreads   

[Front End Engineer / TrackVia (Denver, CO)](https://hire.withgoogle.com/public/jobs/trackviacom/view/P_AAAAAADAAAFBS0sG9krI2d) — TrackVia powers drag-n-drop creation of sophisticated enterprise apps. Join our fun & fast-pace team in beautiful downtown Denver. 

TrackVia   

[Land a New Dev Job on Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-javascriptweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77584) — Vettery specializes in tech roles and is completely free for job seekers. 

Vettery  

📘 Tutorials, Opinions, and Videos 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1563559512/kfqmujky1j616msyxu9y.png)](https://t.co/UTSyqhll4o)  

[Tetris Turns 35, so Let's Build a Tetris Clone](https://t.co/UTSyqhll4o) — A guide to what’s involved in putting together your own Tetris clone with a nifty visual twist. 

JavaScript Teacher   

[Is `postMessage` Slow?](https://dassur.ma/things/is-postmessage-slow/) — A fantastic deep dive into performance issues and concerns around `postMessage`, a method used to send messages into a Web Worker. 

Surma   

[Async Await Error Handling in JavaScript](http://thecodebarbarian.com/async-await-error-handling-in-javascript.html) — Attempts to clear up some confusion caused when handling errors in `async`/`await` scenarios. 

Valeri Karpov   

[Comprehensive Image & Video Management with Our JavaScript SDK](https://cloudinary.com/users/register/free?utm_source=javascript_weekly&utm_medium=sponsored_placement&utm_campaign=dev_sign_up&utm_content=sponsored_link&utm_keyword=july_19_2019) — 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](https://2ality.com/2019/07/private-class-fields.html) — A few weeks ago Axel covered [public class fields](https://2ality.com/2019/07/public-class-fields.html), but private fields are part of [the proposal too](https://github.com/tc39/proposal-class-fields) (currently [at stage 3](https://github.com/tc39/proposals#stage-3)). 

Dr. Axel Rauschmayer   

[A 'Falling Sand'-Style Image Transition Effect in 16 Lines of JS](http://slicker.me/javascript/image_transition_effect.htm) — This is a lot neater than I was expecting. 

Slicker   

[Reverse Engineering, or How YOU Can Build a Testing Library in JavaScript](https://dev.to/itnext/reverse-engineering-how-you-can-build-a-test-library-53e3) — 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](https://css-tricks.com/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](https://blog.logrocket.com/node-js-12/) — 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)](https://dev.to/angular/angular-architecture-patterns-and-best-practices-that-help-to-scale-507m) 

Bartosz Pietrucha   

[Web Unleashed - The Front-End Developer Event in Toronto, Sept 13-14](https://fitc.ca/event/webu19/?utm_source=JSW) — 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](https://freshman.tech/svelte-todo/) — 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 Monoculture](http://mikepennisi.com/blog/2019/the-web-cant-survive-a-monoculture/) — _You_ have the power to prevent the Web becoming a Chrome-dominated monoculture, says Mike. 

Mike Pennisi  

🔧 Code and Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1563552844/xpijri4uqku9jsgthnn7.png)](https://lokeshdhakar.com/projects/color-thief/)  

[Color Thief: Grab Color Palettes from Images](https://lokeshdhakar.com/projects/color-thief/) — Given an image, this uses `canvas` to return a list of the dominant colors. 

Lokesh Dhakar   

[Polly.js: Record, Replay, and Stub HTTP Interactions](https://netflix.github.io/pollyjs/#/README) — 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](https://www.mongodb.com/cloud/atlas/lp/general/try?utm_campaign=cooperpress&utm_source=java&utm_medium=sponsored_newsletter) 

MongoDB sponsor   

[Airtable.js: A JavaScript Client for Airtable](https://github.com/Airtable/airtable.js) — 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. 

Airtable   

[SurveyJS: A JavaScript Survey and Form Library](https://github.com/surveyjs/survey-library) — Here’s [a live demo.](https://surveyjs.io/Examples/Library/) 

Devsoft Baltic OÜ   

[jest-puppeteer: Run Your Tests using Jest and Puppeteer](https://github.com/smooth-code/jest-puppeteer) 

Smooth Code     

⚡️ Quick Releases 

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

- [Ember 3.11](https://blog.emberjs.com/2019/07/15/ember-3-11-released.html) — also my favorite version of Windows, incidentally.
- [Mocha 6.2.0](https://github.com/mochajs/mocha/releases/tag/v6.2.0) — Popular testing framework.
- [Lerna 3.16.0](https://github.com/lerna/lerna/releases/tag/v3.16.0) — Tool for managing JS projects with multiple packages.
- [Johnny Five 1.2.0](https://github.com/rwaldron/johnny-five) — JS robotics and IoT framework.
- [SystemJS 4.1.0](https://github.com/systemjs/systemjs) — Dynamic ES module loader.
- [MDX 1.1](https://github.com/mdx-js/mdx) — Embed JSX inside Markdown documents.
- [melonJS 7.1](https://github.com/melonjs/melonJS) — Lightweight game engine.
- [autoComplete.js 6.1](https://github.com/TarekRaafat/autoComplete.js) — Simple, vanilla JS auto completion library.      

_**P.S.** Did you know we're on Twitter as well? Follow us [@JavaScriptDaily](https://twitter.com/javascriptdaily)_        

Curated by [Cooperpress](https://cooperpress.com/) and [Peter Cooper](https://twitter.com/peterc). 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
