---
title: "How GitHub keeps its new homepage fast"
publication: "JavaScript Weekly"
issue: 524
published_at: "2021-02-05"
canonical_url: "https://javascriptweekly.com/issues/524"
---

Plus npm 7, V8 8.9, and is the Oracle Database a new venue for JavaScript development? |        

#524 — February 5, 2021 

[Unsubscribe](https://javascriptweekly.com/leave/*|UID|*)|[Read on the Web](https://javascriptweekly.com/issues/524)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/vhrunmk6bbyjrsk7hnpg.jpg)](https://github.blog/2021-01-29-making-githubs-new-homepage-fast-and-performant/)  

[Making GitHub’s New Homepage Fast and Performant](https://github.blog/2021-01-29-making-githubs-new-homepage-fast-and-performant/) — If you’re not logged in, GitHub’s new homepage is essentially a laundry list of GitHub’s features (with screenshots, videos, etc.) coupled with a live updating 3D globe of GitHub activity. This is a _lot_ for a browser to handle at once, so they’ve had to do a lot of work to keep it fast. 

Tobias Ahlin (GitHub)   

💡 [Don't Use Functions As Callbacks Unless They're Designed for It](https://jakearchibald.com/2021/function-callback-risks/) — A clever and nuanced point here. Callbacks can introduce added hidden complexity that can cause seemingly innocent code to break so it pays to be careful. 

Jake Archibald   [![\](https://copm.s3.amazonaws.com/df114740.jpg)](http://launchdarkly.com/?utm_source=cooperpress&utm_medium=display&utm_campaign=q4-cooperpress) 

[Fast, Reliable Feature Management for the Modern Enterprise](http://launchdarkly.com/?utm_source=cooperpress&utm_medium=display&utm_campaign=q4-cooperpress) — LaunchDarkly is a feature management platform that empowers teams to safely deliver & control software through feature flags. By separating code deployments from feature releases, we enable you to deploy faster, reduce risk, and iterate continuously. 

LaunchDarkly sponsor   

[npm 7 Now Generally Available](https://github.blog/2021-02-02-npm-7-is-now-generally-available/) — It’s been in beta for some time but npm 7 is now ready for the big time. The new features and changes (which are mostly minor) were covered in last year’s [presenting npm 7.0.0 post](https://github.blog/2020-10-13-presenting-v7-0-0-of-the-npm-cli/) but include [workspaces](https://github.com/npm/rfcs/blob/latest/implemented/0026-workspaces.md), [automatically installing peer dependencies](https://github.com/npm/rfcs/blob/latest/implemented/0025-install-peer-deps.md) and an improved package lock file format. 

Brian Douglas   

[The V8 v8.9 Branch](https://v8.dev/blog/v8-release-89) — The latest branch of the V8 JavaScript engine has been created and will be in beta until Chrome 89’s eventual release. It’s a relatively small update, but top-level `await` comes to browser use cases and function calls with mismatched argument sizes will get a lot faster. 

Ingvar Stepanyan     

Quick Bits 

- [Homebrew 3.0 is out](https://brew.sh/2021/02/05/homebrew-3.0.0/) with Apple Silicon support.
- There's [a new VS Code release](https://code.visualstudio.com/updates/v1_53) which lets you debug Node.js worker threads and also adds conditional exception breakpoints to the JS debugger.
- AWS Amplify has added [support for Vue 3.](https://aws.amazon.com/blogs/mobile/amplify-javascript-releases-support-for-vue-3/)
- If you happen to have the 'Clubhouse' social audio app _and_ you're quick enough, several well known JavaScript developers are getting together for a 'JavaScript Friday' chat at 10am PT (6pm GMT) today. [More info here.](https://www.joinclubhouse.com/event/Mw2qwz6Y)  

💻 Jobs  

[Full-Stack Web Engineer](https://www.runtastic.com/career/job/?job=385233&no-cache=1) — As part of adidas, we engage millions of users each day - through our apps and on the web. Join our Web Team and support the maintenance of our [website](https://www.runtastic.com/) and tools to provide the best user experience. 

Runtastic   

[JavaScript Developer at X-Team (Remote)](https://x-team.com/remote-javascript-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=js) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more. 

X-Team   

[Find a Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 

Hired  

📖 Articles, Opinion & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/vihpg87c11tbktjkzq28.jpg)](https://www.youtube.com/watch?v=LnRCX074VfA)  

▶[Using Vue 3 with Electron to Build a Desktop App](https://www.youtube.com/watch?v=LnRCX074VfA) — A tightly edited 10-minute screencast that shows off the key parts in making a local file explorer with Vue and Electron without plodding through every single line of code. 

Coding with Justin   

[How JavaScript Can Now Be Executed in Oracle Database](https://medium.com/graalvm/mle-executing-javascript-in-oracle-database-c545feb1a010) — As of [version 21c](https://blogs.oracle.com/database/introducing-oracle-database-21c), released last month, Oracle Database can now execute JavaScript, powered by GraalVM. This post digs into the technicalities of how it works. 

Alina Yurenko (Oracle)   

[Access your Database from React Server Components with Ease](https://www.prisma.io/react-server-components) — Query data from MySQL, PostgreSQL DBs in React Server Components with Prisma, a better ORM for JavaScript & TypeScript. 

Prisma sponsor   

[Dynamic Static Typing in TypeScript](https://www.smashingmagazine.com/2021/01/dynamic-static-typing-typescript/) — A look at some of TypeScript’s more advanced features including union types, conditional types, template literal types, and generics. 

Stefan Baumgartner   

▶[Discussing Next Gen Bundlers with Jason Miller and Fred Schott](https://shoptalkshow.com/448/) — A podcast chat with the maintainers of Snowpack and WMR about bundling and how ES Modules change the game for modern JavaScript development. Educational! 

The ShopTalk Show podcast   

▶[What Is Gatsby.js, and Why Is It a Big Deal?](https://www.youtube.com/watch?v=2n4Feb3n46Q) — If you’re interested in Gatsby, this is a good interview with Gatsby engineer Max Stoiber. 

Prismic   

[Buildkite Helps You Deliver Software Quickly and Securely at Any Scale](http://buildkite.com?utm_campaign=CPress&utm_source=ppc&utm_medium=cp-javascript&utm_term=secure-cicd&utm_content=continuous-integration) 

Buildkite sponsor   

[Using the Web Serial API with RxJS for Two-Way Reactive Communication with Serial Hardware](https://tane.dev/2021/01/web-serial-api-with-rxjs-two-way-reactive-communication-between-browser-and-serial-hardware/) 
Tane Piper   

[Lazy Loading Routes in Vue with webpack Dynamic Comments](https://css-tricks.com/lazy-load-routes-in-vue-with-webpack-dynamic-comments/) 
Jorge Baumann   

[HTML Form Validation in Cypress](https://glebbahmutov.com/blog/form-validation-in-cypress/) 
Gleb Bahmutov   

[Building Server-Side Rendering for React Apps on AWS Lambda](https://aws.amazon.com/blogs/compute/building-server-side-rendering-for-react-in-aws-lambda/) 
Roman Boiko     

🛠 Code & Tools      

[Vuex 4.0 Released: State Management Mechanism for Vue 3 Apps](https://next.vuex.vuejs.org/) — Vuex now supports Vue 3 in its new 4.0 incarnation. Here’s the [full 4.0 release notes](https://github.com/vuejs/vuex/releases/tag/v4.0.0). 

Vuex Community   

[autoComplete.js 8.3: A Simple Pure Vanilla Auto Completion Library](https://github.com/TarekRaafat/autoComplete.js) — Vanilla JavaScript, no dependencies, and there’s [a live demo here](https://tarekraafat.github.io/autoComplete.js/demo/). 

Tarek Raafat   

[Wallaby’s Test Profiler Helped Us Make Jest Tests Run 5x Faster](https://wallabyjs.com/docs/intro/test-profiler.html?utm_source=cooperpress&utm_campaign=javascriptweekly&utm_content=javascript) — Wallaby’s Test Profiler allows you to quickly record a test’s CPU usage profile to analyze its runtime performance. 

Wallaby.js sponsor   

[eslint-config-auto: Automatically Configure ESLint Based on Project Dependencies](https://github.com/davidjbradshaw/eslint-config-auto) — _“Having got fed up of maintaining eslint configs on a range of projects, I’ve put together a meta config that inspects the dependencies listed package.json and then automatically configures itself with the most appropriate plugins..”_ 

David J. Bradshaw   

[redaxios: The Axios API, as an 800 Byte Fetch Wrapper](https://github.com/developit/redaxios) — If you love the Axios API but want it using the Fetch API behind the scenes.. 

Jason Miller   

[v8go: Execute JavaScript from Go(lang)](https://github.com/rogchap/v8go) — Lets you create V8 contexts and run code `eval`-style. If you happen to be a Go developer, check out [our Go newsletter](https://golangweekly.com/) too :-) 

Roger Chapman   

[Five React Native Libraries You Might Have Missed](https://t.co/DaQJmcRYsD?amp=1) — Some useful React Native libraries to be sure to check out for your next mobile app project. 

Fabian Lee   

[react-ultimate-resume: Your 21st Century Resume](https://github.com/welovedevs/react-ultimate-resume) — This is novel: a library which enables you to create an online resume to help you stand out from the crowd. Built _by_ developers _for_ developers with an eye on what tech recruiters allegedly want. 

WeLoveDevs     

**🆕 Quick releases:** 

- [Node 15.8.0](https://nodejs.org/en/blog/release/v15.8.0/)
- [Karma 6.1](https://github.com/karma-runner/karma) — Test runner.
- [Highcharts 9.0](https://github.com/highcharts/highcharts) — Popular charting framework.
- [Cypress 6.4.0](https://github.com/cypress-io/cypress/releases/tag/v6.4.0) — Testing system.
- [json5 2.2](https://github.com/json5/json5) — Humanistic JSON superset.          

Published by [Cooperpress](https://cooperpress.com/) and edited by [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
