| title | zzyix |
|---|---|
| description | A shared, realtime mosaic world where people place tiles together on one continuous quilt. |
zzyix is a collaborative mosaic canvas. Pick a shape, color, and material, then place tiles alongside other people in a shared world that wraps continuously at its edges.
The project is also a practical space for learning agent-assisted software development by building and shipping a real product in small increments.
- Place squares, triangles, rectangles, and L-shaped tiles
- Choose from several palettes and material styles
- Build freely or use optional repeating grid patterns
- Pan and zoom through a continuous wrapped quilt
- See other collaborators and distinguish their tile ownership
- Return to a patch you own when you sign in
You need Node.js 24+, npm 11+, Docker, and Docker Compose.
npm install
docker compose up -d postgres
npm run dev:test-authOpen http://127.0.0.1:4173, choose Alice or Bob, and sign in. Use a second browser profile to try realtime collaboration as the other user.
The local identity provider and mutation controls are restricted to test mode and loopback services. They cannot be enabled in production.
The experience is built from three main pieces:
- React and Three.js render the quilt and editing tools in the browser
- Express and Socket.IO authorize edits and synchronize collaborators
- PostgreSQL stores quilts, owned patches, tiles, and durable operation history
The quilt is finite in storage but wraps at its edges, so navigation feels continuous without duplicating persisted tiles.
For a visual explanation of the data model, see Canonical quilt data storage.
- Client guide: UI, controls, runtime configuration, and client tests
- Server guide: API, authentication, deployment, and migration operations
- Architecture decisions: Product and engineering decisions with their tradeoffs
- Contributing guide: Development workflow and contribution expectations
- Security policy: Reporting security issues
| Command | Purpose |
|---|---|
npm run dev:test-auth |
Run the local app with test identities |
npm run dev |
Run the standard client and server development processes |
npm test |
Run all workspace tests |
npm run build |
Build all workspaces |
npm run lint |
Lint all workspaces |
npm run test:e2e |
Run the Playwright end-to-end suite |
zzyix is an active learning project. Expect experiments, evolving architecture, and occasional rough edges. The repository uses Conventional Commits and checks builds, tests, and commit messages in CI.