Hi there. I’m coming from Bubble and planning to migrate my app. I’m leaning towards Flutterflow + Supabase or Wappler. Advantage of flutterflow for me is the native app capabilities. However, their webapp performance is so bad.
Now I’m leaning more towards Wappler. Initial question, can you give us an Overview of what are the possible steps that we need to take in order to migrate my app from bubble to wappler? The app is a B2B management app and is already live with active users.
Some questions popping in my mind is, how can I transfer authentication, database and domain?
So its going to mainly depend on what your app is doing.
but first step no matter what is going to be migrating your data off bubble.io, which is going to be the most difficult part.
Are you planning to upgrade your database design? Because for my app we did also did a massive database redesign which made it a lot more difficult.
Do you know SQL or someone that knows SQL?
(if you don’t need the current data, you could always start fresh but you are live so i doubt you can start again)
Another difficult part is bubble.io and way they manage relationships, isn’t the database standard way, i wouldn’t be surprised if they did that to make it harder to migrate.
Your bubble many to many relationships, your going to need to remove from column with array of ids (bubble data), into a separate junction table (new database), so instead of array of ids, it will be a row per ids connecting. (this is likely confusing)
Also when exporting data from bubble.io i did it in json, and make sure all ids are set to the uuid, not whatever human-readable format you’ve set it to in the bubble.io data viewer.
Authentication, bubble.io wont provide the passwords/hash (they don’t export a lot of stuff) (if you’ve used other sign up methods other than email and password, i haven’t done that yet so not sure on what database design would need to be like and i have a feeling that bubble.io wont provide that data either)
So with mine, we are making the assumption if someone tries to login with email that exists but doesn’t have password, it means that its user from bubble.io and we need them to recreate their password. We will authenticate them with email verification link, and then allow new password creation. Or you can set a temp password and send that too them and get them to change password when they can.
Domain, i wouldn’t worry about that yet, that’s easy part when you start hosting. Will just be changing your DNS records really simple
Thanks for this response. For now, will it be a good path to recreate the ui design and pages first without any dynamic data initially? Then worry the database and app flows later on?
For the database, I’m thinking of having the user migration on automation also. Like coming from bubble, I will create a button “migrate to the new app version” that users can click. Then run a workflow to connect via API with the app created with wappler to transfer database per user. I’m not sure if this is possible though or better to just export.
I cant say if it will be a good path. It will be possible, but just not the way i took.
But you’ll be able to determine if wappler is a good fit if you actually work with UI first.
Should be sweet as long as the database design is setup exactly how the data will be when migrated, don’t think it will hurt at all to do UI first before data migration
I would do some of the data work initially, too. Maybe just the user data so you can set up the authentication. Once you have that working, you’ll know it’s all possible and you can then just work through the rest.
I would build it on another URL (maybe a sub-domain of your main domain) so your existing app can continue running. Then, when you’re ready to switch, do the data migration and ask everyone to reset their login passwords as I suspect there is some encryption of some kind in Bubble which would involve a salt or something which would probably make it impossible for users to just keep their existing passwords. But I’ve never used Bubble so can’t be sure on that score.
I’m currently preparing a migration from Bubble to Wappler as well. Bubble does not let you access or export password hashes, so to minimize friction once the migration is done, I configured a workflow in Bubble that stores the argon hash after login into the database. Everybody who does not log in between now and after the migration will be asked to log in with the “old” bubble app, which will be on a different domain, and I will get their password that way. Doing this requires some custom Bubble plugins, but it might be worth looking into.
Would it not be easier to just create a ‘forgot my password’ link in the new app so they can reset it via a link emailed to them? It would mean you wouldn’t need to keep the old Bubble app running once the new one is live.
In my case, that would add too much friction because it is a SaaS app with white-label domains, sub-users, etc., so the transition needs to be as clean as possible, and a forced password reset is not. That depends on the application, though.
Thanks for the replies. I will try it then. Should I start with crash course of html, css and javascript? Or I can start with the wappler 5 quickstart playlist in youtube?
Another thing, does wappler exposes an API for the database? For example, I want to create a mobile app thru flutterflow using the database created with wappler. Is the API automatically done via wappler side?
Lastly, I learned thru this forum about docker and I think it’s the best way to start for beginners like me. If I use docker to host the webapp, can I still avail the managed database in Digital Ocean? And what are the pros and cons of using docker + managed database thru digital ocean?
hmmm, personally i wouldnt bother with html/css/javascript course yet, wappler UI should get you all the way there, if you run into issues that feel like UI cant do, then you can jump into a course or just look up specific issue.
So yes i would start with wappler 5 quickstart
Wappler does have mobile version too, idk much about it. But yeah it wont be direct API to database, instead you’ll use the API of the server workflows you create, which can be used by mobile/apps and external applications.
Yeah id recommend keeping database separate from docker server.
Youll just need a database connection string, its used in a few areas in wappler, main area will be under globals database connection. Thats how you’ll connect your app to a database
No its not. You will have to write server side APIs yourself. These APIs can contain DB queries as steps, along with other things. And then you can use consume these in your mobile app as API which return JSON data.