Case study
Property Listing Plugin for WordPress
A comprehensive Divi 5 WordPress plugin for showcasing commercial and residential properties: interactive clustered maps, Chromium-rendered PDF brochures, PDF legal disclosures, agent listing profiles, native field editor and pluggable S3/B2/R2 storage with automatic image optimization, backed by an extensive set of visual builder modules.
The problem
A commercial real estate team needed to replace a terribly slow, aging cloud-based listing tool and templated website used to present the commercial and residential properties in their portfolio. With active development of a new Divi 5 WordPress site already underway, I opted to build a Divi 5 native plugin with an extensive feature set, essentially replacing everything a full cloud-based real estate solution was providing. Features included interactive maps, Chromium-rendered downloadable brochures generated via an external Puppeteer server, native legal-disclosure PDFs, agent and team profiles, an extensive native field editor, fast image-heavy galleries with native optimization, storage offloading, embed SEO tooling, and a handful of other capabilities.
The constraints were real: no ACF or similar dependency, brochures that actually look professionally designed (modern CSS, not a 2010 PDF library), team member and agent listing profiles, interactive map-driven searches, and storage that wouldn't lock them to one cloud vendor.
My role
I architected and built the plugin end to end: a 17-type custom field system, the React admin and front-end modules, the Divi 5 integration, and the PDF and storage layers among other features. The theme throughout was removing dependencies, optimizing for a native WordPress LEMP stack, and keeping SEO top of mind. I replaced ACF Pro with a self-contained field registry usable across other projects, architected the critical but heavy subsystems (PDF rendering, object storage) as pluggable layers to avoid vendor lock-in, and produced a reusable foundation for other real estate clients in the future.
Architecture
A Divi 5 / React front end with Leaflet maps talks to a self-contained REST API inside WordPress. The API fans out to the WordPress database, a Chromium-based PDF layer, and S3-compatible object storage.
The decisions that mattered:
- Self-contained field system. A 17-type field registry (text, gallery, map, repeater, relationship, and more) replaces ACF Pro entirely: the plugin carries its own schema and admin UI, so there's no paid dependency to track, and the registry is reusable across other projects.
- Interactive maps that scale. Leaflet with marker clustering and configurable marker caps keeps dense property areas fast, with geocoding and deep-linkable filtered views (type, price, city) driven by URL parameters.
- Chromium-rendered PDF brochures. Brochures render through a pluggable engine: Puppeteer (self-hosted, via a hardened Docker image I built), Gotenberg (self-hosted), or pdf.co (SaaS), each driving a real Chromium layout engine, so brochures support flexbox, grid, gradients, and web fonts instead of the constraints of a legacy PDF library.
- Separate document-assembly layer. Rendering and assembly are split on purpose: after Chromium produces the brochure pages, an FPDI/FPDF compositor appends mandatory legal disclosures and splices per-property insert PDFs at named section anchors (after the overview, before the gallery). Because FPDI exposes only one active source at a time, interleaving runs off a pre-computed ordered merge plan that re-selects a source only when it changes, and the layer degrades to an unmodified brochure if the library is unavailable rather than failing the request.
- PDF Visual Builder. A GrapesJS-powered visual builder with pre-made modules lets editors with minimal technical expertise edit PDF templates globally and on a per-property basis; the goal was to meet users where they are and simplify a complex workflow.
- Vendor-neutral object storage. One S3-compatible abstraction targets Amazon S3, Backblaze B2, or Cloudflare R2 interchangeably, with an image-optimization pipeline that emits WebP and AVIF variants on upload.
- 14 Divi 5 modules (listing grid, gallery, map, team, testimonials, and more) integrate with the visual builder and Theme Builder so editors can compose new content pages and fully take advantage of the plugin's capabilities.
Outcomes
- One stable, scalable plugin: no ACF Pro, no maps/PDF/storage plugin stack to maintain, no per-vendor lock-in on rendering or storage. Fully usable on any Divi 5 or native WordPress Gutenberg site.
- Designed brochures on demand, rendered by a real browser engine and swappable between self-hosted and SaaS without touching the rest of the system.
- Fast, image-heavy galleries via automatic WebP/AVIF optimization and cloud offload, served from whichever S3-compatible provider the client prefers.
- A maintainable surface: 17 field types and 14 builder modules that editors use directly, instead of a fragile chain of third-party plugins.
- An incredible end-user experience: a fully interactive property search, multiple map overlay options, and extensive SEO enhancements baked into each listing so the right prospects find the right property.