Engineering

The real shape of no-code vendor lock-in

Every platform we have moved a client off exported the data without a fight. Webflow gives you a CSV per Collection. Bubble emails you a download in CSV, JSON or NDJSON. Xano exports a table in two clicks. So the data was never the hostage, and the people who warn you about "owning your data" are aiming at the wrong thing. What no platform hands back is the logic: the rule that says an unpaid invoice at day 14 emails the account owner and flags the record, which exists in one place only, as boxes on a canvas that nobody wrote down.

What the export button actually gives you

Webflow publishes the list, which is more than most vendors do. Code export ships your HTML, CSS, JavaScript and assets. It leaves out CMS content and functionality, User Accounts, Ecommerce, site and page password protection, form submission processing, pre-existing form submissions, reCAPTCHA elements, site search, every locale except the primary one, and code components. AI code components get stripped out too. Webflow's help center states it plainly: on an exported site, Collection lists show the empty state and Collection pages show nothing bound to a Collection field.

There is a second catch in the same article. Code export runs on paid Workspace plans, and a Site plan does not include it. So the $25 a month you pay to host the site does not buy you the ability to take it with you. Plenty of teams discover that on the day they decide to leave.

You can export the Collections separately as CSV, and that works. What you get back is a folder of static pages plus a pile of spreadsheets, with the wiring between them gone. Rebuilding that wiring is the migration. The download is the easy part.

Logic has no file format

Bubble's manual has a page for exporting data and it is a good page. Pick the data type, set the view, choose CSV, JSON or NDJSON, and Bubble emails you a link when the job clears the queue. Look for the equivalent page for workflows and there is nothing to find, because a Bubble workflow is not a document. It is a graph in an editor. Xano is the same story on the database side: export the table as CSV, or select records and export those.

This is the part that costs money later. Logic you cannot export is logic you cannot diff, cannot code review, and cannot put under test. When a rule changes, no commit records who changed it or why. Six months on, the only complete specification of how your business runs is whoever built it, and their memory of a Tuesday afternoon in March.

On the Stay World Class migration we did not receive a spec. We read the Xano function stacks, watched the running app, and reconstructed the rules as code we could actually run tests against. The data moved through a four stage ETL that carried legacy IDs into PostgreSQL UUIDs so nothing lost its identity in transit. Webflow and Xano came out, Next.js, NestJS and Supabase went in, and Lighthouse went from 55.91 to 91 with LCP 77% faster. The schema work was predictable. Recovering undocumented logic was the slow half.

You can shrink the exposure without leaving

Write the rules down in plain language as you build them, in a document that lives outside the platform. Not diagrams, sentences: what triggers this, what it changes, what happens when it fails. It feels like bureaucracy on a Tuesday and it is worth a month of archaeology later. If someone leaves next year, this file is the difference between a migration and an investigation.

Prefer platform features that keep a text representation. Xano publishes XanoScript with a function reference and a VS Code extension, so logic built there can live as text you read in an editor and keep in git. Webflow's DevLink Export pulls components into a React codebase. Neither makes you portable on its own, and both are narrower than they sound, but text you can copy beats a canvas you can only screenshot.

Then keep integrations at arm's length. Logic that runs in your own code against the platform's API travels with you when you move. Logic drawn inside the platform does not.

When staying put is the right answer

If your whole workflow set fits in your head and takes an afternoon to redraw, you have no lock-in problem worth spending on. A marketing site with 40 CMS items and one contact form is not trapped. It is hosted. The export gap only bites when the logic is big enough that nobody can recite it any more, and that threshold is further out than migration vendors like to admit.

The same goes for anything still changing shape weekly. Rewriting a product whose rules you are actively rewriting is how you spend six months arriving where you started. Let it settle first, then move.

The question that matters is narrow: if the person who built your automations left tomorrow, could someone else say what they do? If yes, you are fine wherever you are. If no, you do not have a platform problem yet. You have a documentation problem, and it gets more expensive every quarter you leave it alone.

Sources

Is your platform outgrowing its stack?

Book a call and we'll walk through how we'd approach your platform, with an estimate grounded in a working prototype.