# Live Mercury, islands on the BEAM — Mercury LMS > Mercury hyperscript components ("islands") inside Phoenix and LiveView. Server: `LiveMercury.mercury/1` (echo/apps/live_mercury). Browser: `@fiberfx/live-mercury` 4.0.0, peer `@fiberfx/hyperscript`. EDU's islands are built by `mx build --lib` with no Node. ## Read this when You put a Mercury component on a page Phoenix renders, wire it to a LiveView, or build its bundle. This is the course's landing; LM0–LM5 follow, and LM6 is planned. ## The contract - An island is one element with `phx-update="ignore"` and a `phx-hook`; a client hook mounts a hyperscript component into it. - Server, LiveView host: `` renders `phx-hook="MercuryHook"`, `data-name="X"`, `data-props`, `data-props-diff`, `data-streams-diff`, `data-slots`, `data-ssr`, `data-use-diff`. - Browser: `getHooks({ X })` returns `{ MercuryHook }` for `new LiveSocket(path, Socket, { hooks })`. The server's `name` must equal the map's key. - EDU host: `<.island id bundle props>` (`EchoEduWeb.Island`) renders `phx-hook="CourseIsland"`, `data-bundle`, and a `