Admin control panel

Powers Content Studio

Quick-switch workspaces with direct publishing to live site destinations.
View Home View Rentals View Projects

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

Before
After
Gallery

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

  1. Select a workspace target such as rental gallery, project before image, event images, or team profile photo.
  2. Upload one or many images through the shared flow.
  3. The uploader posts every file through the same upload API and returns a saved URL.
  4. Returned image URLs are attached to the correct in-memory draft field, then persisted on save.

Available targets