41554 blogs · [ { "id": "01a0bdca-f0eb-72eb-97c4-730da96a23c4", "title": "How I Vibed a Proof of Conway’s Conjecture", "url": "https://overreacted.io/how-i-vibed-a-proof-of-conways-conjecture/", "published_at": "2026-09-18T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeab7f81da", "title": "There Are No Instances in atproto", "url": "https://overreacted.io/there-are-no-instances-in-atproto/", "published_at": "2026-06-19T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeac7432a4", "title": "A Social Filesystem", "url": "https://overreacted.io/a-social-filesystem/", "published_at": "2026-01-18T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeac9001fd", "title": "Introducing RSC Explorer", "url": "https://overreacted.io/introducing-rsc-explorer/", "published_at": "2025-12-19T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeaca9dc7d", "title": "Hire Me in Japan", "url": "https://overreacted.io/hire-me-in-japan/", "published_at": "2025-11-11T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeacfc3533", "title": "How to Fix Any Bug", "url": "https://overreacted.io/how-to-fix-any-bug/", "published_at": "2025-10-21T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbead0f777b", "title": "Where It's at://", "url": "https://overreacted.io/where-its-at/", "published_at": "2025-10-02T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeada0878c", "title": "Open Social", "url": "https://overreacted.io/open-social/", "published_at": "2025-09-26T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeae42e1ff", "title": "A Lean Syntax Primer", "url": "https://overreacted.io/a-lean-syntax-primer/", "published_at": "2025-09-02T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeaf32480f", "title": "Beyond Booleans", "url": "https://overreacted.io/beyond-booleans/", "published_at": "2025-08-16T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeafa1df7e", "title": "The Math Is Haunted", "url": "https://overreacted.io/the-math-is-haunted/", "published_at": "2025-07-30T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb08d34c4", "title": "Suppressions of Suppressions", "url": "https://overreacted.io/suppressions-of-suppressions/", "published_at": "2025-06-11T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb0ef0b4e", "title": "I'm Doing a Little Consulting", "url": "https://overreacted.io/im-doing-a-little-consulting/", "published_at": "2025-06-11T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb12d7e57", "title": "How Imports Work in RSC", "url": "https://overreacted.io/how-imports-work-in-rsc/", "published_at": "2025-06-05T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb1c444ee", "title": "RSC for LISP Developers", "url": "https://overreacted.io/rsc-for-lisp-developers/", "published_at": "2025-06-01T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb28a950c", "title": "Progressive JSON", "url": "https://overreacted.io/progressive-json/", "published_at": "2025-05-31T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb2ce8351", "title": "Why Does RSC Integrate with a Bundler?", "url": "https://overreacted.io/why-does-rsc-integrate-with-a-bundler/", "published_at": "2025-05-30T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb34dc61e", "title": "One Roundtrip Per Navigation", "url": "https://overreacted.io/one-roundtrip-per-navigation/", "published_at": "2025-05-29T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb3b93c7b", "title": "Static as a Server", "url": "https://overreacted.io/static-as-a-server/", "published_at": "2025-05-08T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb45a56f1", "title": "RSC for Astro Developers", "url": "https://overreacted.io/rsc-for-astro-developers/", "published_at": "2025-05-06T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb558da8e", "title": "Functional HTML", "url": "https://overreacted.io/functional-html/", "published_at": "2025-05-02T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb5fba7d0", "title": "What Does \"use client\" Do?", "url": "https://overreacted.io/what-does-use-client-do/", "published_at": "2025-04-25T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb663465f", "title": "Impossible Components", "url": "https://overreacted.io/impossible-components/", "published_at": "2025-04-22T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb750334f", "title": "JSX Over The Wire", "url": "https://overreacted.io/jsx-over-the-wire/", "published_at": "2025-04-16T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb83e49eb", "title": "React for Two Computers", "url": "https://overreacted.io/react-for-two-computers/", "published_at": "2025-04-09T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb8dee1c8", "title": "The Two Reacts", "url": "https://overreacted.io/the-two-reacts/", "published_at": "2024-01-04T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeb9c8ac50", "title": "A Chain Reaction", "url": "https://overreacted.io/a-chain-reaction/", "published_at": "2023-12-11T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeba3b8bbe", "title": "npm audit: Broken by Design", "url": "https://overreacted.io/npm-audit-broken-by-design/", "published_at": "2021-07-07T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbeba4fbf58", "title": "Before You memo()", "url": "https://overreacted.io/before-you-memo/", "published_at": "2021-02-23T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebb3cb65f", "title": "The WET Codebase", "url": "https://overreacted.io/the-wet-codebase/", "published_at": "2020-07-13T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebb9e9952", "title": "Goodbye, Clean Code", "url": "https://overreacted.io/goodbye-clean-code/", "published_at": "2020-01-11T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebc61dab2", "title": "My Decade in Review", "url": "https://overreacted.io/my-decade-in-review/", "published_at": "2020-01-01T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebd2e27f5", "title": "What Are the React Team Principles?", "url": "https://overreacted.io/what-are-the-react-team-principles/", "published_at": "2019-12-25T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebd359f30", "title": "On let vs const", "url": "https://overreacted.io/on-let-vs-const/", "published_at": "2019-12-22T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebdf6c8c3", "title": "What Is JavaScript Made Of?", "url": "https://overreacted.io/what-is-javascript-made-of/", "published_at": "2019-12-20T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebe15b6d6", "title": "How Does the Development Mode Work?", "url": "https://overreacted.io/how-does-the-development-mode-work/", "published_at": "2019-08-04T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebec7c7c6", "title": "Algebraic Effects for the Rest of Us", "url": "https://overreacted.io/algebraic-effects-for-the-rest-of-us/", "published_at": "2019-07-21T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebf373d29", "title": "Preparing for a Tech Talk, Part 3: Content", "url": "https://overreacted.io/preparing-for-tech-talk-part-3-content/", "published_at": "2019-07-10T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbebfc2961c", "title": "Name It, and They Will Come", "url": "https://overreacted.io/name-it-and-they-will-come/", "published_at": "2019-03-25T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec03053b7", "title": "Writing Resilient Components", "url": "https://overreacted.io/writing-resilient-components/", "published_at": "2019-03-16T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec10f790a", "title": "A Complete Guide to useEffect", "url": "https://overreacted.io/a-complete-guide-to-useeffect/", "published_at": "2019-03-09T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec1731100", "title": "How Are Function Components Different from Classes?", "url": "https://overreacted.io/how-are-function-components-different-from-classes/", "published_at": "2019-03-03T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec23615c9", "title": "Coping with Feedback", "url": "https://overreacted.io/coping-with-feedback/", "published_at": "2019-03-02T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec23eab23", "title": "Fix Like No One’s Watching", "url": "https://overreacted.io/fix-like-no-ones-watching/", "published_at": "2019-02-15T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec270a8cf", "title": "Making setInterval Declarative with React Hooks", "url": "https://overreacted.io/making-setinterval-declarative-with-react-hooks/", "published_at": "2019-02-04T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec2b0eec0", "title": "React as a UI Runtime", "url": "https://overreacted.io/react-as-a-ui-runtime/", "published_at": "2019-02-02T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec37af16e", "title": "Why Isn’t X a Hook?", "url": "https://overreacted.io/why-isnt-x-a-hook/", "published_at": "2019-01-26T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec3fe1202", "title": "The “Bug-O” Notation", "url": "https://overreacted.io/the-bug-o-notation/", "published_at": "2019-01-25T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec4d8f494", "title": "Preparing for a Tech Talk, Part 2: What, Why, and How", "url": "https://overreacted.io/preparing-for-tech-talk-part-2-what-why-and-how/", "published_at": "2019-01-07T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec4fdb438", "title": "The Elements of UI Engineering", "url": "https://overreacted.io/the-elements-of-ui-engineering/", "published_at": "2018-12-30T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec5f9d0c9", "title": "Things I Don’t Know as of 2018", "url": "https://overreacted.io/things-i-dont-know-as-of-2018/", "published_at": "2018-12-28T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec60424e5", "title": "Preparing for a Tech Talk, Part 1: Motivation", "url": "https://overreacted.io/preparing-for-tech-talk-part-1-motivation/", "published_at": "2018-12-26T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec6d29d43", "title": "Why Do React Hooks Rely on Call Order?", "url": "https://overreacted.io/why-do-hooks-rely-on-call-order/", "published_at": "2018-12-13T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec7122dc0", "title": "Optimized for Change", "url": "https://overreacted.io/optimized-for-change/", "published_at": "2018-12-12T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec79c6277", "title": "How Does setState Know What to Do?", "url": "https://overreacted.io/how-does-setstate-know-what-to-do/", "published_at": "2018-12-09T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec862cc70", "title": "My Wishlist for Hot Reloading", "url": "https://overreacted.io/my-wishlist-for-hot-reloading/", "published_at": "2018-12-08T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec8c118d0", "title": "Why Do React Elements Have a $$typeof Property?", "url": "https://overreacted.io/why-do-react-elements-have-typeof-property/", "published_at": "2018-12-03T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec9ac1603", "title": "How Does React Tell a Class from a Function?", "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function/", "published_at": "2018-12-02T00:00:00+00:00" }, { "id": "01a07d5d-9303-700d-a3bb-6cbec9f40257", "title": "Why Do We Write super(props)?", "url": "https://overreacted.io/why-do-we-write-super-props/", "published_at": "2018-11-30T00:00:00+00:00" } ] posts Claim your blog
Back to Dan Abramov
Blog · corpus.blog/blogs/overreacted.io/posts

Dan Abramov

overreacted.io

2026

2025

2024

2023

2021

2020

2019

2018