Do exactly this - I switched to Xano for a backend, and it has been a lifesaver. As someone making a B2C app that is yet to go live (this would have happened ~2 years ago, but the pricing changes made this impossible for me, as a self-funded startup).
Use the Xano Connector plugin (or fork it like I did to create more functionality), and do the heavy lifting in Xano. Lambda, map, iterations, conditionals - all the functionality missing from bubble workflows is trivial to achieve in Xano. Best of all - the Xano connector runs client-side in the browser, so the WU cost is trivial! I would still use APIs in workflows for updates though to handle conditionals - and these will still cost, so you should instead have any data changes done on the Xano end. If you have authentication for your app, still use the local bubble DB for “Current User” (e.g. storing session token, and to allow privacy rules) - but use Xano for everything else.
Don’t delay in switching though - converting your workflow logic into Xano APIs is VERY time consuming - my app needed around 60 API endpoints to be created. The resulting performance was incredible though (local Xano server too) - page time loads went down from about 14s (sometimes >70s depending on bubble servers) to <2s. Data refreshes take about 15ms.
With all this said… I have yet to find a better front-end solution to replace bubble, so I believe at this point - bubble + Xano is really the best no/low-code option out there. But with the WU cost model, if you expect to have any amount of non-paying users (e.g. the public) - avoid anything involving bubble database (you can use option sets though, as these are loaded into the page), or server side actions/backend workflows, and minimise the workflows to only client-side functions (e.g. “filter”), and only “Do a search for” on a unique ID (stored in your Xano data) if you need to map something out for the absolute minimum WU cost, since unique ID are indexed in the bubble DB behind the scenes, so are the lowest cost possible.