Properties and the editor
What a property holds, how an agent adds and edits one in the dashboard, its photos and location, and how publishing decides what the website shows.
For the Full Stack package
What a property holds
| Part | Values |
|---|---|
| Texts, in English and Arabic | Title, short description, description, city, SEO title and SEO description. English is required for the title. |
| Purpose | sale or rent. Rentals are priced per year. |
| Type | apartment, villa or townhouse |
| Price | A positive amount in AED |
| Facts | Bedrooms, bathrooms, area in square metres, parking spaces, furnishing (unfurnished, semi-furnished, furnished) and outdoor space (terrace, balcony, garden, courtyard or none) |
| Amenities | Any of 14: private pool, terrace, garden, covered parking, balcony, gym, concierge, sea view, marina view, canal view, courtyard, study, maid's room, smart home |
| Location | Neighborhood, address, a point on the map, and whether that point is exact or approximate |
| Photos | Up to 30 in the editor, in the order arranged, one of them the cover |
| Status | draft, published, sold, rented or archived |
| Internal | A reference given in order (P001, P002 and on), an address slug made from the title, a featured flag and notes the website never shows |
The types, amenities and other closed lists are defined once in the API and labelled in both frontends' message files, so a new value is a change in all three apps.
Statuses and what the website shows
| Status | On the website |
|---|---|
| Draft | Hidden. Every new property starts here. |
| Published | Listed, searchable, in the sitemap, and selectable for the home page. The first publish sets its publication date, which a later re-publish keeps. |
| Sold, Rented | Hidden, kept in the dashboard as a record. |
| Archived | Hidden, and can be published again. |
Deleting a property removes it from the dashboard too. The home page features the three homes chosen under Settings, Homepage; when none of them is published, it falls back to published homes marked featured.
The property list
- Tabs for All, Published and Drafts with their counts, a search by title (in either language) or reference, and filters for purpose, type and status, six properties a page.
- Each row's menu publishes, unpublishes (back to draft), archives or deletes the property. Archive and delete ask first.
- Properties are listed with the most recently updated first.
The property editor
/en/dashboard/properties/new adds a property and /en/dashboard/properties/<id>/edit changes one. The editor has four tabs and a publishing card beside them.
| Tab | What it holds | Limits |
|---|---|---|
| Details | The title, short description and description in both languages, purpose, type, price, the facts, amenities and the featured flag | Title 160 characters, short description 500, description 5000 |
| Media | Photos dropped or chosen from the computer, ordered by dragging, one marked as the cover | Up to 30, as JPEG, PNG or WebP |
| Location | The city in both languages, the neighborhood, the address, a pin dragged on the map or found by place search, and exact or approximate | City 80, address 255 |
| SEO | The SEO title and description in both languages, the address slug and internal notes | SEO title 160, SEO description 320, notes 2000 |
- The publishing card sets any of the five statuses, and "Preview listing" opens the property on the website once it is published.
- The map draws OpenFreeMap tiles and the place search uses the public Photon service, both without a key.
NEXT_PUBLIC_MAP_STYLE_LIGHT,NEXT_PUBLIC_MAP_STYLE_DARKandNEXT_PUBLIC_PLACE_SEARCH_URLpoint them elsewhere. - Photos are uploaded as they are added and re-encoded by the API, at most 1920 pixels wide.
Who can do what
| Permission | Allows |
|---|---|
properties.view | Seeing every property, drafts included |
properties.create | Adding properties |
properties.edit | Changing details and photos |
properties.publish | Publishing, unpublishing, archiving, and marking sold or rented |
properties.delete | Deleting properties |
Both seeded roles, Super Admin and Agent, hold all five.
What the API checks
- Every closed list (purpose, type, status, furnishing, outdoor space, amenities) is validated, and a price, a count or an area outside its range is refused with the field named.
- The API accepts up to 40 photos in one gallery; the editor stops at 30.
- A slug is made unique from the title when it is not given, and a reference is never handed out twice.
- The website's list takes
purpose,type,neighborhood,min_price,max_price,bedrooms,amenities(comma separated) andq, sorts bynewest,price_ascorprice_desc, and pages withpageandpage_size(12 by default, at most 24). An unknown value in one of them is refused rather than ignored.