---
title: 2020 in Review
date: 2021-01-04
description: An overview of what I accomplished in 2020 and a bit about my goals for 2021.
categories:
  - review
meta:
  keywords:
    - career
bannerCloudinaryId: unsplash/photo-1541542301395-315ee588a095
bannerCredit: Photo by [Florian Olivo](https://unsplash.com/photos/Nc5Q_CEcY44)
---

## Some words before we get started...

😷 First let me say that I'm so sorry for the people who's lives have been
flipped upside down by COVID-19. So many people have lost work, loved ones, and
more this year due to the pandemic. We're not through this yet, so please keep
wearing a mask and following your local health safety guidelines.

Also, I want to say that this year has highlighted a lot of the social
injustices that have plagued the US for... ever. It has been painful for so many
and I encourage people to lend their privilege in whatever ways possible.
[Here's a great post to guide you](https://tatianamac.com/posts/white-guyde/)
(also, [this podcast series](https://www.sceneonradio.org/seeing-white/) was
super enlightening to me).

## Let's get started

Regular review and retrospectives is an important aspect to improving yourself
in any area. Athletes and musicians often watch/listen to themselves perform. I
know a lot of people don't like to, but I actually watch almost every talk,
video, and podcast I produce to identify ways to improve.

So, it's with that spirit of personal improvement, that I invite you to join me
on my walk through 2020.

## The beginning

Hopes and expectations were high. I was gearing up for
[EpicReact.dev](https://epicreact.dev) which I was hoping to have released
before I started traveling to speak at conferences in March (lol at me for
thinking I could get it released so quickly and that I would be traveling in
2020 😂).

I remodeled my office and finally got rid of that ugly yellow paint. I also got
a much higher quality "webcam," amazing lighting, and a pull-down green screen.
I'm really happy with my office now. You'll find pictures and links on
[my uses page](/uses).

I also switched my family from primarily using custom Google Suite to regular
Gmail (this was a much bigger pain than you probably realize which is why it's
getting a mention). As part of that, I decided to stop using Google Photos and
got us a Synology NAS (you'll find more info about that on the
[uses page](/uses) as well). I can recommend a NAS. It's a pain to set up, but
with auto-backup to Backblaze, and a public IP address for it, I have access to
all my own files wherever I am in the world without sacrificing my privacy or
ownership.

## [EpicReact.dev](https://epicreact.dev) Masterclass

Like I said, I wanted to get [EpicReact.dev](https://epicreact.dev) released
quickly, so I was heads down on improving my workshops. In particular, I needed
to create a brand new 2-part "Build React Apps" workshop. I discovered and used
[`react-query`](https://react-query.tanstack.com/) and
[`msw`](https://mswjs.io/). I also tried [tailwind](https://tailwindcss.com/)
with [twin.macro](https://github.com/ben-rogerson/twin.macro). It was a busy
time.

I decided that I shouldn't record and sell a workshop I'd never delivered and
proven before, so I scheduled the Epic React Masterclass. 9 workshops in total,
each one 5 hours long. Over the course of 1 month. I sold 30 premium tickets to
that, and then each workshop had 10 tickets for people's a la carte enjoyment.
We were sold out. I was super excited!

Interestingly, I made a scheduling mistake on my end and to make a long story
short, I thought I had 2 weeks to prepare the "Build React Apps" workshop (which
was extremely tight) but turned out I only had 3 days 😱. Turned out pretty good
considering that and the fact that it was the first time through that workshop.
Also, this format of workshop was pretty different from others I had done.
Honestly, I can't believe I managed to make that work, but it did. And the final
result is something I'm really proud of (more on that later).

## COVID

By the time March came around, we were all pretty much sure that 2020 was going
to be really different, but it wasn't until March 12th that everything came
crashing down for me and all my plans. Looking through my email, that's around
the time that in-person church was "temporarily suspended," flights/hotels were
canceled, conferences were canceled (or "postponed" and canceled later), etc. I
also had to cancel my last Frontend Masters workshops 😢. All travel plans
(personal and professional) were canceled. I was pretty bummed.

COVID shook up our home situation a lot as it did for most people (I have a wife
and 4 kids, 2 of whom are school age). Also, I did eventually get COVID later in
the year. My symptoms weren't very severe though.

Luckily, I had scheduled the Masterclass workshops already, so I was able to
stay very busy. I had a number of friends lose their jobs. Like I said earlier,
this was really devastating. I felt quite a bit of anxiety due to the uncertain
nature of everything going on.

## Remote all the things

Most conferences went remote and even though I reduced my commitments, I still
gave 6 remote conference talks and 18 remote workshops in 2020 (🤯 this blew my
mind when I looked it up). Half of those were the
[EpicReact.dev](https://epicreact.dev) Masterclass. I really wanted to make sure
that when I made the recorded version of EpicReact.dev, it was solid (and it
was)...

## EpicReact.dev

If you haven't heard, [EpicReact.dev](https://epicreact.dev) is a collection of
every React workshop I have ever given. It's based on learnings I've had both in
shipping React applications to millions of users all over the world as well as
what I've learned about _teaching_ this effectively. It's unique because it has
all the good things of a live and in person workshop + all the good things about
a self-paced recorded course, without the major drawbacks of either (read more
below about KCD Learning Clubs & Office Hours).

I've never spent so much time on a single deliverable. And I didn't build it
myself. Oh no! I was responsible for creating the material, recording the
videos, and marketing the heck out of it.
[This amazing team did the rest](https://epicreact.dev/credits). Working with
these folks was a delight.

The "Build React Apps" workshop got split into 4 workshops in all. When I
delivered it that first time I realized there was too much material for 2
workshops, so I made a third, and then I added a workshop on testing. Those are
supposed to be the practical workshop where we take what we've learned in all
the other workshops and make something real.

I also added a workshop specific to testing that wasn't a part of the original
masterclass. So it ended up being 11 workshops 😱 When delivered live, they're
each 5 hours long (and I often skip the extra credits). I also decided to put
together [a (free) podcast](https://epicreact.dev/podcast),
[a series of (free) articles](https://epicreact.dev/articles), and
[a series of interviews with React experts](https://epicreact.dev/interviews) as
well.

All told, it's 19 hours of video instruction (which is supplemental to actually
working through the exercises), 10 hours of expert interviews, 14 articles, and
~6.5 hours of podcasts 🤯 All for the same price as _one_ of my remote workshops
(and we also support purchasing power parity!!).

Some folks have finished everything, but most people need several months to go
through all this material. I made it well suited for beginners and experienced
engineers. Your ability to go through the material has a lot to do with how much
experience you bring to the workshops.

It's been outrageously successful. I knew it would be huge, but didn't realize
how big it really would be. And the number of positive comments I've heard from
people on this just fills my heart with joy. I have
[an EpicReact.dev tweet wall](https://epicreact.dev/tweets) you can visit to get
an idea of what people have said (beware, a LOT of tweets are on that page and
will take a lot of data to load). It's really helping people.
[EpicReact.dev](https://epicreact.dev) has been the best thing I've done to push
my mission forward: "help people make the world better through quality
software."

Sometimes I think about it all (like I'm doing now) and I'm still blown away by
how much I did. Wow.

## Discord

I had a [spectrum.chat](https://spectrum.chat) (RIP) for TestingJavaScript.com,
but I wanted to get something a bit better. I noticed some OSS projects were
migrating from Slack to Discord and one day I decided to just take the plunge
and create [my own "Epic Web Community on Discord"](/discord) where folks could
talk with and support each other regarding my courses and workshops. It ended up
being much more than that.

Setting up a server was surprisingly easy. But as with everything I do, I wanted
to complicate it. For one thing, I take my code of conduct seriously, so I
wanted to make sure everyone who joined the server had at least opened it up. So
I started with a form you'd submit on my website and that would send you an
email with an invite link. The problem with that was that folks couldn't create
their own invite links and it felt disjointed.

So I decided to make [a bot](https://github.com/kentcdodds/kcd-discord-bot) (yes
it's open source of course) that intercepts users as they come in and chats with
them one-on-one in a temporary channel, collecting info about them. Here's what
I collect in the onboarding process:

1. First name (I auto-set the Nickname to this to make things more human).
2. Email address (I check for throw-away emails, I also tell them this will add
   them to my mailing list if they're not already on it).
3. Accept the [Code of Conduct](/conduct) ("yes" is the only correct answer)
4. Test them on whether they actually opened the Code of Conduct by asking them
   what email address people report violations to (a disappointing/surprising
   number of people give up here).
5. If they don't have a photo, I invite them to add one (and I even load one for
   them from gravatar if the email they gave me is on there, I really want
   Discord to be human, and avatars help with that, but it's not required).

They have to answer questions 1-4 before they can see _anything_ other than the
one channel where they're talking to the bot. The friction here is **very**
intentional. It ensures that the kind of people who join the community are the
kind of people who are willing to go through that. A LOT of people don't, and
that's fine. I like to think that this process has contributed a great deal to
us have very few issues for the (terrific) moderators to do anything about.

The Discord community has become so much more than I imagined. Plenty of people
are there chatting about my material
([TestingJavaScript.com](https://testingjavascript.com) and
[EpicReact.dev](https://epicreact.dev) especially), but most of the
conversations have nothing to do with me. It's just a super awesome and friendly
group of developers helping each other out and making positive connections. It's
a _much_ better place to hang out than twitter.

We have over 7k members (despite
[my slip-up](https://twitter.com/kentcdodds/status/1329582811494240260)) and ~1k
are online at any time. Almost half members actually participate in
conversations. It's awesome. [You should join](https://kcd.im/discord), and be
sure to
[thank the bot](https://twitter.com/kentcdodds/status/1302598861970526209).

## KCD Learning Clubs & Office Hours

One thing I learned from the [EpicReact.dev](https://epicreact.dev) Masterclass
is that there's something special that happens when you have a group of
engineers going through the same curriculum together over a period of time. When
you take some training and make it self-paced you lose that and I didn't want to
lose that.

So the idea of [KCD Learning Clubs](/clubs) was born (original called "KCD
Cohorts"). We've had 32 learning clubs on all subjects in
[the ideas repo](https://github.com/kentcdodds/kcd-learning-clubs-ideas). Each
club has experienced varying degrees of success, but for the most part it's been
a super positive experience for people and that makes me happy.

Another thing that I wanted to not lose with
[EpicReact.dev](https://epicreact.dev) being recorded is the ability to ask the
instructor questions. You can't really ask a video questions. I've delivered
this content so often that I generally answer people's questions before they get
a chance to ask, but sometimes there's a gap in understanding or something
someone wants to ask for clarification.

Unfortunately, I don't have time to field those questions all day every day, so
I created [KCD Office Hours](/office-hours) as an opportunity for anyone (not
just license owners) to come and ask me anything they'd like. It's an hour long
live streamed Zoom call. This has been a great use of my time as well. I'm happy
to have had the opportunity to help answer so many people's questions (or at
least say "huh, I don't know, sorry 🙃").

## The rest

Here's some other stuff I thought I'd bring up before closing...

### Tweets

Here are my top tweets of 2020 (in order of impressions):

https://twitter.com/kentcdodds/status/1279050317628235776

https://twitter.com/kentcdodds/status/1286848781003063303

https://twitter.com/kentcdodds/status/1310990076029972480

https://twitter.com/kentcdodds/status/1242533260124553218

https://twitter.com/kentcdodds/status/1339431957990498304

### Books

I listened to a LOT of books this year (in particular, I re-listened to almost
every [Cosmere](https://www.brandonsanderson.com/what-is-the-cosmere/) related
book by [Brandon Sanderson](https://amazon.com/Brandon-Sanderson/e/B001IGFHW6))
in preparation for [Rhythm of War](https://amazon.com/dp/B082FQRWWR) (and he
writes long books, so that amounts to hundreds of hours of audio).
Unfortunately, I don't have a way to find a list of those that I re-listened to,
but here are some new books I bought in 2020 (in the order I purchased/listened
to them):

- [The Power of Bad: How the Negativity Effect Rules Us and How We Can Rule It](https://amazon.com/dp/B07RFSSZ9B)
- [Antifragile: Things That Gain from Disorder](https://amazon.com/dp/B00A2ZIZYQ)
- [The Lightning Thief: Percy Jackson and the Olympians, Book 1](https://amazon.com/dp/B000A5CJSQ)
- [The Sea of Monsters: Percy Jackson and the Olympians, Book 2](https://amazon.com/dp/B000GB8WGM)
- [Get Together: How to Build a Community with Your People](https://amazon.com/dp/B07WSFNTQJ)
- [Freakonomics: Revised Edition](https://amazon.com/dp/B000TK5BS2)
- [SuperFreakonomics](https://amazon.com/dp/B002TNABPK)
- [The Titan's Curse: Percy Jackson and the Olympians, Book 3](https://amazon.com/dp/B000PSJBBG)
- [How to Be an Antiracist](https://amazon.com/dp/B07TT85KLQ)
- [So You Want to Talk About Race](https://amazon.com/dp/B078XKB7B3)
- [The Battle of the Labyrinth: Percy Jackson and the Olympians, Book 4](https://amazon.com/dp/B001FVJHMK)
- [The Last Olympian: Percy Jackson and the Olympians, Book 5](https://amazon.com/dp/B0028TY17O)
- [Rich Dad Poor Dad: What the Rich Teach Their Kids About Money - That the Poor and Middle Class Do Not!](https://amazon.com/dp/B008BUHTLE)
- [Armada: A Novel](https://amazon.com/dp/B00VN00OXE)
- [How to Win Friends & Influence People](https://amazon.com/dp/B0006IU7JK)
- [The 7 Habits of Highly Effective People: Powerful Lessons in Personal Change](https://amazon.com/dp/B0006IU4C0)
- [The Power of Habit: Why We Do What We Do in Life and Business](https://amazon.com/dp/B007EJSMC8)
- [Thinking, Fast and Slow](https://amazon.com/dp/B005Z9GAJG)
- [Blink: The Power of Thinking Without Thinking](https://amazon.com/dp/B00097DWY0)
- [The Tipping Point: How Little Things Can Make a Big Difference](https://amazon.com/dp/B000OYD8T2)
- [Voice of War: Threadlight, Book 1](https://amazon.com/dp/B08H4JWDZR)
- [The Original](https://amazon.com/dp/B08CGGJ376)
- [Rhythm of War: The Stormlight Archive, Book 4](https://amazon.com/dp/B082FQRWWR)

### Blog

I'm not going to count this up. I kept pretty close to my schedule of writing
one blog post a week. Some of my posts appeared on
[EpicReact.dev/articles](https://epicreact.dev/articles) as well. So I wrote ~50
posts give or take this year. No plans to slow that down.

### Podcasting

I had a busy year podcasting

- I was a guest on [9 podcasts](/appearances)
- I launched 12 episodes in
  [Season 3](/chats-with-kent-podcast/seasons/03/episodes/alex-anderson-creates-web-based-spaceship-controls)
  of [the Chats with Kent Podcast](/podcast)
- I launched 9 episodes in
  [the EpicReact.dev Podcast](https://epicreact.dev/podcast)

### Fun

And yes, I did ride my OneWheel a lot this year. Hit a top speed of 27.7 MPH
(way too fast, do not do this), and I'm at 1,524 miles on this. Most of that was
in 2020. I love this thing:

https://twitter.com/kentcdodds/status/1284600378890149888

Even though this happens sometimes:

https://twitter.com/kentcdodds/status/1182010394300170240

I got a new replacement helmet and writs guards after this happened.

## 2021

So what's coming up in 2021? Honestly, I feel really optimistic about 2021. I
think it'll be a while before COVID goes away and we can return to making our
world better in other ways, but I'm still optimistic.

My theme for the year is "planning." When I was homeschooled in the 5th grade
(the only year I was homeschooled), my mom would write down a list of all the
assignments I had for the next day. I would wake up at 5:00 AM and work through
that list until I finished at around 9 or 10 AM. Then I had the whole day to do
whatever I wanted. That year was transformative for me and I loved it.

I want that productivity again. Also, I'm planning on working fewer hours this
year and spending more time with my family, so I really need that productivity
too! So in 2021, I'm ending every day by writing down on a physical notepad
(which I keep in my pocket) a short list of the things that I want to accomplish
the next day. I've been running this a week so far and it's been going well.
Let's hope I can keep it up!

Anyway, I have a lot of ideas for things I'll be working on in 2021. Here are
some of them:

- Migrating kentcdodds.com from Gatsby to [Remix](https://remix.run) (I will
  probably livestream lots of this)
- TypeScript-ifying everything I do, including workshops (old and new)
- A TypeScript workshop series
- Updating [TestingJavaScript.com](https://testingjavascript.com) to be
  workshop-based rather than course-based (Like
  [EpicReact.dev](https://epicreact.dev) or the Testing Node.js Apps module is).
- Updating [EpicReact.dev](https://epicreact.dev) to the latest of everything
  (react-query v3 is the biggest change so far, luckily it's not a huge change,
  but it impacts a LOT of the videos). I might swap Emotion for Tailwind as
  well... We'll see.
- Adding new workshops to EpicReact.dev
- [Chats with Kent](/podcast) Season 4
- Weekly [blog](/blog) posts
- Daily [3 minute podcasts](https://kcd.im/3-mins)

And for any significant new or updated workshops I make, I'll be hosting remote
workshops to perfect it before recording it, so keep an eye on
[my workshops page](/workshops).

Lots to do!

## Conclusion

2020 was full of really terrible things for a lot of people, and lots of that
continues into 2021. I'm optimistic that things will get better, and I'm looking
forward to what the future holds for us all. I hope that I can continue on my
mission to make the world a better place for us all, and I invite you to join
me. I've tried to [prioritize my time](/blog/hi-thanks-for-reaching-out-to-me) a
bit which has involved some cut-backs on what I do. But I trust that together we
can all optimize for the things we enjoy doing most and still make the world
better while we're at it.

Good luck!
