Hi @ahmedalnaqa,
There is no single “right” or “wrong” decision in this case, sorry it all depends on the app, data size, usage frequency, patterns, etc.
With internal collections, you have a very powerful built-in relations. You can set them easily using Adalo builder’s built-in capabilities. If you use external collections to store the data, you’ll lose that.
External data storage, on the other side, could be faster than built-in. However, all requests are passed via Adalo servers anyway (see here: Scaling Up: Prioritizing Performance on Adalo - #81 by AddyEdwin).
But even with this, I found Airtable to work much faster than built-in DB… though, relationships is a pain
You can use Backendless or Xano as a backend, it will provide more advanced capabilities from backend logic perspective, but (as usual) it requires more technical understanding and knowledge.
So, my comment would be “It depends”. For most of the apps Adalo built-in storage is more than sufficient. For some advanced apps - the maker needs to decide, and this is individual each time.
Sorry for not giving a clear and definitive answer
Best regards, Victor.