explaingit

get-convex/convex-backend

11,588TypeScriptAudience · developerComplexity · 3/5Setup · moderate

TLDR

An open-source reactive backend for web apps that combines a database, server-side TypeScript functions, and client libraries so your app auto-updates when data changes, no polling needed.

Mindmap

mindmap
  root((convex-backend))
    What it does
      Reactive database
      Server functions
      Auto-sync frontend
    Deployment
      Managed cloud
      Self-hosted Docker
    Use Cases
      Real-time chat
      Live dashboards
      Collaborative tools
    Tech Stack
      TypeScript
      Rust core
      Client libraries
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a real-time chat app where new messages appear instantly for all users without any polling code.

USE CASE 2

Self-host a Convex backend on your own server with Docker instead of using the managed cloud platform.

USE CASE 3

Write strongly consistent server-side logic in plain TypeScript that handles concurrent requests without data conflicts.

Tech stack

TypeScriptRustNode.jsDocker

Getting it running

Difficulty · moderate Time to first run · 30min

Self-hosting requires Docker, the backend sends anonymous telemetry by default containing a random deployment ID and uptime, disableable with a flag.

In plain English

Convex is an open-source backend system for web app developers that combines a database, server-side functions, and client libraries into one package. The key idea is that it is reactive: when data in the database changes, any part of your app that depends on that data updates automatically, without you having to write extra code to poll for changes or manage synchronization. You write your server-side logic in plain TypeScript, and Convex runs it with strong consistency guarantees, meaning it handles concurrent requests in a way that prevents data conflicts. The same backend handles both fetching data and performing operations like creating or updating records. Client libraries connect your frontend to this backend, so building live-updating apps (chat, dashboards, collaborative tools) requires less coordination code than with traditional setups. The easiest way to use Convex is through the managed cloud platform, which has a generous free tier and handles all infrastructure automatically. For teams that want to run it themselves, a self-hosted option is available using Docker or a prebuilt binary. The self-hosted version works alongside tools like Vercel, Fly.io, Neon, Postgres, SQLite, and others, and includes the same dashboard and command-line interface as the cloud product. One note on self-hosting: the backend binary sends a small anonymous signal to Convex by default, containing a random deployment identifier, database version, and uptime information. This can be turned off with a flag if preferred. This repository contains the backend source code, with the core written in Rust and the TypeScript packages (including the runtime for user-defined functions) in the npm-packages directory. Building from source is documented separately in BUILD.md.

Copy-paste prompts

Prompt 1
I want to build a collaborative to-do list with Convex where changes sync in real time across all browser tabs. Walk me through defining the schema, writing a mutation, and subscribing on the frontend.
Prompt 2
Show me how to self-host the Convex backend with Docker, configure the dashboard, and point my frontend client at the self-hosted URL instead of the cloud.
Prompt 3
How do I disable the anonymous telemetry beacon in self-hosted Convex, and what information does it send by default?
Prompt 4
I have a Postgres-backed app and want to migrate to Convex. What does the migration look like and what are the key trade-offs compared to staying on Postgres?
Open on GitHub → Explain another repo

← get-convex on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.