TL;DR
- Choose Convex if you want a polished, pure-TypeScript experience, you will stay on their cloud (or accept their FSL-licensed self-host), and you do not need game shards or facets.
- Choose Pylon if you want a single-binary self-host, an open-source license, native faceted search, or in-process functions that share a transaction with your writes.
Same shape
Both ship:- Reactive queries that auto-update the UI when data changes
- TypeScript-first server functions (mutation / query / action)
- Schema as code
- Real-time WebSocket sync
- Built-in auth + file storage
- Self-host options
- React, React Native, and Next.js SDKs
Where they differ
Process model
Pylon ships as one Rust binary. Convex’s self-hosted product can run from Docker or a prebuilt backend binary, with the dashboard and CLI included. For a hobby project on a $5 VPS, Pylon installs in 30 seconds with no Docker. Both work for a production deployment, but the operational details differ.
License
Convex’s license bars you from offering a competing managed Convex service for the first two years after each release. This does not matter for most users. It matters only if you are building a backend-as-a-service on top of Convex. Pylon’s MIT/Apache license has no such limit.
Search
Convex has full-text search: keyword and prefix matching. It has no native facets. You build facets yourself with regular queries on top of Convex. Pylon ships SQLite FTS5 and roaring-bitmap facets, built in.useSearch("Post", { facets: ["tags", "authorId"] }) returns hits and live facetCounts in one call. For an Algolia-style faceted UI without paying for Algolia, Pylon is the simpler option.
Game shards
Convex has no concept of authoritative tick-based game state. If you are building a Slack-like app, you do not need it. If you are building a multiplayer game or a Figma-style cursor-presence app, Pylon’sShard<S: SimState> primitive is a real feature that Convex does not have. The shard simulation is authored in Rust (the pylon_realtime crate), and a useShard React hook connects it to the client. Pylon has no TypeScript API for the server-side shard logic today.
Pricing
Pylon Cloud pricing is based on a platform plan plus machine compute and included quotas. Convex’s pricing page combines hosted usage, team seats, and higher-tier minimums.
Editor / Studio
Both have web-based inspectors. Pylon’s runs against your local binary by default. Convex’s hosted dashboard is the default for cloud projects, and the self-hosted product includes its own dashboard.
CRDTs
Pylon integrates Loro for collaborative text, lists, maps, and trees. Loro provides true CRDTs with conflict-free convergence. Convex has reactive queries that automatically reconcile updates, but it does not ship a CRDT library. For collaborative editing, you would integrate Yjs or Loro yourself.Where Convex is better
- Pure-TS dev loop — Convex has invested heavily in DX polish. Type inference flows end-to-end without codegen. Pylon requires
pylon codegen(one CLI call); Convex’s TypeScript flow is a bit tighter. - Larger team behind it — well-funded YC company, more docs, more examples.
- Scheduled functions — Convex has clean durable primitives for scheduled jobs. Pylon has a durable scheduler (
ctx.scheduler.runAfter), background jobs with exponential retry back-off, and durable multi-step workflows (completed results replay, sleeps span days, events resume paused runs). Convex’s scheduler UI is more polished. - Convex Vector Search at scale — Convex’s vector indexes are approximate and built for large tables. Pylon’s built-in vector search (
field.vector(dims)+ctx.llm.embed+ctx.db.vectorSearch) is exact k-NN, with perfect recall and zero index maintenance, good up to about 100k rows per entity. Past that, Convex’s ANN indexes win.
Where Pylon is better
- Small footprint — install the pylon binary + Bun on a VPS, or
pylon deploy. No Docker daemon. - Faceted search — built in, with live counts. Convex requires custom queries.
- Game shards —
Shard<S: SimState>for tick-based authority (authored in Rust;useShardhook on the client). - Open license — MIT/Apache, not FSL.
- Built-in features — TOTP, audit log, webhooks, rate limiting, file storage, faceted search, and vector search ship in the binary, configured from the manifest or env. No marketplace of third-party components is required.
- Self-host on day one — Convex’s self-host is recent, and the OSS bundle has not reached the polish of their hosted offering yet.
Migrating from Convex
Most of the development surface maps directly. Pylon adds a code-generation step; Convex provides inline TypeScript types.