Core guide

Lists in Adalo, from data to layout

Connect an Adalo list to the right collection, prove its records, add filters safely, debug empty results, and choose a native or custom list deliberately.

Adalocado VerifiedBeginnerReviewed Aug 16, 2026
Verified from current public evidence—not reproduced in the builder.

We checked current official documentation, captured the relevant screens, and compared the workflow with dated Adalo forum reports. Source links and limitations are below so you can judge the evidence directly.

THE SHORT ANSWER 🎯

Choose the collection under “What is this a list of?”, prove the unfiltered records, bind each field to Current [record], and only then add one filter at a time. Use a native list unless the layout truly requires a custom one.

Treat a list as a query before treating it as a design element. Connect it to the correct collection, prove the expected records appear, bind repeated fields to the current record, and only then add sorting and one filter at a time. Use AND when every rule must pass and OR when any rule may pass. Prefer a native list when it can support the layout, and enforce private data with Collection Permissions rather than trusting a visual filter. This sequence separates data, access, query, and layout failures.

Completeness100%
Index decisionIndex now
Evidence basisCurrent Help Center and forum evidence; no hands-on builder reproduction
WHAT YOU’LL HAVE 🎯

The intended outcome

A list that shows the intended collection, presents useful fields, opens the right detail record, and handles an empty result.

BEFORE YOU START 🧰

Requirements

  • A collection with sample records
  • A screen that can access the data
  • Understanding of Magic Text
BUILD IT 🛠️

Step by step

  1. 01

    Add the lightest suitable list

    Start with a native list that can express the row. Adalo’s current performance guidance reserves custom lists for layouts the native choices cannot support.

  2. 02

    Choose its collection

    Set “What is this a list of?” to the collection whose records should repeat.

  3. 03

    Bind the visible fields

    Select each text or image inside the list and use Current [record] Magic Text to display the correct property.

  4. 04

    Add one filter at a time

    Prove each custom filter alone, then combine them deliberately: AND requires every rule, while OR allows any rule to qualify.

  5. 05

    Sort and link

    Choose a stable sort, then link the repeated item or button to a detail screen while passing Current [record].

  6. 06

    Design the empty state

    Explain why no records are visible and provide the most useful next action.

WHY IT WORKS 🧠

The underlying logic

A list repeats one design for every record returned by its query.

Filters decide which records enter the list; visibility decides whether one component appears.

Collection permissions decide whether the data may be returned at all; a visual filter is not an authorization boundary.

Custom and nested lists increase layout freedom but add query and rendering work.

COLLECTIONS AND RELATIONSHIPS 🗃️

Data model

CollectionImportant propertiesRelationships
ItemsName, Description, Status, Created DateBelongs to one owner and optionally one category
CategoriesName, Sort OrderHas many items
SINCE THE ORIGINAL VIDEO ⏳

What changed?

  • Current documentation supports multiple list filters with explicit AND or OR behavior.
  • The refreshed guide now distinguishes empty data, empty filtered results, and empty relationships, with a repeatable query-debugging ladder.

Start with the query

Treat the list as a query before treating it as a visual component. Prove the right records are returned, then style the repeated row.

Use a fixed diagnostic ladder when a list is wrong: confirm sample records exist, remove every filter, verify the collection, bind one plain-text property from the current record, restore one filter at a time, and only then restore the final row design. Each step changes one variable, so the first failure identifies the layer to investigate.

Filters, conditions, and permissions

Filters refine groups of records. Conditions control whether an action runs or a component appears. Collection Permissions control who can read or change the underlying records. Mixing those responsibilities makes debugging unnecessarily hard—and relying on a visual filter for privacy leaves the data rule in the wrong layer.

Relationship filters require both sides of the comparison to contain the expected records. Current Adalo documentation says logical relationship comparisons are limited to one-to-many shapes; many-to-many needs a different query shape or a join collection. When a relationship may be empty, test that state explicitly rather than assuming it behaves like text or false.

A useful empty state

An empty list is not always an error. Distinguish no data yet, no match for the current filters, and data the current user is not allowed to see. Give each state one accurate explanation and a recovery action such as clearing filters, creating the first record, or returning to a broader view.

Performance discipline

Adalo’s current performance guidance recommends native lists over custom lists when practical and warns that lists inside lists can become expensive. Each extra filter, nested relationship, and repeated component adds work, so keep rows lean and move secondary information to a detail screen.

Use a stable sort property so records do not jump unexpectedly between visits. Test long names, missing images, a realistic larger dataset, and an intentionally empty collection; those cases expose layout, query, and accessibility failures that ideal sample data hides.

IF IT DOESN’T WORK 🧯

Common failure modes

The list is empty

Temporarily remove custom filters. If records appear, restore filters one at a time and verify their data types and values.

Every item shows the same content

Use Current [record] inside the list rather than screen-level or logged-in user data.

Search misses obvious results

Text equality is case-sensitive; the Contains operator is less strict and better suited to ordinary text search.

A user sees records they should not access

Fix Collection Permissions and the relationship to Users first. A list filter changes presentation; it does not replace database access rules.

BEFORE YOU MOVE ON ✅

Testing checklist

0 of 9 checked on this device

BOUNDARIES 🚧

Current limitations

  • Deep relationship filters, custom rows, and nested lists can create performance costs.
  • Component filters shape the visible result; they do not replace Collection Permissions.
CURRENT PUBLIC EVIDENCE 📸

Screenshot evidence

These captures document what Adalo currently publishes and what builders are reporting. They support the written guidance, but they are not a substitute for an end-to-end test in your own app.

BUILDER REPORTS 🗣️

What the Adalo community is reporting

These are concise editorial summaries of public forum posts—not endorsements or independently reproduced results.

Improved Filtering Logic

The changelog says list, count, and dropdown filters were made more consistent and added checks for empty relationships, files, images, and locations.

Boundary: The post says affected apps require a rebuild; existing published builds may not inherit the behavior automatically.

Adalo system · March 2024
VERSION NOTES 📝

Sources and status

This page was last reviewed on Aug 16, 2026. Its current status is Verified from current public evidence.

Verification owner: Adalocado editorial. Next review: Nov 12, 2026.

VERSION HISTORY 🕰️

Changelog

  1. Added native-list performance guidance, explicit AND and OR behavior, and the Collection Permissions security boundary.

  2. Added a six-stage query debugging ladder, empty-state taxonomy, relationship-filter boundary, and resilient row testing guidance.

  3. Added current official screenshots and Adalo’s filtering changelog as public evidence.

MONTHLY APP MANAGEMENT · BY REHOST

Rehost becomes the monthly team behind your app. Fixes, releases, integrations, and ongoing changes have an owner.

See monthly management
FixesHandled
ReleasesHandled
Next changesHandled
YOUR PROBLEM IS DIFFERENT? 🤔

Bring us the messy version.

Describe what you expected, what happened instead, and what you already tried.

Ask Adalocado 💬