Mastering JS Weekly

Pragmatic web development. No bloatware allowed!

By subscribing, you agree with Revue’s Terms of Service and Privacy Policy and understand that Mastering JS Weekly will receive your email address.






In Defense of JavaScript's Date Class

JavaScript's `Date` class sometimes seems to be universally disliked. For many years, I reached for Moment.js the instant I needed to do anything more than store a date in the database. But now, as I've started working more with various alternatives like date…


Building a Webhook to Label GitHub Issues

Looking for Vue jobs? Want to learn eCommerce from an established player in the space? Check out our new job board partner Adore Beauty: they’re looking for a UI Engineer Team Lead (React Native, Vue)!


Vanilla JavaScript Component Libs Versus Vue Component Libs

Recently, we had to implement toasts and toggles for a client that's building a new Vue app from scratch. I get a sinking feeling of dread every time I start looking at framework-specific component libraries: they're usually out of date and broken. Reminds me…


What Mongoose 6 Means for JavaScript

First, a quick note from our sponsor, Vue School:The Nuxt Nation Conference 2021 is happening on 15th - 16th September. Join the first-ever Nuxt Conference for 100% free!Watch live industry leaders and speakers including the creator of the Nuxt Framework, Séb…


On Summer Vacation and Software Release Cycles

Looking for Vue jobs? Love working on developer tools? Check out our new job board partner Cycloid: they're looking for a Vue.js developer to improve the frontend for their CI/CD platform!It's been a few weeks since I've sent a newsletter. And, you guessed it…


Web Real Estate is the New Real Estate

Arnold Schwarzenegger's autobiography Total Recall is one of my favorite books. Something that always stuck with me is that Arnold didn't make his early fortune as a bodybuilder or actor, but as a landlord and owner of a construction company.Long story short,…


Rethinking State Management Libraries

We've been thinking about what patterns we recommend for state management in Vue. We don't like using Vuex, because Vuex suffers from the same problem as Redux and other legacy state management libs: you need to modify 9001 different files in order to wire up…


Why We Love Azure Functions for Node.js

We're now offering the opportunity to sponsor one of our weekly newsletters! Learn more on our new GitHub Sponsors page.


Take the Direct Path

We've recently become big fans of The Commonplace by Thomas J Bevans. The Commonplace is a pleasant yet thought provoking Substack newsletter that goes perfectly with a quiet Sunday morning coffee. If you're looking for an issue to get started, try reading Th…


Introducing the Mastering JS Job Board

Big news: we've finally launched a job board for Mastering JS. We're hoping to make this the #1 destination to hire JavaScript developers.


Google Search Console for Beginners

Google Search Console is a powerful tool for anyone managing a consumer-facing website. If organic traffic is your goal, Google Search Console is where you start.First, a sidebar on SEO. Backlinks are the single most important factor for SEO. A perfect websit…


What Does it Take to be a Staff Engineer?

Staff Engineer is typically the next step after Senior Engineer. It also represents the key point where you choose between being an individual contributor (IC) or an Engineering Manager.


Side Hustle Ideas for Web Developers

We firmly believe that every US-based web developer should have a side hustle. Outside the US, you still should have a side hustle unless there's some legal reason or contractual obligation.Remember: a good side hustle is about much more than just making some…


How to Work Effectively When You're Having a Bad Day

Over the course of your career as a software developer, there will be days when you feel like you are truly crushing it. And there will be days when it seems like nothing is going right. Your laptop's broken, the kids are crying, there's a revolving door of n…


Provide and Inject in Vue

Vue 2.6 introduced the provide/inject API to provide a cleaner way to avoid prop drilling. Vue 3 expanded the provide/inject API, letting you tie provide/inject in with reactivity.Prop drilling is what happens when a component several levels down the componen…


What JavaScript Can Learn from C#

My first software engineering internship was almost exclusively in C#. Unfortunately, it taught me to dislike C#, and I spent the next decade or so with C# near the top of my list of languages to avoid.However, I recently had the opportunity to tinker with C#…


Google Web Vitals and Cumulative Layout Shift (CLS)

Google Web Vitals was a major change to how Google ranks search results based on measurable website quality. It was released in late 2020 and Mastering JS' traffic immediately took a hit. Here's why, and what we've done about it.


Coding Career Endgames

The Coding Career Handbook has quickly become my go-to answer for anyone looking to get started in Software Engineering. It does an incredible job of explaining all the "unwritten rules" of how to learn to code, how to land your first software engineering job…


What We've Learned from Working with Vue 3

It's no secret that we're huge fans of Vue 3. Upgrading to Vue 3 has been straightforward in our experience, but we've also learned a lot from Vue 3's internals that we'll use in our own apps and libraries.


What Does It Take to Be a Senior JS Engineer?

I was recently on the Junior to Senior Podcast with JSLA organizer David Guttman. This podcast is all about what it takes to get promoted from "Junior Engineer" to "Senior Engineer" - a substantial hurdle for many developers. I personally struggled with this …