The AND Logic Trap
The most misunderstood feature in Adalo is visibility conditions. Builders add multiple conditions to a component expecting OR logic (show if A OR B is true), but Adalo uses AND logic - ALL conditions must be true for the component to appear. This single misunderstanding causes more support requests than any other feature.
How Adalo Visibility Actually Works
When you set a component to 'Sometimes Visible' and add conditions:
- Single condition: Component shows when that condition is true
- Multiple conditions: Component shows when ALL conditions are true simultaneously
- There is no built-in OR operator
Example: Show a Badge for Admins OR Premium Users
Wrong approach: Add two conditions to one component: role = admin, plan = premium. This shows the badge ONLY for premium admins - not regular admins or premium users.
Correct approach: Duplicate the badge component. Set condition 1 on Copy A: role = admin. Set condition 2 on Copy B: plan = premium. Stack them in the same position. Now the badge appears for admins OR premium users.
8 Visibility Condition Recipes
1. Show Only to the Item Owner
Condition: Current User → Id is equal to Current Item → Creator → Id
Use case: Edit/Delete buttons on user-generated content.
2. Show Based on a Boolean Toggle
Condition: Current Item → isActive is equal to True
Use case: Feature flags, published/draft status.
3. Show Based on Count
Condition: Count of Current Item → Comments is greater than 0
Use case: "View Comments" button only appears when there are comments.
4. Show Based on Empty/Not Empty
Condition: Current Item → Image is not empty
Use case: Display image placeholder when no image exists.
5. Show After a Date
Condition: Current Date is after Current Item → startDate
Use case: access content after a scheduled release.
6. Show Based on Logged-In Status
Condition: Current User → Email is not empty
Use case: Show profile menu for logged-in users vs login button for guests.
7. Show Based on Relationship Existence
Condition: Count of Current User → Favorites that match Current Item is greater than 0
Use case: Filled heart icon vs empty heart icon for favorites.
8. Platform-Specific Content
This requires a workaround: Add a hidden text component that captures Device Info → Platform, then use it in conditions. Not natively supported in all Adalo versions.
Common Debugging Steps
- Check for conflicting conditions: If you have 3+ conditions, temporarily remove all but one to isolate the failure
- Verify data exists: If a condition references a relationship, make sure the related record actually exists for your test user
- Test with multiple accounts: Logged-in user conditions behave differently per account
- Check timing: If the condition depends on data loaded via an External Collection, the component may flash or not appear because the data hasn't arrived when the condition evaluates
Advanced: Conditional Visibility for Performance
Visibility conditions aren't just for UI - they're a performance tool. Components set to 'Sometimes Visible' that evaluate to false still consume some resources, but significantly less than fully rendered components. Wrap expensive components (charts, heavy lists, embedded maps) in visibility conditions to defer their loading.
When Conditions Aren't Enough
Adalo's visibility system breaks down when you need: active conditions (conditions that change based on user input without a page reload), complex boolean logic (A AND (B OR C)), or conditions based on computed values. At that point, you need custom components or a platform with full conditional rendering support.
Rehost builds custom Adalo components with advanced conditional logic. Get Expert Rescue →
FAQ
Why is my Adalo component not showing even though the condition should be true?
Most likely you have multiple conditions set, and at least one is evaluating to false. Remember: multiple conditions use AND logic (all must be true). Remove all conditions except one to isolate the problem.
Can I use OR logic in Adalo visibility conditions?
Not directly. To achieve OR logic, duplicate the component and apply one condition per copy. Position both copies in the same location - they'll never appear simultaneously since the conditions are mutually exclusive.
Do hidden components affect Adalo app performance?
Components set to 'Sometimes Visible' that are currently hidden consume fewer resources than visible components, but they're not completely free. Avoid placing 20+ conditionally visible components on a single screen.