Building Instagram with Adalo

In spring 2022, I embarked on a quest to build an Instagram clone with Adalo, one of the top “noCode” app builders. My goal was to learn more about the magic of Adalo and also identify its limitations.

In a matter of a few days I was able to build a working app with user registration/login, posting of pictures and captions, and the social activities of likes, comments, and followers. My plan is to post the source “code” of this app with documentation (coming soon), and start a conversation about nocode and its limitations.

Instagram Features that were challenging or impossible in Adalo

1. You can’t modify user interface components, other than input components, in actions
Here’s an example from my Instagram clone quest. In Instagram, when you’re on a person’s profile page and click one of the pictures, it takes you to a screen labeled, “<user> posts”, e.g., “dwwolber posts”. That screen displays all of the particular user’s posts, and starts out scrolled down to the post for the picture that was chosen on the previous page. I couldn’t figure out an easy way to jump to a particular item in the list.

In Adalo, I can hook an action to the opening of a screen (as well as to button clicks). However, the list of actions from which to choose is limited, as shown in Figure 1:

Figure 1. You can specify actions for when a screen loads

You can specify actions to link to another screen, create, update, or delete in your database, initiate a notification, share, or “Change Input”. But what I need is to change a component, the list viewer displaying the posts, and jump (auto-scroll) to a specific post. Unfortunately, In Adalo actions can only access input components, e.g., if I had a text input component, I could modify the default text in it. You can’t access or modify the properties of an arbitrary component. Even if I could get to the list viewer’s properties, Adalo doesn’t provide a property for the index in the list.

Discussion
This is nothing inherent about Adalo that precludes it from adding the general feature I need: modifying an arbitrary component as part of an action. It could be argued that providing access to all of the components within the action dialog would over-complicate the dialog, but Adalo has a number of nice multi-level dialogs already, most screens don’t have that many components, and providing access to properties once the developer has chosen the component isn’t overly complicated. The fix would be to set the “Change Input…” menu item in Figure 1 to “Change component”, provide access to the list of components, and, once one is chosen, access to the properties of that component– not to change the property, but to specify an action that will change it dynamically.

For my particular example, Adalo would also need to add a property to its list viewer components that allows for jumping to an item in the list.

2. More to come….