## Demo: is-hydratable ### IsHydratable.svelte ```svelte

mochi:hydrate

The island root seeds the whole subtree: every depth reports true.

Plain SSR

The same tree without a directive never hydrates: every depth reports false.

mochi:defer

A pure server island is fetched as HTML and never hydrates, so it also reports false — deferred is not hydrated.

mochi:defer mochi:hydrate

An also-hydrated server island takes over after the fetch, so every depth reports true.

``` ### HydrationProbe.svelte ```svelte
Depth {depth} isHydratable()
{String(hydratable)}
{#if depth < max} {/if}
``` ### routes.ts ```ts import { Mochi } from 'mochi-framework'; import type { MochiRouteValue } from 'mochi-framework'; export const routes: Record = { '/demos/is-hydratable': Mochi.page('./src/demos/is-hydratable/IsHydratable.svelte'), }; ``` ### index.ts ```ts import { Mochi, logger } from 'mochi-framework'; import { routes } from './routes'; await Mochi.serve({ port: 3333, development: process.env.MODE === 'development', routes, }); logger.info('Server running at http://localhost:3333'); ```