The heart of the build is a custom plugin that stores all property data in its own database table. With nearly 30,000 listings, that is not a small consideration. A dedicated table with properly indexed columns handles filtering and search at that scale far better than the standard CMS post system would.
Property listings come in automatically from the Sykes holiday affiliate feed. The importer handles the routine data: names, locations, bedrooms, pricing, pet details. But it cannot touch anything set manually. Featured properties, hidden listings, sort order, and editorial notes are all preserved across every import run. The two systems work alongside each other without getting in each other’s way.
The admin is purpose-built for managing a directory, not adapted from a generic content editor. Properties can be featured, hidden with a reason recorded against the listing, tagged into curated collections like “coastal gems” or “quirky stays”, and ordered manually when needed.
Property locations are geocoded and stored in the database, with an interactive map powered by Leaflet and OpenStreetMap rather than a paid mapping API. At nearly 30,000 pins, the cost saving over Google Maps is significant, and the map works just as well.
The front end runs on over 30 custom shortcodes covering filtered property grids, individual listing pages, location pages with their own imagery and live property counts, and the map.



