Dygoo
A realtime chat experiment — a static Nuxt frontend paired with a separate Express/Socket.IO server for room-based messaging and presence.
- Stack
- Nuxt · Vue · Node.js · Express · Socket.IO
- Category
- Realtime · Experiment
What shipped
- A static Nuxt 2 frontend (SSR disabled) with cookie-based username and room state driving the chat interface.
- A companion Express/Socket.IO server handling room joins, user presence, join/leave lifecycle, and message broadcasts.
- Deployed as a live demo on Netlify.

Dygoo is a realtime chat experiment built as two deliberately separated parts: a static Vue frontend and a standalone Node.js server. It was a playground for the parts of web engineering that don't live in a request-response cycle.
What it does
The frontend is a Nuxt 2 app built for static output with SSR disabled — the chat UI holds its username and room in cookies, with the chat and room components structured as Vue components. The companion server (Express + Socket.IO) tracks rooms and their users, broadcasts messages, and manages join and leave lifecycle, keeping users in an in-memory registry for presence.
Engineering notes
- Frontend and server split by contract. The client is static; the server is a separate deployment. Rooms and broadcasts cross the boundary over WebSockets.
- Presence is realtime state. Joins, leaves, and disconnects are explicitly handled by the server, not assumed.
- Cookie-based client state. The UI keeps enough state client-side to stay static-friendly.
Place in the story
A 2020 experiment that connected an interest in interactive web systems — event-driven thinking that sits under later production work on asynchronous and message-driven backends.