The real-time infrastructure at the edge.
bun install @erebus-sh/sdk@latest
Erebus is real-time infrastructure at the edge. It's a managed service, not a framework — you don't stitch together pieces, we give you the building blocks.
Erebus provides simple primitives and abstractions on top of Cloudflare Durable Objects, making it cheap, fast, and globally distributed by default. You focus on building your app; we handle the real-time plumbing.
Built with Bun, TypeScript, and React, Erebus is designed to feel lightweight, modern, and developer-friendly. This is a community-driven project, and it will keep improving as more developers use it, break it, and push it forward.
Most real-time platforms today fall into one of these problems:
- Too expensive | pricing that makes it hard to even start small.
- Too complex | you don't really know what's happening under the hood.
- Too outdated | they don't fit modern development practices, or expect you to build too much yourself.
Erebus is built to avoid all three.
| Package | Description | README |
|---|---|---|
apps/web |
Next.js dashboard + Convex backend | README |
apps/docs |
Fumadocs documentation site | README |
apps/service |
Cloudflare Workers edge gateway | README |
packages/erebus-sdk |
Published SDK (@erebus-sh/sdk) |
README |
packages/schemas |
Shared Zod validation schemas | README |
packages/shared |
Shared utilities | README |
packages/eslint-config |
Shared ESLint flat config | README |
packages/typescript-config |
Shared tsconfig base configs | — |
workers/roadmap |
Roadmap Cloudflare Worker | README |
- Bun v1.2.19+ (see
packageManagerin package.json) - Node.js >= 18
- A Convex account (for apps/web)
- A Cloudflare account (for apps/service and workers)
# Install dependencies
bun install
# Copy environment files and fill in values
cp apps/web/.env.example apps/web/.env.local
cp apps/service/.env.example apps/service/.dev.vars
cp workers/roadmap/.env.example workers/roadmap/.dev.vars
# Start all services in development mode
bun run devEach app has its own .env.example file documenting all required and optional variables:
apps/web/.env.example— Convex, JWT keys, PostHog, Polarapps/service/.env.example— Redis, webhooks, API keysworkers/roadmap/.env.example— GitHub token
| Script | Description |
|---|---|
bun run dev |
Start all services in development mode |
bun run build |
Build all packages via Turborepo |
bun run lint |
Lint all packages |
bun run format |
Format all files with Prettier |
bun run check-types |
Type-check all packages |
See the examples/ directory for usage examples:
- chat-app — Next.js chat application (port 3002)
- chat-ts — Plain TypeScript chat client
- chat-ts-typed — Typed TypeScript chat client
- chat-tui — Terminal UI chat client
Erebus is a free and open-source project, licensed under the AGPL. You're free to use it, self-host it, or build on top of it.
You can support the project by:
See CONTRIBUTING.md for development workflow and coding guidelines.
If you discover a security vulnerability in Erebus, please report it by emailing security@erebus.sh.
All reports will be reviewed quickly, and we'll make sure to credit you for your discovery.
