This monorepo contains the Zustand Multiplayer middleware and related packages. Zustand Multiplayer enables real-time synchronization of Zustand stores across multiple clients without requiring you to set up WebSocket servers or handle complex synchronization logic.
This monorepo is organized using pnpm workspaces and Turborepo.
| Package | Version | Description |
|---|---|---|
| @hpkv/zustand-multiplayer | Real-time multiplayer middleware for Zustand |
| Package | Description |
|---|---|
| @repo/eslint-config | Shared ESLint configurations |
| @repo/typescript-config | Shared TypeScript configurations |
Explore our example applications to see Zustand Multiplayer in action:
| Example | Description | Next.js | React | TypeScript | JavaScript | Vite | Express |
|---|---|---|---|---|---|---|---|
| Next.js Chat App | Real-time chat application with message synchronization and user management | ✅ | ✅ | ✅ | |||
| JavaScript Chat App | Framework-free vanilla JavaScript chat with Vite development setup | ✅ | ✅ | ✅ | |||
| Next.js Collaborative Todo | Full-stack todo application with real-time task synchronization | ✅ | ✅ | ✅ | |||
| JavaScript Collaborative Todo | Vanilla JavaScript todo app with minimal Express.js backend | ✅ | ✅ | ||||
| Next.js Tic-Tac-Toe Game | Multiplayer tic-tac-toe game with live scoreboard and turn management | ✅ | ✅ | ✅ | |||
| Next.js Collaborative Drawing | Real-time collaborative drawing canvas with live cursors and synchronized strokes | ✅ | ✅ | ✅ | |||
| React Live Cursors | Real-time collaborative cursor tracking | ✅ | ✅ | ✅ | ✅ | ||
| JavaScript Live Cursors | Vanilla JavaScript live cursor tracking with real-time synchronization | ✅ | ✅ | ✅ | |||
| Next.js Collaborative Spreadsheet | Real-time collaborative spreadsheet with formulas, formatting, and multi-user editing | ✅ | ✅ | ✅ |
We welcome contributions from the community! Whether you're fixing bugs, adding features, creating examples, or improving documentation, your help makes Zustand Multiplayer better for everyone.
- Fork & Clone the repository
- Install dependencies:
pnpm install - Build the core package:
pnpm turbo build --filter=@hpkv/zustand-multiplayer - Make your changes following our guidelines
- Test thoroughly:
pnpm turbo test lint type-check - Submit a Pull Request
- 🐛 Report bugs or suggest features via GitHub Issues
- 💻 Submit code improvements, bug fixes, or new features
- 📚 Add examples showcasing new use cases or frameworks
- 📖 Improve documentation and help others get started
- 🎥 Create tutorials or blog posts about the library
- 💬 Help others in GitHub Discussions
For detailed contribution guidelines, development setup, code standards, and testing procedures, please see our Contributing Guide.
- Documentation: Full Documentation
- Contributing: Contributing Guide
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@hpkv.io
