NoLag vs Convex
Convex is a reactive backend-as-a-service: you write TypeScript functions against a managed document database, and your app re-renders automatically when the underlying data changes. NoLag is a different kind of tool: open-source realtime messaging built on pub/sub, which you run yourself next to whatever backend you already have, with blueprint SDKs for common app patterns.
Short version: if you want a full managed backend where reactive queries over your data are the model, Convex is a great fit. If you want an explicit realtime messaging layer, multi-language SDKs, and software you run on your own infrastructure alongside your existing stack, NoLag is built for that.
At a glance
| NoLag | Convex | |
|---|---|---|
| Core model | Realtime pub/sub over WebSocket | Reactive queries over a managed document database |
| Backend model | Messaging layer next to your stack | Full backend: database plus TypeScript functions |
| Operations | Self-hosted: one kraken container plus your auth | Backend-as-a-service |
| High-level SDKs | Blueprints for chat, notify, feed, dashboards, tracking, sync, and more | Reactive query and mutation APIs |
| Delivery | Presence, acknowledged publishes | Reactive subscriptions, transactional writes |
| SDKs | JavaScript/TypeScript (including React Native), Go, Python | TypeScript-first, client libraries |
Where NoLag is different
- Messaging, not a backend runtime. NoLag is pub/sub you can add to any stack, rather than a place to run your application functions and store your data.
- Software you run. kraken is an Apache-2.0 container you deploy next to your own services, so your realtime layer is not tied to a vendor.
- Blueprint SDKs. A domain-specific API for chat, notifications, dashboards, tracking, and more, so you skip the plumbing.
- Multi-language. First-class JavaScript/TypeScript, Go, and Python SDKs, not TypeScript only.
Where Convex is a strong fit
- You want a single managed backend for data, functions, and reactivity.
- Your app model is naturally reactive queries over stored state.
- You are building primarily in TypeScript.
When to choose NoLag
- You already have a backend and a database, and want realtime messaging next to them.
- You want higher-level SDKs to ship common realtime patterns quickly.
- You need realtime across JavaScript, Go, and Python, on infrastructure you control.
Try it
Follow the 5-minute quick start, read the self-hosting guide, then look at the high-level SDKs.