Hmmm, Adalo? so bad i feel about it

Hi there,

First of all, @YousefAbubaker it’s sorry to hear about your experience with Adalo. Putting myself into your shoes, I guess I would feel the same.

In my opinion, Adalo is a great instrument for building apps. But its simplicity could be misleading. When a new Maker sees how easy is it to create an app, there are a lot of things which are hidden behind the scenes; so a false assumption might appear that an app will scale linearly and will behave the same way with 300 users and 10000 users.

Unfortunately it is not that simple due to the way Adalo is built. Let’s take a simple example: imagine you have 10K records in some collection and you add the list to the screen to display this collection. The result will be that your previewer - browser will be unresponsive 1…2 minutes. Why - because by default a list loads all records; then an app tries to display them all, and that’s a tough and resource-consuming task.

In this particular case, the possible solutions could be (a) enable “lazy loading” on the list (setting to load items as list scrolls), or (b) add a filter to the list to limit the amount of data returned and displayed.
Side note: if you go do Javascript console, you can see the requests and responses there, and see the amount of data returned.
Another side note: once I’ve seen a collection of ~3K records, but its size was ~3MB. You can imagine that if you request all collection, it is already several seconds required only to get the data..

Another thing for internal collections: if you have a collection with large number of relationships and you try to get a data from these related collections, most probably this will work slower than a “plain” collection. Here I’d love to get some clarifications from Adalo developers how it works inside - to be able to architect the app accordingly.

As for the external APIs: their beauty is that you can do server-side filtering and pagination. This improves the speed greatly. Again, same principle is used here: don’t try to return a large amount of data and I have an example of 10K+ records in an external API - works like a charm.
Also, some external APIs support something like JOIN requests (getting the data from several tables in one query). If used correctly, this could save a lot of time and improve the speed greatly.
Example: I have Items and Categories tables stored externally. Instead of querying Category each time for each item in the list, I can create Items external collection in a way that it will return Category as well - using JOIN request.

One of the speed issues mentioned was related to the buttons needed to wait till the action finishes. This is a difficult topic. Imagine the button do not wait till the action finishes and proceeds with next actions immediately. And then imagine the action fails. What will happen with the data? Will it be consistent?
In large highload apps several methods are used, DB caching, in-app caching, etc.; but they are not easy to implement even in full-code.
I face this problem frequently while working with Integromat scenarios: scenario may take 10-20 seconds to complete and it is not a good practice to let user wait. In this case I try to structure the app flow and scenario in a “fire-and-forget” way: “lock” the record, scenario immediately returns 200 (explicitly or not), and then modifies all what’s needed to be modified. With the last step it “unlocks” the record for further use. This is one of possible optimizations.

Having said that, I’m not denying the speed and stability issues in Adalo. They definitely exist, and they must be addressed by Adalo team.
Also, in my opinion Adalo isn’t simply suitable for some kind of apps - don’t try to replicate WhatsApp on it, for example :slight_smile:
On a bright side - I’m working on this platform over 2 years, and can assure you that now it is much better then it was before, so the trend is positive :slight_smile:

Wrapping this up: some optimisations are required when building an app with lots of data. Some of them are mentioned above; some could be found in this forum, along with general speed advices as well (like reducing image size).
Adalo speed should be increased, but we have what we have, so let’s try to make lemonade :wink:

It might be a good idea to create something like a how-to about app optimizations. I guess this could be backed up by Adalo: @jessehaywood @pford @ben1 what do you think?

Best,
Victor.

9 Likes

With no information, there is absolutely nothing we can do. With no information, there is nothing that Adalo can do.

How do you expect Adalo to fix any performance-related issues if we don’t actually relay the problems?

It’s like this: If you have a toothache, you go to a dentist. You tell the dentist you have a toothache, but you’re not telling the dentist which tooth hurts!

@Victor , in this scenario, you’re tapping every single tooth in hope that you find a cavity where you’re providing “possible” solutions. So let’s agree that you’re just guessing.

Yes, we can all agree that there are issues, however, there are ways to fix some things and make some things faster/better.

What if the user just has a list of 100 images all at 5mb each?
What if the user has a list of 100+ records they’re trying to display?
What if the user has 20 components in a single list with a nested list of 6 more components that have visibility conditions?
What if the user is using an external database and not using pagination/record limiting?
What if the user has 10 actions firing on one button?
What if the user is trying to update an external record with custom actions plus other actions with conditional statements?

Again, with @YousefAbubaker not providing information, it’s impossible to tell what the problems actually are.

Let me make a small comment about the possible uses of Adalo. About 3 months ago I was looking for a tool to port my existing Objective-C and SWIFT apps to a platform that would make it possible to design a web app for both Android and IOS with the same interface, ideally without much programming have to. It was important for me to have fully integrated in-app purchase with subscription because that is my business model. Some no-code interfaces were eliminated immediately because they don’t offer this. I found an IAP component at Adalo right away, so it was good for me. I then started porting the first app and was almost done with it, so I started to integrate the IAP. And then came the rude awakening. As a programmer, I couldn’t imagine that if there exists an IAP component, it wouldn’t contain all the features of IAP. I then registered with the Adalo-IAP-Beat program, but unfortunately never received the component. Then tried the IAP component with IAPHUB integration. All unfortunately wasted time. It is definitely not possible to implement IAP cleanly with subscriptions. There is no check as to whether there is a valid subscription and the restore of an existing IAP is not possible cleanly and reliably either. Yes, if you take a closer look at Adalo, you realize that it doesn’t work properly. But I lost a lot of time and of course money. But more remains the frustration that while there is IAP, it shouldn’t be described as productive. But at best as a beta because not all functions are implemented.

1 Like

Can you fix this and take from him $100 ?
Hahah
Look. All time ! You’re Offline! Your apps will not save until you reconnect - #18 by artrefresh

Dear @YousefAbubaker,

May I please ask you to refrain from posting comments like this one.
It doesn’t bring any value to the conversation and looks provocative and not constructive.

Thank you for understanding.

Best,
Victor.

3 Likes

Hey @RonDeveloper

Have you had a chance to look into the API documentation for IAPHUB? Get subscription | IAPHUB

It may be possible to implement a way to check if the user has an active subscription with an API call. I have not personally used IAPHUB for this, but I have used Stripe in the same regard.

Both IAPHUB by Pragmaflow and the Stripe components are there to simply capture the payments and set up subscriptions, however, the API has more technical functionality that can be implemented. Perhaps someone with more experience with IAPHUB can chime in on it.

Basically, I’d need an active IAPHUB account to test if it’s possible.

2 Likes

Hi @RonDeveloper,

That’s unfortunate you haven’t received reply about IAP Beta subscriptions. I tested this beta one it in several apps - it works. Setup is not very straightforward, though as you’re a developer it shouldn’t be an issue for you. With this component you can check subscription validity, restore it & etc.
Let me check if there is a possibility to join.

As for IAPHUB - never had an experience with it so can’t help here.

Best,
Victor.

1 Like

Hi @RonDeveloper and everyone,

Follow-up: to get access to IAP Subscriptions Beta, please submit a support ticket here Submit a Support Ticket with this request. Tagging Ben Reynolds @ben1 as he can give more guidance on this.

Best,
Victor.

2 Likes

I did both a while ago submitted a support ticket and contacted Ben. Hopefully I can get access soon. And nice to hear that it’s implemented in the Adalo beta :smiley:

I’ve been in very close contact with the IAPHUB team, they will try to implement an interface to Adalo, but it may take some time.

1 Like

@Flawless You can test everything with IAPHUB with the free test account but only in sandbox mode.

You can have a look here I started there a note about it: Recurring Subscriptions IOS / Android - Adalo component

I won’t be able to test until Wednesday/Thursday as I have a few projects on the plate to take care of today and tomorrow. I’ll check it out.

My priority at the moment is to get the beta of the new native IAP because it seem it have everything I need at the moment.

1 Like

Glad that this topic has lessons to learn, it will become feedback to all of us.

For experience makers that want to port their app to Adalo, they should focus on edge cases, because they know how to compare, any doubt that it will not satisfy you, it is a red flag already, unless you don’t really have a choice and the only option is to move forward.

For those looking to build MVP, bring critical factors that are really important and should be done in simplest way possible but still bring the value to customers, focus on these first, don’t build other things unless these factors can be contained.

This would avoid unnecessary claims of wasting time, wasted money, efforts etc, because not every tool can be perfect for every situation.

If you need nosql database for scalable users but need multiple writes to synchronize data, Adalo might not be the choice.

If you need responsive web app with flexbox style, Adalo is not there yet.

If you need internal webhook without added cost for using other automation tools, Adalo is not yet.

But if you want to build quick iterations of your ideas and have filtered critical factors to be those that are within Adalo current features, you hit the jackpot, your apps will be done much quicker than other tools.

Those critical factors are lesson learned here.

4 Likes

Dear Adalo Community Leaders,

from the point of view of good communication, every criticism is good and valuable because it offers the opportunity to make improvements or to explain points that may not be understandable in more detail. If you don’t get any criticism, it usually means that the users are so dissatisfied and don’t see a chance to raise their concerns and leave Adalo without a word. Do not take criticism as an attack on Adalo himself. From the point of view of the affected user, the arguments are always correct for the user himself, otherwise they would not write them. See the criticism as an opportunity to improve. Everyone who uses Adalo liked it otherwise they wouldn’t have written complete apps with it or ported it as in my case.

The role of the community leaders of this forum is also not clear to me. Those aren’t Adalo employees, are they? So why all the fuss when personal criticism is being leveled?

These users would like to use Adalo, but from their personal point of view they have reached a point that makes it impossible for the moment for them to do so. If there is a fix, all the better. If not, it’s a pity that you lose an Adalo user.

2 Likes

Community leaders are Adalo users who have a lot of experience helping on the forum and are invited to the community leaders program to further help members. They also have permissions to open, close, delete topics, etc if necessary, and have a dedicated channel where they can discuss issues or ask for second opinions. For example, if there is a topic that isn’t getting an answer, we might discuss it there, or contact the Adalo team if we see a major issue that needs attention.

The community leaders are individuals though with their own opinions, like you say, not Adalo staff. I think definitely the consensus is to leave discussions to run unless they are not constructive or get really out of hand, or spammy. Criticism of Adalo is fine in my opinion if it’s polite and constructive. We all have our favorite issues on what we’d like the platform to improve and develop further.

11 Likes

I appreciate everyone’s honesty above. It really helps when new to a platform and understanding what platform is good for your project. Commission based review websites and youtube videos do not help much, haha.

This is always a worry when there is so many no-code options. Maybe a lower entry price with limitation of only being able to make 1 app would make sense.

This would be super helpful and help Adalo retain more creators I’m sure. Your responses were very clear and helpful, including about beta subscriptions, sounds very promising. Monetization is king, most people don’t pay $50/m for a hobby software and every other feature supports this goal.

Your post Yongki was very honest and helpful, and quite reassuring to me that Adalo is definitely the best app for myself at this time.

3 Likes

You can’t just think to build an app in Adalo and expect that it will work flawlessly. Expecially if it is a Crypto app based on blockchain APIs…
Maybe too much for a starting point.

Adalo is best suitable for restaurant/estate/booking apps, more complex structured apps need a deep studying in how to get actions and components work faster. Is full of exemple here in the forum on how you can speed up your apps, just to remind some :
• Don’t try to load all the records from a long collection in a single list
• Avoid visibility conditions
• Split actions (with a lottie or another screen) when clicking action is triggered
• Compress images before uploading on Adalo database

It’s just up to you, trust me I gave up multiple times because of performances, but later on learned to live with this “issue”.

Best
Eugen

3 Likes

Exactly, we have to be realistic every platform has its positives and negatives, you cant expect low beginning learning curve to mean no learning curve and unlimited options. If it was thst easy every man and his nan would be making apps. Hehe.

I got to admit the “slow” and lack of optomisation rumours surrounding Adalo almost put me off, lucky the free plan and forums made me feel otherwise.

2 Likes

Interesting. Perhaps you’re based in the US or wherever Adalo’s primary servers are hosted? Outside of the US, the delays on native apps is insane. I downloaded some example apps from the Adalo Showcase and was actually blown away by how slow loading and broken most of the Native apps were when trying to access from New Zealand. I’ve tried over our dedicated Fibre connection (1000/800), a VPN relay in Sydney (Australia) and mobile 5G to ensure it wasn’t “our” connection.

Bubble suffers the same issue - and to get an instance stood up closer to your home (e.g. Sydney is the nearest AWS for New Zealand), it is $425+ per month with Bubble. In some cases, if this results in a more performant app, it can be justified.

But at this point Adalo needs to pivot and consider alternative approaches to Low Code because with the likes of Budibase and AppMaster completely redefining the approach with host-your-own type solutions (as an option), the old school locked-in model isn’t going to last for much longer.

As others have said, Adalo’s interface/UX builder is first class. But as far as backend is concerned, clearly there are issues and if your biggest market is the US, then who cares about the rest of the world right?

I had to cancel my subscription as soon as I saw the native response time on finished, published apps (we’re talking BASIC applications that weren’t loading MBs of rows or images). I wasn’t about to go and make the same mistake as the OP of this thread did.

I came here today to check in on whether performance or host-your-own instance plans were available yet… doesn’t look like it. So I guess I’ll check in with y’all in another couple of months.

1 Like

Budibase looks a long way off, but always nice to see opensource projects. AppMaster isnt low or no code, its clearly visual scripting from its own screenshots. How they can say no code next to visual script screenshots which is basically coding, just in a visual way which takss longer is bizarre. But so its their pricing plans. 1 app, $5/m. But want to make 2 apps $165/m! Eh!

Certaintly can think of better options out there if Adalo aint for you in its current state. I thought you could use external databases with Adalo now though, from reading above.