Real-time Chat
An example of building a simple in-memory chat using a hydrated island and the built-in WebSocket support in Bun. The server stores a bounded message history and replays it to new connections; ws.publish() broadcasts each message to all clients. Messages over 4 KB are rejected, frames over 8 KB are dropped by Bun before they are buffered, and a per-client window closes anyone sending more than 20 messages per 10 seconds. Open this page in two tabs to see them sync in real time.
Chat
<script>
import ChatWidget from './ChatWidget.svelte';
</script>
<ChatWidget mochi:hydrate />
More demos
Hacker News Clone A full Hacker News reader built on Mochi — SSR pages, hydrated islands, real API. Cache Events How cache events work — subscribe to MochiCache lifecycle events (hit, miss, set, evict) through mochiEvents for observability. Data Loading How server-side data loading works — fetch on the server, cache with MochiCache, and render at request time.