March 2026
All articlesBubble file and image fields do not come out of exports as actual files. They come out as URLs, which means a real migration needs to move the underlying assets and update those references.
Images and Files are important data fields in Bubble, used by most apps. However, most developers do not know how they are really stored or what the correct approach is to migrate them.
If you go to your Bubble database and open a row that has images or files, you will see them there directly. However, if you do a database export, those images and files will not come with the export, whether in the JSON from the Data API or in the CSV exports.
What you will actually get is text: URLs that point to Bubble's CDN, where the actual images and files are hosted.
Example:
https://49291ba917ced6f25ff01e5cc5b9a691.cdn.bubble.io/f1737581382627x261885501272179680/Why-Bubble.webpThat is why, in migration mappings, image and file fields are treated as text fields, and list versions as text arrays.
If you just export your rows into another database, your files and images will still be stored in Bubble.
As a result, you will not really be able to leave Bubble, because those assets are still hosted on Bubble's servers, and if you stop paying, you should not assume those URLs will remain a reliable part of your system forever.
Unfortunately, there is no real “bulk download” button in Bubble storage. And even if there were, that still would not solve the biggest problem: uploading those files to a new storage provider and updating all the references across your data.
So to migrate this properly, you need to store those files in another provider, such as Supabase Storage, and then update the references in your migrated data and codebase.
And this is where new problems start to appear:
This is what unbub.dev handles for you: automatic migration from Bubble storage into Supabase Storage, with reference updates and parallel but manageable upload processes, refined from multiple migrations.
Self-serve tools or a done-for-you service. Your app stays live while we move everything.