Skip to content

erebus-sh/erebus

Erebus

Erebus

The real-time infrastructure at the edge.

bun install @erebus-sh/sdk@latest

What is this?

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.

Why Erebus

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.

Packages

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

Getting Started

Prerequisites

  • Bun v1.2.19+ (see packageManager in package.json)
  • Node.js >= 18
  • A Convex account (for apps/web)
  • A Cloudflare account (for apps/service and workers)

Setup

# 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 dev

Environment Variables

Each app has its own .env.example file documenting all required and optional variables:

Scripts

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

Examples

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

Contribution

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.

Security

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.

About

Real-Time as a Service platform, built on Cloudflare for fast, cheap, and reliable infrastructure to power live apps and connected experiences.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors