React 19 SSR

Server-rendered by Esmx on Vite, then hydrated by React 19 in place. The counter below works after hydration.

import { useState } from 'react'

export default function HelloWorld() {
  const [count, setCount] = useState(0)
  return (
    <>
      <p>Count: {count}</p>
      <button onClick={() => setCount(c => c + 1)}>+</button>
      <button onClick={() => setCount(c => c - 1)}>−</button>
    </>
  )
}
Count
0
React 19Vite 8SSR

source · examples/ssr-vite-react/src/app.tsx