Buyers search the big listing portals, so agents list there. But a portal listing sits beside a competitor's, carries the portal's branding, and the enquiry may come with a fee attached. A developer with three projects wants a page for each one, and a property manager wants the vacancies on their own site, kept current without retyping them.
Total CMS gives the listings a home on your own site: one record per property, pages built from those records, and enquiries that come straight to you.
This page's JumpStart builds one for Wren & Calder, a fictional agency in the harbor town of Port Ellery: eleven homes for sale and to let, a new-build development with its apartments, a search page, and an enquiry form on every listing. The screenshots below come from it.
One record per property
A listing is a record in a collection with your own schema: price, bedrooms and bathrooms, area, property type, a status (for sale, under offer, sold, let), the address, a description, floor plans and brochures as files, and a gallery. Change the status once and every page that shows the property follows. A relational field links each unit to its development, so a project page lists its own units without a second list to maintain.
Galleries that look right everywhere
Upload the original photos once. ImageWorks resizes, crops and converts each image on the fly, so a listing card, the gallery and the social image each get the size they need. A watermark set on the gallery field is applied by ImageWorks itself, so it can't be bypassed by editing the image's URL, and photos copied to another site carry your name. Set a size and the small card images stay clean while the large views are marked.
Search and filters
The listings page reads the collection, so the filters are yours to choose: price between two values, a minimum number of bedrooms, a type, a neighborhood, available or sold. Total CMS filters and sorts collections in the template, and its HTMX recipes refresh the list as a visitor changes a filter, without reloading the page. Long lists page or load more as the visitor scrolls.
For a map, the MapMax Geocoder extension turns each address into coordinates.
Enquiries that come to you
An enquiry form on each listing saves a record of who asked about which property and emails it to the agent. With Pro, a webhook action can pass the same enquiry to a CRM. Each listing also gets its own title, description and social image from its SEO card, and once the listings collection is switched on in the sitemap, each new listing joins it as it is published.
Property managers who want owners or tenants to sign in for statements and documents need a login on top of this: see client, dealer and customer portals.
Where it stops
- It isn't a listing portal. It doesn't bring buyers the way the big portals do, and it doesn't syndicate your listings to them. Most agents keep both.
- There is no MLS or IDX feed. If your listings live in agency software, getting them in means an export and a scheduled import, which is setup work for a developer.
- Search is your own filters. A "within five miles of here" search on a map is custom work.
- Viewings aren't booked here. Appointments need a booking tool or the agent's calendar.
What you need
- Pro, because listings need a custom schema, and for webhook actions.
- Standard features carry the rest: image watermarks and emailed form submissions.
- Any host with PHP 8.2 or later, with no database. Each listing is a plain file, easy to back up or move.