Convex keeps taunting me. Real-time sync, no polling - one person changes something, everyone else sees it. I wanted that. My frontend uses htmx, which works differently. I spent a few days making three quick prototypes to see if they could work together.
The first prototype connected Convex directly to htmx. The basics, like adding and deleting items and basic list views, worked well. For a moment, I thought this might be okay. Then I got to real-time updates, which is the whole reason to use Convex in the first place. Convex wants to push live data to a component that can re-render itself. htmx wants the server to send pre-built HTML. I created a translation layer that changed every live update into HTML. The result was slower and more fragile than either tool alone.
The second prototype put my PowerShell server (based on Pode) in the middle to translate between the two. This setup added too much complexity and I abandoned the approach after failing to sync two basic data updates.
The third test checked if I could run Convex on my own server. This matters because enterprise tools often need to stay behind corporate firewalls. The self-hosted version is an interesting development, but it is not yet ready for production use. I’ll poke at it again later…
To use Convex, I need a frontend that speaks its language. Probably React. Which I haven’t actually learned yet.