Spaces 3 Release Notes

Release date: June 2026 Tickets shipped: 58 | Merged to production: June 16, 2026

New Features


Split Layout — Units & Floor Plans

  • Unit browsing: Paginated unit card list with live pricing, availability, and bedroom/bathroom details.
  • Floor plan browsing: Paginated floor plan card list with price range and availability.
  • Detail views: Full detail views for both units and floor plans, including pricing panel, image gallery, and Apply CTA.
  • Tabs: Toggle between Units and Plans views on the index.
  • Status bar: Active filter and sort state displayed inline.

Filtering & Sorting

Filter by:

  • Bedroom count
  • Move-in date
  • Price range

Custom filters: Support for property-specific filter controls ported from Spaces 2.

Sort by:

  • Price, high to low

  • Price, low to high

  • Square footage

  • No results state: Displayed when active filters return zero matches.

  • Filter sync: All filters sync in real time across the card list and the SightMap.

Lease Term Selection

  • Renters can select a lease term from a modal on the unit detail view.
  • Pricing updates dynamically based on the selected lease term.

On-Notice Leasing

  • Units marked as on-notice are surfaced in the unit browsing experience.

SightMap Integration

  • Embedded SightMap: Interactive SightMap displayed alongside the unit card list.
  • Click to detail: Clicking a unit on the SightMap opens its detail view.
  • Hover info window: Hovering a unit on the SightMap shows a preview with key details.
  • Filter sync: SightMap reflects the active card list filters.
  • Native floor picker: Renters navigate between floors using SightMap’s built-in floor picker.

Metrics Events

Spaces 3 introduces a typed, documented metrics events system via window.SPACES.events.

This replaces the legacy Spaces 2 DOM-scraping emitter.

EventDescription
readyFires once when the app mounts
metrics.units.changeFires when the unit list changes due to load, filter, sort, or pagination
metrics.plans.changeFires when the plan list changes
metrics.unit.details.clickFires when a unit detail view loads
metrics.plan.details.clickFires when a plan detail view loads
metrics.unit.apply.clickFires when the Apply CTA is clicked on a unit detail

Event names are preserved from Spaces 2, so existing consumers can migrate with minimal changes.

Compatible with:

  • Google Analytics
  • Google Tag Manager dataLayer
  • Custom scripts

Accessibility

  • WCAG-compliant keyboard navigation
  • WCAG-compliant color contrast
  • Screen reader support

Improvements

CSS & Customization

  • Scoped Tailwind styles: All Spaces 3 Tailwind CSS is scoped to prevent conflicts with existing site styles.

  • CSS API: New endpoint exposes scoped class names for client-side CSS overrides:

    /wp-json/spaces/v1/class-names

  • CMS color customization: Brand colors are configurable via the Engrain CMS customization panel. No code changes required.

Import Scheduling

  • Import granularity expanded to support additional hourly schedule options.
  • Properties can now configure how frequently unit data is imported.

Performance

  • Vite build system: Replaced Webpack with Vite.
  • Faster development builds.
  • Smaller production bundles.

Bug Fixes

  • Bedroom filter broken after SightMap integration: Resolved an issue where the bedroom count filter stopped working after the SightMap was integrated.
  • Area sort not applied correctly: Fixed sorting by square footage returning incorrect order.
  • Lease field not clearing: Fixed the lease term selection field not resetting correctly when switching between units.

Compatibility

Spaces 3 is a separate implementation from Spaces 2.

Both versions can coexist, and existing Spaces 2 installations are not affected by this release.


Tickets Included

TicketSummary
SPCS-878Evaluate and Improve Test Suite Structure
SPCS-915Refactor Core Spaces Context Module
SPCS-988Define Initial Tabs and Filters Display
SPCS-989Implement Status Bar
SPCS-990Implement Unit Index View
SPCS-991Unit Detail View
SPCS-992Floor Plan Index View
SPCS-993Floor Plan Detail View
SPCS-998Increase options for import granularity
SPCS-1070Add hourly unit import schedule
SPCS-1100Replace WebPack with Vite
SPCS-1103Build Spaces 3 component library
SPCS-1121Spaces versioning update
SPCS-1132Implement Spaces CSS API for overrides
SPCS-1135Add test coverage to Spaces 3 CSS API
SPCS-1136Adjust default styles for WordPress
SPCS-1138Implement CMS CSS customization
SPCS-1144Add paged unit and floor plan endpoints
SPCS-1146Add detail endpoints for units and floor plans
SPCS-1147Add initial state index data and paging
SPCS-1149Wire conditional display logic to index cards
SPCS-1151Add lease term selection endpoint
SPCS-1152Wire lease term modal
SPCS-1153Wire index calculator control
SPCS-1154Misc index wire-ups
SPCS-1156Add database sorting backend
SPCS-1157Wire sort control
SPCS-1158Add filter backend
SPCS-1159Wire filter controls
SPCS-1160Wire detail view to API data
SPCS-1161Wire plan detail view to API data
SPCS-1164Basic SightMap integration
SPCS-1165Implement SightMap filtering
SPCS-1167Implement SightMap unit detail click
SPCS-1168Implement Spaces SightMap hover
SPCS-1169Use native SightMap floor picker
SPCS-1170Fix bedroom filter after SightMap integration
SPCS-1171Port custom bedroom filter functionality
SPCS-1172Port custom filter query logic
SPCS-1173Wire custom filters
SPCS-1174Wire no results
SPCS-1175Misc UAT cleanup
SPCS-1176Area sort fix
SPCS-1177Lease field clear
SPCS-1178Default page size to 8
SPCS-1183Display no results on API error
SPCS-1184Agent feedback cleanup
SPCS-1199WCAG compatibility
SPCS-1200Port metrics to Spaces App
SPCS-1206Stale Asset ID cleanup
SPCS-1207Wire on-notice leasing to Spaces App
SPCS-1210Scope all Spaces 3 Tailwind styles


Did this page help you?