For a collaborative or live app

The realtime app stack

Multiplayer by default — every read is a live subscription, not a socket you have to wire up.

This stack is built around one idea: realtime should be the default behavior of your data layer, not a feature you bolt on with channels and reconnect logic. Convex sits at the center as a reactive backend where every query is automatically a live subscription, so any client with a component mounted re-renders the instant the data changes — you write normal functions and get sync for free. Clerk and Liveblocks both ship first-class Convex integrations, and Next.js on Vercel with Tailwind is the substrate all of them already assume, so the pieces snap together instead of fighting each other.

The stack

  • FrameworkNext.jsThe full-stack React default every tool in this list integrates with out of the box, so you spend zero time on glue.
  • Realtime backend + databaseConvexA reactive database where every query is a live subscription — realtime is the default, so there's no channel plumbing, no manual invalidation, and no stale-cache bugs.
  • AuthClerkDrop-in auth with prebuilt components and a native Convex integration that passes the user identity straight into your server functions.
  • Collaboration primitivesLiveblocksMultiplayer cursors, presence, comments, and conflict-free (CRDT) document storage so you never hand-roll operational transforms for a shared editing surface.
  • StylingTailwind CSSUtility-first CSS plus copy-into-your-repo components you own outright — fast to build, easy to restyle, no design-system lock-in.
  • PaymentsStripeThe default for subscriptions and per-seat billing when you need to gate collaborative features or team plans.
  • HostingVercelOne-click Next.js deploys with per-branch preview URLs, which matter more than usual when you're testing live multi-user behavior.

Tradeoffs

  • Convex and Liveblocks are two realtime systems with real overlap — Convex already gives you live queries and presence, so only add Liveblocks if you genuinely need multiplayer cursors or CRDT text editing on a canvas/document. For live dashboards, chat, or presence lists, Convex alone does it and Liveblocks is a redundant bill.
  • Convex is a proprietary managed backend with its own document/query model, not SQL. You're betting on a vendor you can't self-host, and if your data is deeply relational or you want raw Postgres with row-level security, Supabase is the better base (you'd wire realtime channels manually, but you keep portability).
  • Clerk and Liveblocks both meter monthly active users, so the same active-user count shows up on two bills at once — costs compound faster than a single per-seat line would suggest. Model this before you launch, not after.
  • This is a build-fast stack, not a lock-down stack. Realtime apps leak data through subscriptions if you're sloppy with authorization, so budget real time for Convex function-level auth checks and Liveblocks room permissions — the defaults are permissive.

Cost

$0 to prototype (every layer has a free tier); realistically ~$50-100/mo once you have real users — Convex Pro (~$25/mo), Clerk (free to 10k MAU then ~$25/mo + usage), Liveblocks (free tier then usage-based, ~$20+/mo), and Vercel Pro ($20/mo), plus Stripe's 2.9% + 30¢ per transaction.