Inspiration
Real estate developers sell apartments before the building even exists, yet most property websites still show a flat render and a long PDF price list. Buyers have to cross-reference floor numbers, unit codes and availability by hand. I wanted buyers to simply click on the building and see what's available, right on the developer's own WordPress site.
What it does
Interactive Real Estate is a WordPress plugin that turns any building render into a clickable, interactive sales tool.
- Draw SVG shapes over a building image to map blocks → floors → apartments
- Visitors hover and click to see availability (available / reserved / sold), price, area and floor plans
- Filterable flats list with floor, price and area range sliders
- 360° building viewer (add-on) with polygon overlays that follow the rotation
- Reservation form and price history (add-on) for each unit
- Embedded anywhere with simple shortcodes like
[irep_project]and[irep_flats], with a dark mode option - Fully translatable
How I built it
- Frontend: Vue 3 + TypeScript + Tailwind CSS, with Pinia for state
- Shared component library built once and consumed by the admin panel, the shortcode bundle and the 360° module
- Admin panel: a Vue app inside wp-admin, using
@wordpress/componentsfor a native Gutenberg look - Backend: PHP, the WordPress REST API, AJAX and custom database tables for projects, blocks, floors and flats
- Monorepo managed with pnpm workspaces; marketing site built with Nuxt 3
- Licensing via Freemius
Challenges I ran into
- Theme conflicts: WordPress themes ship aggressive global CSS. I prefixed every Tailwind class with
ire-, disabled preflight, and avoided native<button>elements so themes can't break the UI. - 360° polygon tracking: keeping drawn shapes aligned with the building while the user drags through dozens of frames, including snapping and day/night image sets.
- Dark mode without Tailwind's dark variant: a CSS cascade layer that remaps light utilities whenever the shortcode is rendered with
dark="1". - Filters that "show everything by default" until the user actually moves a slider, even though ranges are computed dynamically from the data.
Accomplishments that I'm proud of
- A non-technical sales team can map an entire residential complex in minutes, with no developer needed
- One shared component library powers three different bundles
- It works inside almost any WordPress theme without style collisions
What I learned
- How to build a modern Vue 3 app that lives safely inside WordPress
- That shipping a plugin to unknown themes is mostly a defensive CSS problem
- That real estate buyers care most about speed: availability and price within one click
What's next for Interactive Real Estate
- More add-ons (CRM integrations, lead routing to sales teams)
- Better analytics on which units and floors visitors look at most
- More layout templates and a guided setup wizard
- Expanding the 360° viewer with richer interactions
🔗 Website: https://www.ireplugin.com
Log in or sign up for Devpost to join the conversation.