Josh Comeau

Hi there!

You've been subscribed to my primary newsletter. You can expect to receive an email every few weeks, sharing the new things that I've published or released. Occasionally, I'll share unique "newsletter-only" content as well. ✨

I'm not sure how familiar you are with my work, so I thought I'd share some of the most valuable stuff I've created over the past few years. Consider this a “Josh Starter Pack”. 😄

Link to this heading
Popular blog posts

Here are some of the most widely-read blog posts I've written:

An Interactive Guide to CSS Transitions CSS, Animation

The “transition” CSS property is the most fundamental tool in the animator's toolbox. In this interactive tutorial, we'll learn how to use it to create beautiful, well-thought-out interactions and animations.


How to Learn Stuff Quickly Pedagogy

I'm a self-taught developer, and I've taught myself a whole bunch of skills over the years. This blog post shares some of the strategies I've used to pick up new skills as quickly as possible.


CSS Variables for React Developers CSS, React

CSS variables are ridiculously powerful, and they get even better when you combine them with a JS framework like React. In this tutorial, we learn how they work, and how we can use them to do really cool things, like animating CSS gradients!

CSS is easy to get started with, but very difficult to master. There are no error messages, no console.log, no debugger. For so many JavaScript developers, CSS feels like a mysterious black box.

I started writing CSS in 2007, and for a decade, I stumbled my way through it. I knew enough to get by, but I would frequently find myself in bewildering situations. I'd use a snippet I've used 100 times before, but it would randomly do something different. The language felt so inconsistent and unpredictable!

As it turns out, CSS is actually a deeply consistent and logical language. The problem is that most of us only have a shallow, surface-level understanding of it!

I spent years slowly building out my mental model, digging through MDN documentation and CSSWG specifications, experimenting and tinkering. So many puzzle pieces started snapping into place. And it totally changed the experience of working with CSS!

In mid-2020, I left my job as a Staff Software Engineer at Gatsby Inc. to work full-time on creating a CSS course specifically for JS devs. It took over a year, but the first version is now complete. It's called CSS for JavaScript Developers.

A banner showing the landing page for CSS for JavaScript Developers

The course has 1 goal: increase your confidence with CSS. We focus on building out a robust, accurate mental model, understanding how CSS works at a deeper level, so that we can use it intuitively. It's about 20-40 hours of no-fluff content, split across videos, interactive articles, exercises, workshops, and mini-games.

If this sounds interesting to you, you can learn more on the course homepage: https://css-for-js.dev/

Finally, I have some fun extras! ✨

Shadow Palette Generator

The “box-shadow” CSS property produces some pretty boring, unconvincing shadows by default. If we want to create lush, realistic shadows, we need to take advantage of some tricks. This free online tool helps you produce nicer shadows in CSS.


Operator Lookup

Have you ever been reading some code, and you discover an unfamiliar operator, like “&&=” or “|>”? These operators can't really be googled, because Google ignores most symbols! So, I created “Operator Lookup”, a search engine specifically for JS operators. Copy/paste the operator, and this tool will tell you what it is and how it works.


Building an Effective Dev Portfolio

I've reviewed literally hundreds of junior developer portfolio sites, and I noticed that people kept making the same mistakes over and over. I learned a lot about the subject when I worked as a career coach, helping recent bootcamp grads land their first job.

This is a free 70-page e-book that explains how you can create a developer portfolio site that will attract potential employers and help you land a job as an early-career developer.


Thanks so much for subscribing, and welcome to the newsletter!

All the best,
-Josh