Emails from sender «Josh Comeau».
Source: Readwise Reader export, ingested 2026-10-29. Entries: 84. Summaries are truncated from frontmatter summary; absent ⇒ omitted.
- My top 10 anticipated CSS features 🔮 — 2026-10-20
For the past 6 years, all of the major browser vendors (Google/Microsoft/Apple/Mozilla) have been working together on a project known as Int…
- Two lovely brand-new CSS properties ✨ — 2026-09-14
CSS has gotten so many long-awaited new features over the past few years, from Container Queries to View Transitions to Anchor Positioning (…
- A new blog post about CSS Anchor Positioning ⚓ — 2026-07-06
One of the classic CSS problems is getting one element to stick to another for things like tooltips and dropdown menus.
- “Animation Challenges” is now available! — 2026-06-19
You’re receiving this email because you signed up for my course, Whimsical Animations.
- Just a few hours left in the Spring sale ⏰ — 2026-05-27
Just a quick note to let you know that it’s the very final day in my annual Spring sale. If you’ve been eyeing one of my courses, this is th…
- Just a few hours left in the Spring sale ⏰ — 2026-05-27
Just a quick note to let you know that it’s the very final day in my annual Spring sale. If you’ve been eyeing one of my courses, this is th…
- CSS vs. JavaScript 🥊 — 2026-05-26
Libraries like GSAP and Motion provide an extended set of features, allowing us to do things that aren’t possible with CSS alone. But does t…
- Return of the Open House 🏫 — 2026-05-21
I often hear from prospective students who want to know a bit more about my courses before they register. They’re a significant investment,…
- Better late than never 🌸 — 2026-05-19
This is one of the two sales I run each year (along with the Black Friday sale in November), and I typically run my Spring sale in early May…
- One final email about Whimsical Animations ❤️ — 2026-05-05
I know I’ve been sending a lot of email during this launch, and I’m sorry if I’ve gotten on your nerves. The launch is over now, so I’ll be…
- Student showcase ✨ — 2026-05-05
In today’s email, I want to share some of the animations that people have created after working through Whimsical Animations.
- The secret ingredient — 2026-05-04
In this email, I want to share one of my all-time favourite animation tricks. This is something that almost nobody does, despite the fact th…
- Making part of my course public 🏫 — 2026-05-01
Whenever I release a new course, I like to run an “Open House”: I pick a couple of lessons from across the course and make them totally publ…
- A tool and a tip ❤️ — 2026-04-30
CSS comes with several built-in easing curves, like ease-in and linear, but honestly, they’re pretty underwhelming.
- The elephant in the room — 2026-04-29
I want to talk a bit about AI and the related shifts in the tech industry.
- Scroll-driven animations 💎 — 2026-04-28
If you haven’t heard of it yet, the Animation Timeline API gives us a way to set up scroll-driven animations entirely using CSS.
- Whimsical Animations is now available! ✨ — 2026-04-27
Hey there! Just a quick note to let you know that registration has officially opened for my brand-new course, Whimsical Animations.
- Thanks for being an Early Access supporter. ❤️ — 2026-04-27
I wanted to thank you for believing in this course, and for helping fund the rest of its development.
- Tomorrow’s the day! — 2026-04-26
Well, when I think about my own career, I’d say that animations have had a huge impact.
- One of my favourite lil’ animation tricks ✨ — 2026-04-13
This technique comes from Disney’s 12 Basic Principles of Animation, and it’s the focus of the brand-new blog post I just published.
- Module 4 of Whimsical Animations now available! 😄 — 2026-04-03
You’re receiving this email because you signed up for my new course, Whimsical Animations, during the “Early Access” launch last year.
- Me v. Scott Tolinski in the finals, right now! — 2026-04-02
This match is super intense. Until now, each of the layouts we’ve built have been pretty straightforward, and the challenge was in getting a…
- The competition starts in an hour 😬 — 2026-03-13
As I briefly mentioned in my last email, I’m competing in the inaugural “March Mad CSS” tournament, a speed CSS competition.
- A new blog post, some new survey results to explore, and a lil’ announcement ✨ — 2026-02-23
Using the relatively-obscure steps() timing function, we can step through frames in a spritesheet, like how oldschool film projectors work.…
- 💘 Valentine’s Day coupon expiring — 2026-02-19
This is just a friendly reminder that your Valentine’s Day coupon expires tomorrow!
- 💘 Valentine’s Day coupon expiring — 2026-02-19
This is just a friendly reminder that your Valentine’s Day coupon expires tomorrow!
- Part 3 of Whimsical Animations is now available! — 2026-02-16
I know it’s been a while, so to refresh your memory: you joined during “Early Access”.
- Stealing Bruno’s idea again 😅 — 2026-02-10
Every year for Valentine’s Day, course creator Bruno Simon generates a 50%-off coupon for everyone who has registered for his course, Three.…
- Stealing Bruno’s idea again 😅 — 2026-02-10
Every year for Valentine’s Day, course creator Bruno Simon generates a 50%-off coupon for everyone who has registered for his course, Three.…
- Last call ⌛ — 2025-12-03
I know we all have “Black Friday fatigue” at this point, and I hope I haven’t been getting on your nerves!
- The final 24 hours ✨ — 2025-12-02
To date, more than 30,000 developers have registered for my courses, and over the years, I’ve received thousands of testimonials and bits of…
- My 10 favourite Black Friday deals from other indie creators ❤️ — 2025-11-28
While I haven’t taken most of these courses myself, I’m only including courses from creators I think are top-notch.
- The state of React — 2025-11-27
Every year, the folks over at Devographics run a handful of surveys, to better understand how developers work and how things change over tim…
- New layout possibilities with CSS subgrid ✨ — 2025-11-25
So, CSS has seen lots of exciting new features come along over the past few years. One of the most anticipated features has been subgrid.
- The sale has begun! 🎈 — 2025-11-24
That said, I know that you’re probably already getting a ton of email about Black Friday from others, and it can be a bit overwhelming.
- Springs and bounces in native CSS — 2025-10-28
If you’re not familiar with linear(), it’s a modern tool we can use to emulate physics-based motion in native CSS.
- Closing time ⏰ — 2025-09-30
I know I’ve sent a lot of email over the past week 😅. Sorry if I’ve gotten on your nerves!
- The most common animation mistake — 2025-09-30
First, a friendly reminder: today’s the very last day to sign up for my brand-new course, Whimsical Animations.
- Questions and answers — 2025-09-29
Since launching the course in “Early Access” last week, I’ve gotten a bunch of questions from y’all. My goal today is to answer the most com…
- More free stuff 😄 — 2025-09-28
Well, I’ve just published two more lessons! The Open House now includes four lessons taken from across the course.
- School’s open! 🧑🎓 — 2025-09-26
I call it the “Open House”, since it’s a chance to come wander the halls of my course and see what you think.
- The secret ingredient — 2025-09-25
Yesterday, I launched my brand-new animations course, Whimsical Animations, in early access. Launches are always stressful, but so far every…
- “Whimsical Animations” is now available! — 2025-09-24
Whimsical Animations is a comprehensive, interactive, self-paced online course.
- The modern CSS feature that I don’t recommend… — 2025-09-22
So, normally when I write a blog post about a modern CSS feature, it’s because I think it’s awesome and I want you to start using it.
- 🕳️ 🐇 Falling into a rabbit hole — 2025-09-08
A few months ago, I fell down one of these rabbit holes while implementing a particle effect, and it wound up being super interesting.
- A new blog post + an announcement 😮 — 2025-08-18
As you may know, I’ve spent the past year working on a new interactive course called Whimsical Animations.
- A friendly introduction to SVG ✨ — 2025-07-21
One of the most critical tools in my toolbelt is SVG. When combined with JavaScript and CSS, we can do some ridiculously cool things with it…
- The “State of Devs” results are in! — 2025-06-30
For a couple of years now, the discourse in online developer communities has been that things are pretty bleak.
- Dynamic, composable CSS keyframes ✨ — 2025-06-10
This post is about CSS keyframe animations, and how a couple of obscure tricks can make them way more useful.
- The height enigma 🌀 — 2025-05-12
If this topic feels familiar to you, it’s because there is a lesson on “Height Algorithms” in CSS for JavaScript Developers.
- A developer survey with no questions about coding 🤔 — 2025-05-02
In previous newsletter issues, I’ve shared my thoughts on the “State of JS” and “State of CSS” dev survey results.
- The “post-developer” era — 2025-04-14
This was right after OpenAI released its GPT-4 showcase, the one where they drew a sketch of a joke website and their AI turned it into real…
- Animating “height: auto” in CSS — 2025-03-24
If you’ve ever tried to build something like this, you’ve likely been frustrated to realize that animating the height property doesn’t reall…
- A million little secrets — 2025-02-24
If you’re familiar with my work, you know that I’m a big fan of ✨ whimsical details ✨.
- Valentine’s Day coupon expiring — 2025-02-17
This is just a friendly reminder that your Valentine’s Day coupon expires tomorrow!
- Stealing Bruno’s idea again 😅 — 2025-02-10
Every year for Valentine’s Day, course creator Bruno Simon generates a 50%-off coupon for everyone who has registered for his course, Three.…
- Exploring the “State of JavaScript” data 🔎 — 2024-12-19
Well, the State of JavaScript 2024 just published its findings, so I thought I’d do it again!
- Another new blog post! — 2024-12-02
PS. If you have any co-workers or friends who would benefit from my courses, I’d really appreciate if you let them know about the Black Frid…
- Just published a new blog post! — 2024-11-26
In this post, I share the 3 factors I consider when deciding whether to use a modern CSS/JS feature.
- Joy for JavaScript Developers 🎈 — 2024-11-25
Joy for JavaScript Developers is a brand-new bundle which includes both of my flagship courses, CSS for JavaScript Developers + The Joy of R…
- A friendly introduction to container queries ❤️ — 2024-11-04
It’s interesting… for many many years, the #1 most requested CSS feature was container queries.
- 🔍 Going through the “State of CSS” results… — 2024-10-22
If you spend time in online developer communities, you’ve probably seen people talking about eye-popping salaries and acting like everyone h…
- How I built my new blog 🔎 — 2024-09-24
So, as I mentioned a couple of weeks ago, I recently shipped a brand new version of my blog. The design is similar, but a ton of stuff chang…
- My brand new blog ✨ — 2024-09-09
I’ve spent the summer rebuilding joshwcomeau. com from the ground up.
- What should I teach next? — 2024-08-26
I’m about to start work on my next course, and I need your feedback on what I should teach.
- The secret mechanisms of CSS — 2024-08-06
I tried to make this talk really value-dense; it’s less than 40 minutes long, but it includes tons of stuff that took me years to fully gras…
- Some thoughts about passion… — 2024-07-13
A couple of weeks ago, I saw something that I can’t stop thinking about.
- Promises from the ground up — 2024-06-03
For years now, I’ve wanted to write a blog post about JavaScript Promises.
- Just published a new blog post 😄 — 2024-05-13
The thing about useDeferredValue is that it’s kind of an intimidating hook.
- Tweaking the V-Day rules + a mini tutorial — 2024-02-19
One of the conditions of these coupons is that they could only be used by new users, people who hadn’t already registered for one of my cour…
- How to center a div in CSS — 2024-02-13
The wonderful people who work on the CSS specification listened, and they gave us so many tools we can use to center stuff.
- Something you can give to a special someone 💝 — 2024-02-12
Every person who had purchased his course got a unique, one-time-use coupon that would reduce the price of his course by 50%.
- The “Job Hunting Kit” is now available😄 — 2023-12-14
It includes tons of strategies and tips you can use in your job search.
- An interactive guide to CSS Grid ⚡️ — 2023-11-21
Last year, I published “An Interactive Guide to Flexbox”. My goal was sort of to make an interactive version of the famous “CSS Tricks” guid…
- A new blog post (and a favor request <3) — 2023-09-06
You’re receiving this email because you purchased my React course, The Joy of React.
- The final project is live! And it’s a doozy 💪 — 2023-08-09
A couple of months ago, I floated this idea for the final project.
- A bonus module on layout animations 💨 — 2023-07-14
If you’re not familiar, Framer Motion is an animation library for React. It’s ridiculously powerful.
- The final module from The Joy of React is live! — 2023-06-21
This new module is called Full Stack React, and it’s all about building modern, performant, server-rendered applications.
- Some of my greatest lil’ animation tricks 🏳️🌈🏳️⚧️ — 2023-06-06
I’ve put a ton of work into this one. I reckon I’ve spent about 60 hours working on it.
- Book download: “Building an Effective Dev Portfolio” — 2023-05-14
My personal newsletter is sent roughly every 2 weeks, when I publish new content on my blog.
- Heads-up, deleting code snippets in a few days (CSS for JavaScript Developers) — 2023-04-09
I’m migrating to a much more powerful playground, based on Sandpack. We’ve been using this editor in my newer React course and it’s way bett…
- Brand new module just published! 😄 — 2023-03-31
I’m really friggin’ excited about this module. We dig deeper into a bunch of stuff we covered earlier in the course.
- Pitfalls, gotchas, and footguns — 2023-03-06
The idea for this blog post came from my time teaching at a local coding bootcamp. I noticed that cohort after cohort kept stumbling over th…
- What can we learn from game developers? — 2023-02-21
For a while now, I’ve had an idea bouncing around in my head.