Build on the supported package contract
Use absolutejs-island-example through its supported public entry points.
absolutejs-island-examplev0.0.1betaDev ToolsAn example project demonstrating the AbsoluteJS islands architecture — mix React, Svelte, Vue, Angular, HTML, and HTMX components on the same page with shared state across frameworks.
# Private workspace project: ~/abs/examples/islandAn example project demonstrating the AbsoluteJS islands architecture — mix React, Svelte, Vue, Angular, HTML, and HTMX components on the same page with shared state across frameworks.
Islands architecture renders most of the page as static HTML on the server and selectively hydrates interactive "islands" on the client. Each island is a self-contained component that can be written in any supported framework and hydrated independently using one of three strategies:
hydrate="load" — Hydrate immediately when the page loads (eager).
hydrate="idle" — Hydrate when the browser is idle via requestIdleCallback.
hydrate="visible" — Hydrate when the island scrolls into the viewport via IntersectionObserver.
Multi-framework islands — React, Svelte, Vue, and Angular counter components all coexist on the same page, each hydrated independently.
Shared cross-framework state — A shared counter store (counterIslandStore) built with createIslandStore allows all islands, regardless of framework, to read and write shared state.
Typed islands — A central island registry provides full TypeScript type inference for framework, component name, and props when using TypedReactIsland, TypedSvelteIsland, TypedVueIsland, or TypedAngularIsland.
Loose islands — The untyped <Island> primitive allows ad-hoc usage without the registry for quick prototyping.
Multiple host pages — The same islands render from host pages written in React (/), Vue (/vue), Svelte (/svelte), Angular (/angular), plain HTML (/html), and HTMX (/htmx).
Elysia server — The backend uses Elysia with the AbsoluteJS plugin for SSR, asset serving, and routing.
Bun (v1.1+)
The dev server will start and print the local URL (default http://localhost:3000).
Command — Description
bun run dev — Start the development server with HMR
bun run start — Start the production server
bun run lint — Run ESLint
bun run format — Format code with Prettier
bun run typecheck — Run type checking across all frameworks
1. Define a shared store
2. Register island components
3. Use islands in any host page
Every framework has its own typed island helper (TypedReactIsland, TypedSvelteIsland, etc.) so props are fully type-checked regardless of which framework the host page is written in.
Path — Host Framework — Description
/ — React — All island types and hydration modes
/vue — Vue — Vue host page with mixed islands
/svelte — Svelte — Svelte host page with mixed islands
/angular — Angular — Angular host page with mixed islands
/html — HTML — Plain HTML host page
/htmx — HTMX — HTMX host page
Outcomes
Use absolutejs-island-example through its supported public entry points.
Hardening checklist
Follow in order
Working example for Getting Started.
# Clone the repository
git clone https://github.com/absolutejs/examples.git
cd examples/island
# Install dependencies
bun install
# Start the dev server
bun run devWorking example for Project Structure.
src/
├── backend/
│ ├── assets/ # Static assets (icons, images, SVGs)
│ ├── plugins/
│ │ └── pagesPlugin.ts # Route definitions for each host page
│ ├── server.ts # Elysia server setup
│ └── vueImporter.ts # Vue SSR import helper
└── frontend/
├── angular/ # Angular island components and host page
├── client/
│ └── bootstrap.ts # Client-side island hydration bootstrap
├── html/ # Plain HTML host page
├── htmx/ # HTMX host page
├── islands/
│ ├── counterStore.ts # Shared cross-framework state store
│ └── registry.ts # Central island registry (type-safe)
├── react/ # React island components and host page
├── styles/ # Global styles
├── svelte/ # Svelte island components and host page
└── vue/ # Vue island components and host pageScripts declared by this package manifest.