Site Constructor
Overview
A lightweight site builder to manage marketing pages (Home, About, Additional) with localized content, media, and SEO. Sites are stored in Prisma sites and edited via the Site screen in Settings.
Data model & service
- Prisma model:
sites - Service:
services/global/SiteService.tscreateSite(site, tenantId, createdById)→ also issues encryptedtokenfindById,findByDomain,getSitesByTenantId- SEO helpers:
addMetaTag,deleteMetaTag,addScriptTag,deleteScriptTag - Domain ops:
createDomain,getSiteDomain,verifyDomain
UI
- Page:
pages/site-constructor.js - Component:
components/pages/Settings/Site/SiteConstructor.js- Fragments:
HomeForm,AboutForm,AdditionalForm,SiteHeader,SiteSpeedDial - Uses local site state (activeTab, isLoading)
- Fragments:
- Messages:
components/pages/Settings/Site/messages.js
Widget integration
- The Site screen requires at least one widget:
viewer.widgets.countdrives availability of actions - See
[Booking Widget](./widget.md)for embedding and configuration
Operations
- Domain management via
SiteService - Scripts and meta tags are persisted in JSON columns (
scripts,metaTags) - Token is generated as
encrypt(tenantId:siteId)and persisted on creation
Related
- Architectural overview:
docs/development/project-description/12-widget-and-site-constructor.md - See also
Booking Widgetfor embedding configuration - Feature flags:
server/graphql/helpers/getFeatureFlags.js - Marketing deploy and cache: see
docs/rebuild/13-deployment-and-ops.md(if present)