01
Binding the repeating group to the database
Set the parent's type and source once, then every child says 'Parent group's Listing's ...'.
PROCEDURE: repeating group -> Type of content Listing -> Data source 'Do a search for Listings' -> fixed 2 rows x 3 columns for six cards -> collapse when hidden on the group, its content and the repeating group; remove the border. Inside, each nested group: type Listing, source Parent group's Listing; then Insert dynamic data: cover image, location, 'number of bedrooms' + ' bedroom' in rich text, bathrooms (an option set - use :display), area, property type, price. Fix distorted images with stretch/fit.
Why it mattersData flows parent to child; once you see it, every list in Bubble is the same.
02
Category filters with Display list, and the show = yes switch
Each filter word is a one-step workflow: display this list, constrained to that category.
For Residential, Commercial, Industrial, Agriculture: workflow on the text -> Element action > Display list in the repeating group -> Do a search for Listings with constraint property type = (category). 'All properties' is the same action without the category. Add constraint show = yes to every search, including the initial data source, so setting show = no in Data > App data hides a listing everywhere. Copy workflows with Ctrl+right-click.
Why it mattersFiltering without a line of code, and a kill-switch per listing.
04
The listing page, and passing filters between pages as URL parameters
Look at an Amazon URL: everything you filtered is in it. Bubble has no cookies, so the URL is your only pocket.
New page 'all listings' cloned from home: header, footer, the repeating group without fixed rows, and a Map above it (max width 90%, min height 400, max 500, margins 40; markers = list of Listings with show = yes; address = location, title = name; Apple style; custom icon). Navigation from the header search, logo and 'Explore all' via Go to page. Passing filters: on the home search -> Go to page all listings -> 'Send more parameters to the page' with keys city, type, budget bound to the dropdowns (URL pattern city=New York, type=industrial, budget=650). Name the dropdown elements first. On the listing page, a filter bar (H3 'Find property', three dropdowns, Search) whose defaults use 'Get data from page URL' (city, type, budget); the Search button runs Display list with constraints show = yes, type, price, location within 100 km of the city, with 'Ignore empty constraints' ticked so blanks do not return nothing; the map's markers follow via a condition with the same search. Known bug: the city dropdown would not show the URL default (geographic-address mismatch) - deferred to the QA session.
Why it mattersFilters survive a page change, which is what a listing site is.