Vanilla JS doesn’t scale | Go Make Things

Every word of this is spot on! I’m also very grateful to Chris for taking the time and energy to write this — a perfect example of Brandolini’s law in action. adactio.com/links/20734 | Continue reading


@gomakethings.com | 4 months ago

The elevator pitch for Web Components | Go Make Things

I’ve worked with Web Components a little bit over the last few, but really struggled to understand the use case for them. Until this week. Between Jeremy Keith’s article on HTML Web Components, plus using one for a client project with NASA, something just clicked in my brain … | Continue reading


@gomakethings.com | 5 months ago

An example of an HTML Web Component | Go Make Things

Another example of an HTML web component from Chris, who concludes: Web Components are rapidly becoming my preferred way to add progressive enhancement to HTML elements. adactio.com/links/20650 | Continue reading


@gomakethings.com | 5 months ago

HTML Web Components | Go Make Things

Chris walks through a really good example of an HTML web component he made for NASA: wrapping a regular form element in a custom element to add Ajax functionality. This approach let me slash the JavaScript used for this project in half, easily progressively enhance the UI, and … | Continue reading


@gomakethings.com | 5 months ago

How do build tools break backwards compatibility? | Go Make Things

If you have a project that uses just plain HTML, CSS, and JavaScript, you can just open up the files and start working on them at any time. A project from 20 years ago will still work just fine, and can be easily modified. Projects that use build tools? Well… to work with them, … | Continue reading


@gomakethings.com | 5 months ago

Why multi-page apps? | Go Make Things

There are absolutely use-cases for SPAs (media sites, primarily). Most of the other things we use them for make the user experience notably worse or band-aid over the real underlying issues without addressing them. adactio.com/links/20493 | Continue reading


@gomakethings.com | 7 months ago

WTF is the Lean Web, anyways? | Go Make Things

Three principles: Embrace the platform Favor small, modular tools Build a web for everyone adactio.com/links/20359 | Continue reading


@gomakethings.com | 9 months ago

Web Developer Ground Hog Day | Go Make Things

JavaScript is great. I love using it, and it does amazing things. But maybe it’s time we stop repeating these same patterns of development over and over again. Maybe we can use JavaScript more responsibly, and focus more effort on HTML and CSS. adactio.com/links/20239 | Continue reading


@gomakethings.com | 10 months ago

How to build lean efficient websites in 2023 | Go Make Things

Start with mostly static HTML. Progressively enhance the dynamic parts. Pick small, focused tools. adactio.com/links/20191 | Continue reading


@gomakethings.com | 11 months ago

What framework should I use? | Go Make Things

Yesterday, I wrote about how awful React is for web performance. One of my readers wrote to ask me… You don’t recommend React as an front end framework? What do you recommend? The answer is just a little nuanced (but not very), based on your goals and priorities.I’m privileged en … | Continue reading


@gomakethings.com | 1 year ago

The transitional web | Go Make Things

I believe the web is a state of transition.The web is always changing, of course. It’s a core part of how the platform works.What I mean is that we’re at the start of another wave of change in our industry, where old trends and best practices give way to something new.Let’s explo … | Continue reading


@gomakethings.com | 1 year ago

Senior developers create more senior developers

Last week, I somewhat flippantly wrote… Honestly, the only difference between a junior and senior developer is that you get better at identifying all the places where your code goes to shit. My friend Sarah Dayan (the brilliant dev behind dinero.js) politely took me to task for s … | Continue reading


@gomakethings.com | 1 year ago

Your Website Is a Pollution Machine

Your website is a small (or, depending on where you work, not-so-small) pollution machine. Today, I wanted to share some things you can do to make the web a bit more green.Let’s dig in!How much pollution are we talking about? The internet is responsible for about as much pollutio … | Continue reading


@gomakethings.com | 1 year ago

Fundamentals matter | Go Make Things

A few weeks ago, Laurie Voss tweeted a screenshot from an upcoming talk of his that said… There’s no such thing as fundamentals. If you take one thing away from this talk it should be that there’s no such thing as fundamentals. That’s gatekeeping nonsense. This resulted in a leng … | Continue reading


@gomakethings.com | 1 year ago

Progressive Enhancement, the New Hotness™ | Go Make Things

Yesterday, my web friend Sara Soueidan tweeted out a poll… Do you use Progressive Enhancement (PE) to build your Web products? If you don’t, do you mind sharing the reason(s) why? A shocking 36.8 percent of respondents said they didn’t know what progressive enhancement was! Anoth … | Continue reading


@gomakethings.com | 2 years ago

How to make MPAs that are as fast as SPAs | Go Make Things

Yesterday, I wrote about how SPAs were a mistake. Today, I want to talk about how you can build multi-page apps (or, you know, regular websites) that are as fast as SPAs.Let’s dig in!A quick summary The sites and apps I build are absurdly fast. They load nearly instantly.Even on … | Continue reading


@gomakethings.com | 2 years ago

SPAs were a mistake | Go Make Things

For years, a trend in our industry has been to build single-page apps, or SPAs.With an SPA, the entire site or app lives in a single HTML file. After the initial load, everything about the app is handled with JavaScript. This is, in theory, supposed to result in web apps that fee … | Continue reading


@gomakethings.com | 2 years ago

How to progressively enhance a nav menu | Go Make Things

In last week’s article on the ideal browser support strategy in 2022, I wrote: Things can fail if JS is unsupported if they’re “nice to have” features. Anything critical needs to work without JavaScript. In response, reader Caleb Stauffer asked how I would handle a flyout or draw … | Continue reading


@gomakethings.com | 2 years ago

Web tech is better. Developer norms are worse. | Go Make Things

Last week, Devon Govett, the creator of Parcel.js, tweeted… I don’t understand the “things were better in the late 2000s” school of web development thinking going around lately. Maybe it’s nostalgia for when people first started? Or not wanting to learn new things?Either way, no! … | Continue reading


@gomakethings.com | 2 years ago

Google vs. the Web

Last week, I learned that the Google Chrome team is planning to deprecate alert(), prompt(), and confirm(), the three browser-native ways to surface a modal window to users.The phrasing of the ticket implies that this is only on cross-domain sites (ie. third-party iframes), which … | Continue reading


@gomakethings.com | 2 years ago

Tech Interviews Are Stupid

The interview process for most front-end developer roles is fundamentally broken.These days, most tech role interviews involve some sort of coding challenge, where the job candidate is asked to work through a problem either in abstract on a white board, or with actual code in a t … | Continue reading


@gomakethings.com | 2 years ago

Accessibility is hard. It's also your job

A few weeks ago, Twitter use @McgarrDana tweeted: Accessibility isn’t more work, you were just cutting corners before. The work was incomplete. And she’s right! If what you built isn’t accessible, it’s not complete.There’s no such thing as a website or web app that doesn’t need t … | Continue reading


@gomakethings.com | 2 years ago

What responsive web design is (and isn't) (2012)

There’s been an interesting discussion unfolding on the Mobile First Responsive Web Design group on LinkedIn regarding support for IE 6 and 7.The discussion can be split into two basic camps:My clients still get a lot of traffic on IE 6 and/or 7, so support for those browsers is … | Continue reading


@gomakethings.com | 3 years ago

Skydiving from the Edge of Space (2012)

Last year, I wrote about Felix Baumgartner and Michel Fournier, two skydivers who were both trying to jump from the edge of space.Baumgartner’s dive was sponsored by Red Bull. Fournier’s was self-funded and multiple decades in the making. Unfortunately, a series of setbacks preve … | Continue reading


@gomakethings.com | 3 years ago

PVC Instruments

Snubby J made his own percussion instrument using PVC and trial-and-error. Really cool stuff!The Medley Lady Gaga Medley FAQ Via Curiosity Counts | Continue reading


@gomakethings.com | 3 years ago

Modern JavaScript is amazing. Modern JavaScript is trash

Way back in March, I announced that I was working on an advanced version of my Vanilla JS Academy.I originally hoped to launch it early summer. Then late summer. Then early fall. I built 80 percent of it, threw it out, and built it again. Then I threw that out and rebuilt it agai … | Continue reading


@gomakethings.com | 3 years ago

How to delete all node_modules directories from your computer

Over the last few years, I’ve run npm install more times than I can count. And as a result, I have a lot of node_modules directories on my computer that I long forgot about and never use.Sometimes I don’t need the project at all anymore, but often, it’s a codebase I just don’t wo … | Continue reading


@gomakethings.com | 3 years ago

No, vanilla JavaScript doesn't mean hand-writing every single line of code

Yesterday, a popular programming education website sent a marketing email titled, “Beware of vanilla JS.” In it, the author wrote: But just vanilla JS by itself is a dangerous road to take. No, it’s not, for a multitude of reasons. Let’s unpack them.Vanilla JS is powerful and cap … | Continue reading


@gomakethings.com | 3 years ago

Always Bet on HTML

There’s a slogan that’s been floating around the web for sometime now.I think the first person to say it was the guy who invented JS (he donated to ban gay marriage in CA, so I’m not going write his name or link to the source here). Always bet on JavaScript. The thinking behind t … | Continue reading


@gomakethings.com | 3 years ago

All Tech Is Political

Last week, I wrote an article about Black Lives Matter.While most of the feedback was positive, I did predictably receive some negative responses, too. Some where particularly racist, but most of them were like this: I follow you for tech, not politics. Here’s the thing: all tech … | Continue reading


@gomakethings.com | 3 years ago

Formatting Dates with Vanilla JavaScript

Today, I want to teach you how to take a timestamp and convert it into a formatted date.Valid timestamps Before we get started, there are two valid timestamp formats we can use for thisFirst, we can use a unix timestamp, which is the time in milliseconds that has elapsed since Ja … | Continue reading


@gomakethings.com | 4 years ago

How to test vanilla JavaScript performance

I’ve written a few articles lately on the performance of various vanilla JS approaches. I’ve also gotten some interesting responses from folks asking about the performance of other approaches.Today, I wanted to teach you how to write your own performance tests.This can be an inva … | Continue reading


@gomakethings.com | 4 years ago

Vanilla JavaScript isn't hard, but learning it is

Modern vanilla JavaScript is amazingly powerful and simple.The querySelector() and querySelectorAll() methods make getting elements in the DOM a snap. The classList API makes manipulating classes simple and intuitive. Modern array methods make manipulating data way easier than it … | Continue reading


@gomakethings.com | 4 years ago

Tricks for building an insanely fast website

Last week, someone sent me an email commenting on how fast every single page of my website loads.Most pages on my site are fully loaded in less than a second (typically around 500-700ms) on a high speed internet connection, and less than 3 seconds on 3G. So how do I make that hap … | Continue reading


@gomakethings.com | 4 years ago

Clever code does not mean simple or readable

Last week, someone tweeted: Woah, this is elegant JavaScript. Need to conditionally add a property to an object? Here’s a slick approach. The right-hand side is only applied if the condition is true. If the condition is falsy, the spread operator does nothing. They shared this co … | Continue reading


@gomakethings.com | 5 years ago

XHR Instead of Fetch API

Over the last year, I’ve had quite a few people ask me to write about the Fetch API for making Ajax requests.Truth is, I still prefer using good old XHR. Today, I want to explain why.A quick overview of XHR vs. fetch() JSON Placeholder is an awesome service for testing API calls. … | Continue reading


@gomakethings.com | 5 years ago

Building accessible websites and apps is a moral obligation

Yesterday, we recorded a JS Jabber episode (I’m a co-host on the show) with Chris DeMars. (It comes out in a month or two.)Chris has a strong focus on performance and web accessibility, and at one said something to the effect of: Building websites that are accessible is your mora … | Continue reading


@gomakethings.com | 5 years ago

When do you use new JavaScript features vs. old approaches?

I often advocate for older approaches over newer ones.I still use concatenated strings over template literals. I use XHR instead of Fetch. I always use var, never const or let.But also uses newer methods and APIs, too. I love Array.map() and Array.filter(). I’m a big fan of the C … | Continue reading


@gomakethings.com | 5 years ago

What makes someone a good front-end developer?

Last week, one of my students asked me what makes someone a good front-end engineer.This is a highly subjective topic, but I’m happy to share my very opinionated perspective on this.The least important skill for a front-end developer The least important skills for a front-end dev … | Continue reading


@gomakethings.com | 5 years ago

How to create your own vanilla JavaScript DOM manipulation library like jQuery

Yesterday, we looked at how to create your own small vanilla JS helper library—a kind of mini Lodash or Underscore.js.Today, I’m going to show you how to build a tiny DOM manipulation library. This one will be more like a micro-jQuery.Setting up the library Just like yesterday, w … | Continue reading


@gomakethings.com | 5 years ago

My biggest challenge with JavaScript

Whenever someone signs up for my daily developer tip, I ask them one question: What’s the biggest challenge you face as a web developer? I get back a lot of interesting answers.The most common responses are things like knowing what to focus on, finding good learning resources, fi … | Continue reading


@gomakethings.com | 5 years ago