Bytecrowds is a self-hostable, serverless code sharing platform built on a Next.js frontend, y.js real-time collaboration, and Cloudflare Workers analytics, designed to let programmers share code snippets with peers in seconds.
What is Bytecrowds?
Bytecrowds is an open-source project that runs a minimalist, real-time collaborative code sharing platform. The unified repository bundles the Next.js frontend and the analytics worker source; you clone it, set environment variables, and deploy the platform on Vercel and Cloudflare. Data is stored in Upstash serverless Redis as hashes and sorted sets, and the editor is powered by react-codemirror synchronized through y.js and an Ably provider. The project took 1st place at InfoEducatie 2022 in the web section.
Key Features
- Real-time collaborative editor — react-codemirror 6 with the y.js-codemirror adapter binds the editor to a SyncedStore document, and a custom Ably provider syncs changes across all connected clients.
- Serverless-only infrastructure — Vercel serverless functions handle database reads and writes, Cloudflare Workers run the analytics engine, and Upstash provides serverless Redis with per-request pricing that scales to zero.
- Built-in privacy-aware analytics — A Cloudflare Worker receives the page path on first render and computes daily and general stats: hits, unique visitors, countries, continents, and pages, using SHA-256 hashes of visitor IPs that are regularly deleted.
- Email-based access control — A bytecrowd can be protected by a list of authorized emails managed through auth.js; once set, the list can only be changed directly in the database.
- Self-hostable with clear setup — The README documents cloning the frontend and analytics repositories, creating .env files, and optionally deploying a local analytics worker with wrangler.
- Monitoring with LogRocket — LogRocket is integrated for session replay and error tracking.
- Award-winning project — Winner of 1st place at InfoEducatie 2022 in the web section.
Who is it for?
Bytecrowds is for developers who want to run their own lightweight code sharing service instead of relying on a closed platform. It is also a useful reference for teams building real-time CRDT-based editors or serverless applications, since it demonstrates the full integration of y.js, Ably, Cloudflare Workers, and Upstash. Open-source contributors can help with the open issue about dependency upgrades that currently keeps the public site unavailable.
What can you do with Bytecrowds?
- Developer teams: spin up a private sharing platform and create password-free bytecrowds limited by authorized email addresses.
- Pair programmers: share a live code snippet and watch each other's edits in real time through the y.js collaboration layer.
- Cloud enthusiasts: deploy the project to Vercel and Cloudflare Workers and inspect how edge functions and serverless Redis handle state and analytics.
How does Bytecrowds work?
The editor is react-codemirror wrapped with y.js-codemirror bindings, and the document is stored in a SyncedStore object. An Ably provider propagates updates between clients, so every keystroke is synced in real time. Separately, the analytics worker receives the page path on the first render and updates Redis hashes for daily stats and sorted sets for general stats, while temporarily holding SHA-256 IP hashes to count unique visitors.
FAQ
Is Bytecrowds available online right now?
No. The public deployment is temporarily unavailable because errors occurred while upgrading dependencies, and the maintainers are asking for help to fix it.
What technology does Bytecrowds use?
The frontend uses Next.js, Chakra UI, SyncedStore, y.js, and react-codemirror. The backend relies on Vercel serverless functions, Cloudflare Workers, Ably for realtime sync, Upstash for serverless Redis, and LogRocket for monitoring.
How do I run Bytecrowds locally?
Clone the frontend and analytics repositories, create the .env files with the required variables, and optionally install wrangler to run a local version of the analytics worker.
How does Bytecrowds protect private snippets?
You can set a list of authorized emails for any bytecrowd. Authentication is handled by auth.js, and once the list is saved, it can only be changed by editing the database directly.







