React 19 in ONE sites

SkillDev tools

React 19 conventions in ONE sites — client islands, @oneie/react hooks, no useEffect for ONE data. Invoke when editing .tsx components.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the React 19 in ONE sites skill

What this skill tells your AI

The instructions your AI receives, as published by one-ie/one in .claude/skills/react19/SKILL.md and read by ahel’s review.

Islands, not pages

React components are islands. A .tsx only runs in the browser when an .astro mounts it with a directive:

<Counter client:load />     <!-- hydrate immediately -->
<Chart client:visible />    <!-- hydrate when scrolled into view -->

A .tsx with no client:* directive renders to static HTML — no interactivity.

Use @oneie/react hooks for ONE data

import { useSignal, useMark } from '@oneie/react'

function Likes({ pathId }: { pathId: string }) {
  const strength = useSignal(pathId, 'strength')
  const mark = useMark(pathId)
  return <button onClick={() => mark()}>{strength} ♥</button>
}

Do not useEffect(() => fetch(...)) for ONE data — the hooks own subscription + the closed loop (mark/warn).

React 19 specifics

  • Use Actions / use() / transitions for async UI; avoid manual loading-state useState ladders.
  • Props named children are reserved slot content — never use children as a data prop on a client:only island (it silently renders nothing).

Don't

  • Don't fetch ONE data in useEffect — use @oneie/react hooks.
  • Don't ship a .tsx expecting interactivity without a client:* directive.

Signals

GitHub stars
129
Forks
26
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
react19
Source
github.com/one-ie/one