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.