## Demo: nested-islands
### NestedIslands.svelte
```svelte
The islands below are delayed on purpose to show the loading state.
1. mochi:defer server island with mochi:hydrate components inside
Loading server island
2. mochi:defer server island nesting two more islands
Loading server island
```
### DeferWithHydrators.svelte
```svelte
Server island (mochi:defer), rendered at {renderedAt}.
It contains three independently hydrated counters — click them:
```
### Counter.svelte
```svelte
```
### DeferNest.svelte
```svelte
Outer server island (mochi:defer). It nests two more islands:
Loading inner server island
Loading hydrated server island
```
### InnerServer.svelte
```svelte
{label} (mochi:defer)
Random number from the server: {randomNumber}
$props.id(): {islandId}
```
### HydratedServer.svelte
```svelte
{label} (mochi:defer mochi:hydrate)
$props.id(): {islandId}
```
### routes.ts
```ts
import { Mochi } from 'mochi-framework';
import type { MochiRouteValue } from 'mochi-framework';
export const routes: Record = {
'/demos/nested-islands': Mochi.page('./src/demos/nested-islands/NestedIslands.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');
```