惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
小众软件
小众软件
Engineering at Meta
Engineering at Meta
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Security Archives - TechRepublic
Security Archives - TechRepublic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
V
Vulnerabilities – Threatpost
云风的 BLOG
云风的 BLOG
博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
量子位
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
Scott Helme
Scott Helme
A
About on SuperTechFans
博客园 - 司徒正美
Hacker News: Ask HN
Hacker News: Ask HN
The GitHub Blog
The GitHub Blog
Forbes - Security
Forbes - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Spread Privacy
Spread Privacy
T
Tailwind CSS Blog
S
Security Affairs
宝玉的分享
宝玉的分享

Kent C. Dodds Blog

Implementing Hybrid Semantic + Lexical Search Simplifying Containers with Cloudflare Sandboxes Migrating to Workspaces and Nx Offloading FFmpeg with Cloudflare Building Semantic Search on my Content Helping YOU ask ME questions with AI How I used Cursor to Migrate Frameworks The Dow's Start on the Covenant Path 2025 in Review The next chapter: EpicAI.pro AI is taking your job How I increased my visibility Launching Epic Web Stop Being a Junior RSC with Dan Abramov and Joe Savona Live Stream Fixing a Memory Leak in a Production Node.js App 2022 in Review My Car Accident I Migrated from a Postgres Cluster to Distributed SQLite with LiteFS I'm building EpicWeb.dev A review of my time at Remix Remix: The Yang to React's Yin How I help you build better websites Why I Love Remix The State Initializer Pattern How to React ⚛️ Get a catch block error message with TypeScript Building an awesome image loading experience How Remix makes CSS clashes predictable Introducing the new kentcdodds.com How I built a modern website in 2021 How to use React Context effectively Static vs Unit vs Integration vs E2E Testing for Frontend Apps The Testing Trophy and Testing Classifications Array reduce vs chaining vs for loop Don't Solve Problems, Eliminate Them Super Simple Start to Remix Super Simple Start to ESModules in Node.js JavaScript Pass By Value Function Parameters How to write a Constrained Identity Function (CIF) in TypeScript How to optimize your context value How to write a React Component in TypeScript TypeScript Function Syntaxes Listify a JavaScript Array Build vs Buy: Component Libraries edition Using fetch with TypeScript Wrapping React.useState with TypeScript Define function overload types with TypeScript 2020 in Review Business and Engineering alignment Hi, thanks for reaching out to me 👋 useEffect vs useLayoutEffect Super simple start to Firebase functions Super simple start to Netlify functions Super Simple Start to css variables Favor Progress Over Pride in Open Source Testing Implementation Details How getting into Open Source has been awesome for me useState lazy initialization and function updates Use ternaries rather than && in JSX Application State Management with React Use react-error-boundary to handle errors in React JavaScript to Know for React How I structure Express apps What open source project should I contribute to? When I follow TDD AHA Programming 💡 How I Record Educational Videos Should I write a test or fix a bug? Stop mocking fetch Intentional Career Building Improve test error messages of your abstractions Tracing user interactions with React Eliminate an entire category of bugs with a few simple tools Common mistakes with React Testing Library Super Simple Start to React Stop using client-side route redirects The State Reducer Pattern with React Hooks Function forms Replace axios with a simple custom fetch wrapper How to test custom React hooks React Production Performance Monitoring Should I useState or useReducer? Stop using isLoading booleans Make Your Test Fail Make your own DevTools An Argument for Automation Fix the "not wrapped in act(...)" warning Super Simple Start to ESModules in the Browser Implementing a simple state machine library in JavaScript 2010s Decade in Review Why users care about how you write code Why I avoid nesting closures Don't call a React function component Why your team needs TestingJavaScript.com Inversion of Control Understanding React's key prop How to Enable React Concurrent Mode How to add testing to an existing project Profile a React App for Performance
2023 in Review
Agent Conf | Sept 17-18, 2026 | Warsaw @AgentConf · 2023-12-20 · via Kent C. Dodds Blog

Well here we are at the end of another year, and here's my own review of what happened this year in my life.

Epic things

The biggest thing that happened professionally this year was the launch of Epic Web and the Epic Stack. Those required their own post, so I wrote that up separately and you can read all about how that came to be in Launching Epic Web.

This was really a big deal for me!

Conferences

Kent standing on stage

You can find my travel history (and future) on my travel map. In 2023, I spoke at the following conferences:

Pretty busy year for conferences for me. My wife and I had our 5th child in November though, so I'm easing off a little bit for 2024. I've still got some pretty sweet plans though. Stay tuned.

I want to call out a couple things though.

First, Agent Conf was unbelievable. Aside from the organizer (Guntram) just being a stellar person who put together an amazing event. Skiing in the Alps was unforgettable (though I must say I'm partial to Utah snow).

I also had a great time at CityJS and really enjoyed spending 6 hours at Harry Potter and the Cursed Child part 1 and 2 back-to-back with my friends Ruben Casas and Adrien Baron.

Kent and Ruben in front of the Harry Potter and the Cursed Child playhouse

As is customary, I rode my onewheel to the airport on my way home from React Miami 😅

Even though I'm no longer at Remix, the Remix team asked me to organize Remix Conf and I had a great time doing that. The Remix community is really special and I love getting together with these folks.

I took some time in Amsterdam to explore the Netherlands and it was beautiful!

Personal

The biggest thing that happened in my personal life this year was the birth of my 5th child. I don't post pictures of my kids online, but I will say that I'm very grateful for my wife and kids. They're the best. I'm so grateful my wife and my new son are healthy and happy!

Earlier this year we took our kids to Disneyland for the first time. It was fantastic. My oldest daughter is 11 and she's willing to go on almost all the rides with me (except for Guardians of the Galaxy 😅). We had an awesome time (Rise of the Resistance is incredible).

Kent standing in front of the Millennium Falcon at Disneyland

Random things

I went snowboarding a lot (we had a record breaking winter in Utah).

I also went riding on my onewheel a lot (summer time was beautiful as always).

After a couple years of a break (due to my car wreck), I tried a backflip again. I still got it!

I ran a 10k with my 9 year old son. He's amazing.

My wife made a cake for me in the theme of Epic Web. She's amazing.

I started and beat The Legend of Zelda Breath of the Wild and Tears of the Kingdom!

Kent C. Dodds 🏹 avatar

Kent C. Dodds 🏹 @kentcdodds

I beat Calamity Ganon (BOTW) last night. I always have mixed feelings when I finish video games. I think back on all the hours and wonder what else I could've done with that time. Then I remember that the reason I play is to relax and it's more engaging than a movie 🎮 👍

6 43

Kent C. Dodds 🏹 avatar

Kent C. Dodds 🏹 @kentcdodds

I just beat Ganondorf, the Demon King in Tears of the Kingdom. This was great! Much more satisfactory ending boss battle than Breath of the Wild. And it was so much bigger in every way. What an amazing game.

11 71

Conclusion

It's cool to look back on 2023 and think of all the good times. I love looking through pictures of the experiences I had with family and friends. The older I get, the more I come to appreciate the relationships I have with other people.

As the world gets somehow even more digital, I'm clinging to these real human relationships harder than ever and I hope you are too. I'm convinced that the greatest happiness is only achieved by cultivating meaningful relationships with other people.

So, onto 2024!