# Dan Abramov

A blog by Dan Abramov

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## There Are No Instances in atproto

DevFeed: [There Are No Instances in atproto](<https://devfeed.tech/articles/there-are-no-instances-in-atproto-36202.md>)

Original publisher: [Read original article](<https://overreacted.io/there-are-no-instances-in-atproto/>)

Published: 2026-06-19T00:00:00Z

Content type: opinion

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [AT Protocol](<https://devfeed.tech/topics/atproto.md>), [Mastodon](<https://devfeed.tech/topics/mastodon.md>), [Bluesky](<https://devfeed.tech/topics/bluesky-social.md>), [ActivityPub](<https://devfeed.tech/topics/activitypub.md>), [RSS Feed](<https://devfeed.tech/topics/rss-feed.md>)

Tags: [centralization](<https://devfeed.tech/tags/centralization.md>), [mastodon](<https://devfeed.tech/tags/mastodon.md>), [rss](<https://devfeed.tech/tags/rss.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This opinion article argues that atproto has no equivalent of Mastodon instances. It distinguishes content hosting from aggregation and presents atproto as a different approach to decentralizing social networks, where applications project content rather than communities hosting users and their identities.

### Source excerpt

Like RSS and Google Reader.

## Introducing RSC Explorer

DevFeed: [Introducing RSC Explorer](<https://devfeed.tech/articles/introducing-rsc-explorer-36176.md>)

Original publisher: [Read original article](<https://overreacted.io/introducing-rsc-explorer/>)

Published: 2025-12-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Simulation](<https://devfeed.tech/topics/simulation.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [json](<https://devfeed.tech/tags/json.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [react](<https://devfeed.tech/tags/react.md>), [simulation](<https://devfeed.tech/tags/simulation.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

This article introduces RSC Explorer, a browser-based tool for examining how React Server Components serialize and deserialize React trees through the RSC protocol. It demonstrates JSON-like server stream data, client-side JSX reconstruction, and streaming behavior. The tool is a single-page application that runs locally in the browser and uses React's actual RSC protocol packages.

### Source excerpt

My new hobby project.

## Hire Me in Japan

DevFeed: [Hire Me in Japan](<https://devfeed.tech/articles/hire-me-in-japan-36167.md>)

Original publisher: [Read original article](<https://overreacted.io/hire-me-in-japan/>)

Published: 2025-11-11T00:00:00Z

Content type: article

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Job](<https://devfeed.tech/topics/job.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [React](<https://devfeed.tech/topics/react.md>), [React Native](<https://devfeed.tech/topics/react-native.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Bluesky](<https://devfeed.tech/topics/bluesky-social.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [japan](<https://devfeed.tech/tags/japan.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [new-job](<https://devfeed.tech/tags/new-job.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [react](<https://devfeed.tech/tags/react.md>), [react-native](<https://devfeed.tech/tags/react-native.md>)

### AI overview

Dan Abramov is seeking a software engineering role in Japan and a company able to sponsor a working visa. He summarizes his experience with JavaScript and TypeScript, React consulting, contributions to Lean, and work on the Bluesky client app in React Native.

### Source excerpt

I'm looking for a new job.

## A Reproducible Process for Fixing Bugs

DevFeed: [A Reproducible Process for Fixing Bugs](<https://devfeed.tech/articles/how-to-fix-any-bug-36173.md>)

Original publisher: [Read original article](<https://overreacted.io/how-to-fix-any-bug/>)

Published: 2025-10-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [bug](<https://devfeed.tech/topics/bug.md>), [React Router](<https://devfeed.tech/topics/react-router.md>), [React](<https://devfeed.tech/topics/react.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [Mocking](<https://devfeed.tech/topics/mocking.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [claude](<https://devfeed.tech/tags/claude.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mocking](<https://devfeed.tech/tags/mocking.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>)

### AI overview

The article describes debugging a web app where adding a React Router server call caused scrolling to jitter. It argues that reliable reproductions are essential because Claude and human engineers can propose incorrect fixes without a reproducible test.

### Source excerpt

The joys of vibecoding.

## How to Resolve AT Protocol URIs

DevFeed: [How to Resolve AT Protocol URIs](<https://devfeed.tech/articles/where-it-s-at-36207.md>)

Original publisher: [Read original article](<https://overreacted.io/where-its-at/>)

Author: The User As The Authority

Published: 2025-10-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [AT Protocol](<https://devfeed.tech/topics/atproto.md>), [JSON](<https://devfeed.tech/topics/json.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [client](<https://devfeed.tech/topics/client.md>)

Tags: [client](<https://devfeed.tech/tags/client.md>), [json](<https://devfeed.tech/tags/json.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [scheme](<https://devfeed.tech/tags/scheme.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

This tutorial explains how to resolve AT Protocol URIs to the JSON data they represent. It covers URI structure, handle-to-identity resolution, locating the current hosting server, and inspecting the resulting data with SDKs or client applications.

### Source excerpt

From handles to hosting.

## Open Social: How the AT Protocol Changes Social Data

DevFeed: [Open Social: How the AT Protocol Changes Social Data](<https://devfeed.tech/articles/open-social-36185.md>)

Original publisher: [Read original article](<https://overreacted.io/open-social/>)

Published: 2025-09-26T00:00:00Z

Content type: opinion

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [AT Protocol](<https://devfeed.tech/topics/atproto.md>), [Bluesky](<https://devfeed.tech/topics/bluesky-social.md>), [free software](<https://devfeed.tech/topics/free-software.md>), [data](<https://devfeed.tech/topics/data.md>), [API](<https://devfeed.tech/topics/api.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [data](<https://devfeed.tech/tags/data.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [open](<https://devfeed.tech/tags/open.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [social-media](<https://devfeed.tech/tags/social-media.md>)

### AI overview

This opinion article argues that open social could play a role for social applications similar to the role open source plays in software. It presents Bluesky's AT Protocol as a convincing, unfinished approach and explains how it changes the relationship between users, developers, products, and social data.

### Source excerpt

The protocol is the API.

## A Lean Syntax Primer

DevFeed: [A Lean Syntax Primer](<https://devfeed.tech/articles/a-lean-syntax-primer-36158.md>)

Original publisher: [Read original article](<https://overreacted.io/a-lean-syntax-primer/>)

Published: 2025-09-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Lean](<https://devfeed.tech/topics/lean.md>), [syntax](<https://devfeed.tech/topics/syntax.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [learn](<https://devfeed.tech/tags/learn.md>), [programming](<https://devfeed.tech/tags/programming.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [types](<https://devfeed.tech/tags/types.md>)

### AI overview

An opinionated introduction to Lean syntax covering definitions, assignment and comparison syntax, type inference, explicit type annotations, natural numbers, integers, and running code in the online playground or VS Code. It also introduces the distinction between executing Lean code and proving facts about it.

### Source excerpt

Programming with proofs.

## How Lean Propositions Differ from TypeScript Booleans

DevFeed: [How Lean Propositions Differ from TypeScript Booleans](<https://devfeed.tech/articles/beyond-booleans-36162.md>)

Original publisher: [Read original article](<https://overreacted.io/beyond-booleans/>)

Published: 2025-08-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Lean](<https://devfeed.tech/topics/lean.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Code](<https://devfeed.tech/topics/code.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>)

Tags: [mathematics](<https://devfeed.tech/tags/mathematics.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [types](<https://devfeed.tech/tags/types.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This tutorial compares logical expressions in TypeScript with propositions in Lean. It explains that Lean treats propositions as distinct values and types, and that proving a proposition requires supplying a proof rather than simply computing a Boolean result.

### Source excerpt

What is the type of 2 + 2 = 4?

## A Taste of Lean: Formalizing Mathematics as Code

DevFeed: [A Taste of Lean: Formalizing Mathematics as Code](<https://devfeed.tech/articles/the-math-is-haunted-36199.md>)

Original publisher: [Read original article](<https://overreacted.io/the-math-is-haunted/>)

Published: 2025-07-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Lean](<https://devfeed.tech/topics/lean.md>), [math](<https://devfeed.tech/topics/math.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [code](<https://devfeed.tech/tags/code.md>), [math](<https://devfeed.tech/tags/math.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

This tutorial introduces Lean, a programming language designed to formalize mathematics. It explains how Lean represents mathematical structures, theorems, and proofs as code, then uses a small equality theorem to demonstrate tactic states, incomplete proofs, universal proof suppression, and reflexivity.

### Source excerpt

A taste of Lean.

## I'm Doing a Little Consulting

DevFeed: [I'm Doing a Little Consulting](<https://devfeed.tech/articles/i-m-doing-a-little-consulting-36174.md>)

Original publisher: [Read original article](<https://overreacted.io/im-doing-a-little-consulting/>)

Published: 2025-06-11T00:00:00Z

Content type: article

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [React](<https://devfeed.tech/topics/react.md>), [Expo](<https://devfeed.tech/topics/expo.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [consulting](<https://devfeed.tech/tags/consulting.md>), [personal](<https://devfeed.tech/tags/personal.md>), [post](<https://devfeed.tech/tags/post.md>), [react](<https://devfeed.tech/tags/react.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A personal update announcing that the author is offering paid, one-to-one consulting on UI engineering, with expertise in React and React Native. The author discusses architectural and performance challenges, technical issues, and broader product and infrastructure development.

### Source excerpt

Personal update post.

## Suppressions of Suppressions

DevFeed: [Suppressions of Suppressions](<https://devfeed.tech/articles/suppressions-of-suppressions-36196.md>)

Original publisher: [Read original article](<https://overreacted.io/suppressions-of-suppressions/>)

Published: 2025-06-11T00:00:00Z

Content type: article

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [ci](<https://devfeed.tech/topics/ci.md>), [syntax](<https://devfeed.tech/topics/syntax.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [code](<https://devfeed.tech/tags/code.md>), [false-positives](<https://devfeed.tech/tags/false-positives.md>), [lint](<https://devfeed.tech/tags/lint.md>), [linter](<https://devfeed.tech/tags/linter.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rules](<https://devfeed.tech/tags/rules.md>)

### AI overview

The article examines lint-rule suppressions: they can handle false positives and gradual rule adoption, but suppressing certain rules may cause serious problems. It proposes a lint rule that prevents suppression of selected other rules and notes that this protection can itself be suppressed.

### Source excerpt

I heard you like linting.

## How Imports Work in RSC

DevFeed: [How Imports Work in RSC](<https://devfeed.tech/articles/how-imports-work-in-rsc-36172.md>)

Original publisher: [Read original article](<https://overreacted.io/how-imports-work-in-rsc/>)

Published: 2025-06-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [modules](<https://devfeed.tech/topics/modules.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [components](<https://devfeed.tech/tags/components.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [module](<https://devfeed.tech/tags/module.md>)

### AI overview

This deep dive explains how JavaScript module systems split code between frontend and backend environments, and how React Server Components use import-related semantics to support applications spanning both sides.

### Source excerpt

A layered module system.

## RSC for LISP Developers

DevFeed: [RSC for LISP Developers](<https://devfeed.tech/articles/rsc-for-lisp-developers-36194.md>)

Original publisher: [Read original article](<https://overreacted.io/rsc-for-lisp-developers/>)

Published: 2025-06-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Lisp](<https://devfeed.tech/topics/lisp.md>), [modules](<https://devfeed.tech/topics/modules.md>), [React](<https://devfeed.tech/topics/react.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [client](<https://devfeed.tech/topics/client.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [client](<https://devfeed.tech/tags/client.md>), [code](<https://devfeed.tech/tags/code.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [modules](<https://devfeed.tech/tags/modules.md>), [react](<https://devfeed.tech/tags/react.md>)

### AI overview

This article explains React Server Components to LISP developers by comparing RSC's treatment of client modules as deferred code with LISP quoting, where code can be treated as data. It describes how bundling and client-side evaluation enable modular behavior across server and client stages.

### Source excerpt

Quoting for modules.

## Progressive JSON

DevFeed: [Progressive JSON](<https://devfeed.tech/articles/progressive-json-36190.md>)

Original publisher: [Read original article](<https://overreacted.io/progressive-json/>)

Published: 2025-05-31T00:00:00Z

Content type: article

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [JSON](<https://devfeed.tech/topics/json.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [client](<https://devfeed.tech/topics/client.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [application](<https://devfeed.tech/tags/application.md>), [client](<https://devfeed.tech/tags/client.md>), [json](<https://devfeed.tech/tags/json.md>), [server](<https://devfeed.tech/tags/server.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

The article explains why conventional JSON transfer requires clients to wait for the complete payload before parsing and processing it. It examines streaming JSON parsers, noting that incomplete object trees create missing fields and uncertain completeness, which makes the resulting data difficult to use in application logic.

### Source excerpt

Why streaming isn't enough.

## Why Does RSC Integrate with a Bundler?

DevFeed: [Why Does RSC Integrate with a Bundler?](<https://devfeed.tech/articles/why-does-rsc-integrate-with-a-bundler-36211.md>)

Original publisher: [Read original article](<https://overreacted.io/why-does-rsc-integrate-with-a-bundler/>)

Published: 2025-05-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>), [Vite](<https://devfeed.tech/topics/vite.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [integration](<https://devfeed.tech/tags/integration.md>), [modules](<https://devfeed.tech/tags/modules.md>), [programming](<https://devfeed.tech/tags/programming.md>), [react](<https://devfeed.tech/tags/react.md>), [vite](<https://devfeed.tech/tags/vite.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

The article explains why React Server Components (RSC) integrate with JavaScript bundlers. Because RSC sends references to executable module code as well as serialized data, bundlers help avoid inefficient network waterfalls by discovering imports and producing bundle chunks. Bundler-less ESM is possible but described as inefficient without further optimization, while realistic integrations are bundler-specific.

### Source excerpt

One does not simply serialize a module.

## One Roundtrip Per Navigation

DevFeed: [One Roundtrip Per Navigation](<https://devfeed.tech/articles/one-roundtrip-per-navigation-36184.md>)

Original publisher: [Read original article](<https://overreacted.io/one-roundtrip-per-navigation/>)

Published: 2025-05-29T00:00:00Z

Content type: article

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [HTML](<https://devfeed.tech/topics/html.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [API](<https://devfeed.tech/topics/api.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [browser](<https://devfeed.tech/tags/browser.md>), [client](<https://devfeed.tech/tags/client.md>), [html](<https://devfeed.tech/tags/html.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>), [server](<https://devfeed.tech/tags/server.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

The article examines how many network roundtrips navigation should require. It contrasts traditional HTML applications, where the server returns the page and its data in one response, with client-side applications that may need multiple API fetches.

### Source excerpt

What do HTML, GraphQL, and RSC have in common?

## Hybrid Frameworks Can Serve Static and Server-Rendered Pages

DevFeed: [Hybrid Frameworks Can Serve Static and Server-Rendered Pages](<https://devfeed.tech/articles/static-as-a-server-36195.md>)

Original publisher: [Read original article](<https://overreacted.io/static-as-a-server/>)

Published: 2025-05-08T00:00:00Z

Content type: opinion

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Framework](<https://devfeed.tech/topics/framework.md>), [React](<https://devfeed.tech/topics/react.md>), [Astro](<https://devfeed.tech/topics/astro.md>), [Cloudflare](<https://devfeed.tech/topics/cloudflare.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [Jekyll](<https://devfeed.tech/topics/jekyll.md>)

Tags: [cdn](<https://devfeed.tech/tags/cdn.md>), [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [flexibility](<https://devfeed.tech/tags/flexibility.md>), [fragmentation](<https://devfeed.tech/tags/fragmentation.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [jekyll](<https://devfeed.tech/tags/jekyll.md>), [static](<https://devfeed.tech/tags/static.md>)

### AI overview

The article argues that hybrid frameworks, which support both server and static output, can reduce tooling fragmentation and give developers more flexibility. It explains that static pages can be generated by running a server framework during the build process and storing the resulting responses.

### Source excerpt

You wouldn't download a site.

## RSC for Astro Developers

DevFeed: [RSC for Astro Developers](<https://devfeed.tech/articles/rsc-for-astro-developers-36193.md>)

Original publisher: [Read original article](<https://overreacted.io/rsc-for-astro-developers/>)

Published: 2025-05-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [Astro](<https://devfeed.tech/topics/astro.md>), [React](<https://devfeed.tech/topics/react.md>), [React Component](<https://devfeed.tech/topics/react-component.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [astro](<https://devfeed.tech/tags/astro.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [react](<https://devfeed.tech/tags/react.md>), [react-component](<https://devfeed.tech/tags/react-component.md>)

### AI overview

This tutorial compares Astro's server-rendered Astro Components and interactive Client Islands with React Server Components and Client Components. It explains their similar mental models and highlights differences in syntax, file structure, props, templates, and the use of directives to separate server and client code.

### Source excerpt

Islands, but make it fractal.

## Functional HTML

DevFeed: [Functional HTML](<https://devfeed.tech/articles/functional-html-36165.md>)

Original publisher: [Read original article](<https://overreacted.io/functional-html/>)

Published: 2025-05-02T00:00:00Z

Content type: opinion

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [HTML](<https://devfeed.tech/topics/html.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [functional](<https://devfeed.tech/tags/functional.md>), [html](<https://devfeed.tech/tags/html.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [json](<https://devfeed.tech/tags/json.md>)

### AI overview

The article reimagines HTML as a functional, serialized format. It proposes defining custom tags with JavaScript functions, passing attributes and objects, and serializing the resulting structure as a JSON tree that can later be converted into conventional HTML. It also considers asynchronously reading data from the filesystem during serialization.

### Source excerpt

Tags on both sides.

## What Does "use client" Do?

DevFeed: [What Does "use client" Do?](<https://devfeed.tech/articles/what-does-use-client-do-36205.md>)

Original publisher: [Read original article](<https://overreacted.io/what-does-use-client-do/>)

Published: 2025-04-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [client](<https://devfeed.tech/topics/client.md>), [servers](<https://devfeed.tech/topics/servers.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Code](<https://devfeed.tech/topics/code.md>), [Front end](<https://devfeed.tech/topics/frontend.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [client](<https://devfeed.tech/tags/client.md>), [code](<https://devfeed.tech/tags/code.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [import](<https://devfeed.tech/tags/import.md>), [react](<https://devfeed.tech/tags/react.md>), [server](<https://devfeed.tech/tags/server.md>)

### AI overview

This tutorial explains what the React "use client" directive does. It presents client/server directives as a way to express boundaries within the module system and discusses how code can span separate machines despite network and serialization constraints.

### Source excerpt

Two worlds, two doors.

## Impossible Components

DevFeed: [Impossible Components](<https://devfeed.tech/articles/impossible-components-36175.md>)

Original publisher: [Read original article](<https://overreacted.io/impossible-components/>)

Published: 2025-04-22T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [components](<https://devfeed.tech/tags/components.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [react](<https://devfeed.tech/tags/react.md>), [stack](<https://devfeed.tech/tags/stack.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

This tutorial explains how React Server Components can compose backend and frontend code into a single component abstraction. It demonstrates top-down data flow from backend-loaded data to interactive frontend state, including independently rendered and editable instances.

### Source excerpt

Composing across the stack.

## JSX Over The Wire

DevFeed: [JSX Over The Wire](<https://devfeed.tech/articles/jsx-over-the-wire-36177.md>)

Original publisher: [Read original article](<https://overreacted.io/jsx-over-the-wire/>)

Published: 2025-04-16T00:00:00Z

Content type: article

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [API](<https://devfeed.tech/topics/api.md>), [React Component](<https://devfeed.tech/topics/react-component.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [database](<https://devfeed.tech/tags/database.md>), [react](<https://devfeed.tech/tags/react.md>), [react-component](<https://devfeed.tech/tags/react-component.md>), [ui](<https://devfeed.tech/tags/ui.md>), [viewmodel](<https://devfeed.tech/tags/viewmodel.md>)

### AI overview

The article explores an inside-out approach in which an API returns React components or JSX rather than only JSON data. It then examines the difference between raw Models stored in databases and personalized, aggregated ViewModels consumed by a UI.

### Source excerpt

Turning your API inside-out.

## React for Two Computers

DevFeed: [React for Two Computers](<https://devfeed.tech/articles/react-for-two-computers-36192.md>)

Original publisher: [Read original article](<https://overreacted.io/react-for-two-computers/>)

Published: 2025-04-09T00:00:00Z

Content type: article

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [haskell](<https://devfeed.tech/tags/haskell.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [react](<https://devfeed.tech/tags/react.md>)

### AI overview

A set of notes complementing a React Conf talk about React Server Components. The article explores the conceptual and behavioral differences between tags and function calls, including how naming and passed information shape developers' expectations across languages.

### Source excerpt

Two things, one origin.

## The Two Reacts

DevFeed: [The Two Reacts](<https://devfeed.tech/articles/the-two-reacts-36200.md>)

Original publisher: [Read original article](<https://overreacted.io/the-two-reacts/>)

Published: 2024-01-04T00:00:00Z

Content type: article

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Code](<https://devfeed.tech/topics/code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [client](<https://devfeed.tech/topics/client.md>), [Server](<https://devfeed.tech/topics/server.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [client](<https://devfeed.tech/tags/client.md>), [code](<https://devfeed.tech/tags/code.md>), [programming](<https://devfeed.tech/tags/programming.md>), [react](<https://devfeed.tech/tags/react.md>), [server](<https://devfeed.tech/tags/server.md>), [ui](<https://devfeed.tech/tags/ui.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This article explains how React components can run on either the client or the server. It uses a counter example to show why client-side execution enables immediate interaction through client state, while server-rendered UI may introduce a delay.

### Source excerpt

UI = f(data)(state)

[Next page](<https://devfeed.tech/sources/dan-abramov.md?cursor=WyIyMDI0LTAxLTA0VDAwOjAwOjAwKzAwOjAwIiwgIjJhYTk3YmY2LWJjYmEtNDBiNy05M2Q5LTU2NTNiOWZkNzVlMyJd>)