Highlights from JSConf

I was lucky enough to be given the opportunity to speak at and attend the newly resurrected JSConf US conference. For the uninitiated JSConf is one of the leading conferences all about Javascript (my favorite weird kitchen-sink of a language).

Speaking was anxiety inducing, and it didn’t help that my talk was near the end of the conference! Still, it was 100% worth it. I spoke about a side project I’ve been working on regarding hardware integrations and music visualizations in the browser. If you’re interested check out the project (or take a look at some of the code examples).

Still, this post isn’t just about me - there were a lot of great talks that I saw while I was attending. There were two tracks and it was just me so I missed half of the conference, but thankfully JSConf will be releasing videos of the talks sometime in the future.

So then, while this in no way covers everything here is a very brief list of highlights for me from JSConf:

  • Amir Rustamzadeh showed off a very slick Selenium-killer with cypress.io - Free for open source projects. Our team stopped selenium testing as it wasn’t as consistent and reliable as we had hoped. I’d like to give cypress a try and potentially start end-to-end testing again.
  • Laurie Voss from npm had some npm tips. The big one was using ‘npm audit’, which will check your node_modules for any compromised packages (and ‘npm audit fix’ can upgrade these packages for you). Their data shows a large number of projects are out there using packages with known critical vulnerabilities.
  • Another tip: Using npm ci instead of npm install when testing a JS app with continuous integration can be twice as fast.
  • urn Rust code into WebAssembly with the Hello WASM Pack
  • Kristofer Baxter and Malte Ubl have been working on a wild project which moves DOM manipulation off the main thread and into a web worker. It’s called WorkerDOM and it seems to provide a pretty significant performance boost, however it’s still a work in progress.
  • Speaking of web workers, what about offloading a redux store to run in a web worker? Check out stockroom!
  • What about a simpler way to work with Web Workers? Check out clooney.
  • Scrolling on mobile can be janky but if you don’t need to call preventDefault you can make it way smoother with the passive parameter: ‘addEventListener(‘touchstart’, handler, {passive:true})’. Check out this comparison to see the difference.
  • Something to look for on the horizon: Feature Policy.
  • Miriam Suzanne gave an amazing presentation on what we can do now with CSS variables and grids. Variables allow you to create SASS-like methods like ‘darken’ as well as generate graphics - You can see an awesome example of that here. You can also check out the whole presentation.
  • Need to modify the < head > of a React app? Try react-helmet!
  • Matt Claypotch (or simply potch) from Mozilla gave a cool talk about all the work they’ve done on cross-browser browser extensions. The tl;dr is that Firefox extensions now work pretty much like Chrome extensions.

Lots of inspiration - if you weren’t able to go hopefully some of the notes above could help you in a project or two. With any luck I’ll be back again next year!

This post was written by Zachary Berry