Moving my database to Xano

Hello,

I have finished my beta app but it is very slow so i want to externalize my database for app speed purpose.

What do you advice me to do ? I have a lot of collections link to the users’ collection , is it smart to move those collections too? Or do i only migrate collections without any links to users?

Cheers

Hi @batouuu,

Here’s a great post by James (@James_App_Maker) that will useful here! : External database - #2 by James_App_Maker

Love to know other makers thoughts too! :smiley:

Thank you

Hi,
Here is my view on it, we cannot say different DBs measure equally and fit same purposes. It all depends on your needs:

Adalo:
Lacks a lot on filter functionalities, all needs to be filtered from the frontend. It has basic API endpoints with no filter engine (Similar to Airtable and XANO, but these have backend filter).
Apps that rely a lot on images, you will consume DB fast, you should then use AMZ S3 that has a small cost on top but use Integromat or tools like Adalify for this (Another cost on top)
Possibility of creating relationships with other collections. but only simple relationships (Airtable and XANO you can do multiple and complex relationships)

Airtable
Free up to some 1200 records.
10$ 5000 records
You can create more complex relationships than Adalo
only 2GB of attachments (Not good for media apps), (5GB for the 10$ plan) or use AMZ S3 as similar to Adalo (previous point)
More filtering on the server side (Airtable)
Also filtering from Adalo side

XANO
Free up to 10.000 records (No record limit but with a 3GB database storage in the 59$ plan, this is a lot just for records not counting media)
You can create more complex relationships than Adalo and Airtable
No disclosure of GB for media in the free plan (59$ plan you get 10GB) or use AMZ S3 as similar to Adalo (previous point)
Region selector (not possible in Airtable or Adalo) - Paid Plan only
No rate limit (Airtable and Adalo have a rate limit) - Paid Plan only, but free plan has generous rate limit better than Adalo and Airtable.
You can add much more complexity on the XANO side to transform data before getting it in Adalo

To sum it up

Adalo
Good for apps that rely in Basic/Medium complexity
Good for apps that you don’t rely on massive amount of Media
Good for apps that don’t have complex relationships
Best price

Airtable
Good for apps that rely in Basic/Medium complexity (But one level up than Adalo)
Good for apps that rely more in Media than using Adalo (Here you can always hack by using more Bases)
Good for apps that need more relationships or filters than Adalo
Paid plans also gives you some automations behind
Worse priced than Adalo but better priced than XANO

XANO
Good for apps that rely in high complexity
Good for apps that rely more in media than airtable and Adalo
Good for apps that need more relationships and filters than Adalo and Airtable
Has a higher price compared to the others (if you consider paid plans)

There are other ways to go also behind these 3, but requires more technical knowledge and time to setup as Adalo is not compatible out of the box.

I am biased as I prefer to use all with XANO (I am not affiliated at all, just my go to DB, Backendless and Supabase are also great), whether simple or heavy apps, but some customer ask for Airtable and Adalo, I then use it, it is all a matter of bugdet, complexity and data volume vs media volume.

Have fun Adaloing :slight_smile:

5 Likes

my two cents, keep the user collection and the user management in Adalo.
The rest in Xano, which works very well and will allow you to do many more things.

1 Like

Hi @breadflix.es ,
You have to use both or XANO. By not using the Auth via XANO, you are exposing the XANO API endpoints publicly.

You can always set a type of password on the XANO side, but it will still not be as secure as using the AUTH side of XANO.

Yes, I know that, but I have another way to make api secure.
If you use Auth via Xano you can not use push notifications nor login with google and apple.
The problem is not Xano, is the Beta User External collection in Adalo.

have you tested through abracadalo push notifications?

That’s not the problem, you could also send it from Zapier or Integromat, the problem is that if you don’t have a user in Adalo you don’t have a recipient for the notification.

Maybe getting the user record from the External User ID from a custom action and then get the email from it and save it on a input and use that input in the Notification custom action recipient or after the getting user record custom action add that notification custom action and for the recipient add the email from the get user record custom action? I could be wrong here :zipper_mouth_face: Just thinking

We could actually combine both, by maybe adding an custom action to create and login the user without password.

What I did in another low code platform was exactly that, User logins via AUTH XANO, then receives an email with magic link to login user. the email contains a password. So then the Password is actually the Adalo password (I made it even random to change all the time), then in the last step, it logins the Adalo user. So in the end it becomes a sort of 2FA.

Didn’t try with Adalo yet.

1 Like

Good comparison. I think xano is great and powerful.

I think so too

How do you make API secure @breadflix.es ?

i am in that situation

It is not the best solution but it is the best I have found, the ideal is that Adalo finishes the external users function.

I have the user management in Adalo, the rest of the tables in Xano.

When the user creates an account in Adalo, I get the user ID and send it along with the user’s email to a Xano table.

As soon as this information reaches Xano, Xano encrypts the user’s email with JWE and sends that “token” to Adalo along with Xano’s own id.

At the end of the registration process, in Adalo I have the user with 2 fields that come from Xano, ID and token.

With each api call to Xano, I send the token and the id, when it arrives at Xano, it is decoded and if any of the data is not correct, Xano does not return any information and does not execute any action.

1 Like

Noted. thank you for the reply.

So you use this method and you don’t have any slowness issue ya.

To share us some context, What was the most complex app that you’ve build in adalo using this method ?

Did you still have any perfomance issue, etc ?

I decided to use Xano in the first place because I can do a lot more things with the data than I can in Adalo, Xano is super flexible.

The issue of speed is relative, I notice that for example a list takes a little longer to load but it loads all the data together, without delay.

From my point of view, the problems of the adalo apps related to performance are more than anything caused by the design, both in the loading of the screens and the number of actions that are executed in each step.

When I started with Adalo I put many actions one after the other in a button, now I distribute those actions in several steps and screens (even on blank screens, without any content).

I have a client with a simple ecommerce app and for what he needs, he has enough with Adalo.

I am currently using xano in apps with more than 250 screens and I am delighted.

1 Like

Do you mind sharing what no / low code tools you’re using ?

im using

Weweb.io for consumer application webapp
Glideapp for internal applications
Flutterflow for native mobile app
Xano for backend

im thinking to learn adalo for semi complex app, glideapp is very good but limited in design & flutterflow sometimes an overkill.

Hi!
Could you explaine more about your case, please. How do you get Adalo user Id inside Adalo? I know it is possible to get Adalo user Id by it’s API

Hi,
This might help you.

1 Like

I’m using a Pragmaflow component (Adalo Button with Record Id as action argument - YouTube) it is work really good. Also you can do it using Zapier.

https://adalo.pragmaflowservers.com/install-component

1 Like