Switching from Supabase to Convex
I built real-time sync into local state twice: once for TiVA and once for Predator.
Subscribing to database tables is not the hard part. The hard part is getting those subscriptions into local state — and the part that is genuinely complex and hard to maintain is keeping optimistic updates correct.
Convex changes that tradeoff. A real-time query, even for complex data, plus an optimistic update often removes the local state layer entirely — without every component becoming a synchronization project.
That matters more as AI writes more code. The less synchronization logic I need to keep in my head, the more I can spend review time on product behavior, permissions, data shape, and performance.
The lesson from TiVA and Predator is that real-time collaboration becomes a product requirement faster than expected. Convex makes that requirement feel like a default instead of a custom subsystem.