Publishing health
Everything here maps directly to the data contract used by the public pages.
Live data destinations
Homepagesettings → index.html
Rentals pagerentals[] → rentals.html
Property detail pagesrentals[id] → property.html?id=...
Projects pageprojects[] → projects.html
Operator notes
- Every save writes through the same site-data API and updates browser cache only as a fallback.
- The uploader is reused across rentals, projects, homepage sections, and team profiles.
- Success and failure states are explicit. There are no fake save banners.
Recent status
Homepage workspace
Grouped editing for hero, contact, supporting sections, and team profiles.
Hero and contact
Show primary phone
Show secondary phone
Show primary email
Show secondary email
Show location
Homepage sections
Show About section
Show Event section
Show Bottom section
Show Team section
About section
Event section
Bottom section
Team profiles
This panel feeds the homepage team section directly.
Saved team profiles
Rentals workspace
Create or edit rental listings that publish to both rentals and property detail pages.
Rental editor
Available
Featured on homepage
Saved rentals
Projects workspace
Manage before-and-after projects and project gallery images.
Project editor
Saved projects
Property and site pages
Legacy supporting content entries stored in data.content and mapped by target page.
Page entry editor
Saved page entries
Unified media uploader
One uploader system reused everywhere. Pick a destination, upload, preview, then attach to the right content block.
How it works
- Select a workspace target such as rental gallery, project before image, event images, or team profile photo.
- Upload one or many images through the shared flow.
- The uploader posts every file through the same upload API and returns a saved URL.
- Returned image URLs are attached to the correct in-memory draft field, then persisted on save.