A

Site editor

{{ login.mode === 'owner' ? 'Sign in with your account email and password to manage this website.' : 'Platform admin sign in.' }}
{{ login.error }}
Loading site…
🔒

Your website is locked

Your website is currently in locked mode as set by admin on {{ site.Lock && site.Lock.LockedUtc ? fmtDate(site.Lock.LockedUtc) : 'an unknown date' }}.
Reason provided
{{ site.Lock && site.Lock.Reason ? site.Lock.Reason : 'No reason was provided.' }}
While locked, {{ site.Domain }} shows visitors an "unavailable" page and the editor can't be used. Please contact support to have it unlocked.

Domain not recognized

This domain didn't resolve to a platform site ID. Check the domain mapping (getActivePlatformSites) or the localhost override in configuration.
A
Site Editor
{{ site.Domain }} · Site #{{ site.SiteId }} · Board {{ site.BoardId }}
Global Gallery ↗ Global Variables ↗ Gallery Manager ↗ Copied Pages ↗
Site setup
{{ i < step ? '✓' : i + 1 }}
{{ s }}
Step {{ step + 1 }} of {{ steps.length }}

{{ stepTitles[step] }}

{{ stepSubs[step] }}
{{ brokerageInitials }}
{{ platform?.BrokerageName || '—' }}
Board {{ platform?.BoardId }} · {{ platform?.BaseUri }}
From your platform profile
Tracking & conversion scripts
Header script: {{ platform?.HasCustomHeaderScript ? 'configured — included on every page' : 'not set' }} · Conversion script: {{ platform?.HasConversionScript ? 'configured — fires on lead registration' : 'not set' }}
✓ Automatic
This information comes from the platform and can't be edited here. Something look off? Contact support.
Continue saves your choice — you can change any of this later from the “Your Info” tab.
{{ c.CityName }}, {{ c.Province }}
{{ s.Name }}, {{ s.Province }}
Cities are validated against your listing feed — only real feed cities can be added.
{{ c.CityName }} · {{ c.CommunityName }}
{{ s.City }} · {{ s.Name }}, {{ s.Province }}
Both the city and the community are saved together.
Used when a map loads with no search criteria.
{{ cities.length }} target {{ cities.length === 1 ? 'city' : 'cities' }}, {{ communities.length }} {{ communities.length === 1 ? 'community' : 'communities' }}, and your default map center are saved. Finish setup to unlock the site dashboard.
{{ saveError }}

{{ site.Domain }}

{{ platform?.BrokerageName }} · Board {{ site.BoardId }} · {{ site.IsPublished ? 'Published' : 'Not published yet' }} · 🔒 Locked
🔒
This website is LOCKED
Locked by {{ site.Lock.LockedBy || 'a platform admin' }} on {{ fmtDate(site.Lock.LockedUtc) }}. Visitors see an "unavailable" page; the owner sees the lock notice instead of the editor. You're seeing the real site because you're signed in as platform admin.
Reason: {{ site.Lock.Reason }}
Platform admin · Lock this website
Locks a launched website: visitors get an "unavailable" page and the owner is locked out of the editor with your reason shown to them.
Lock {{ site.Domain }}?
Visitors will see an "unavailable" page, and the website owner will only see the message "Your website is currently in locked mode as set by admin on {date/time} — reason provided: …" until you unlock it. Only platform admins can lock or unlock.
{{ lockModal.error }}
Your site isn't published yet — it needs a design
Your content is ready. Pick a design and it pours right in — then you can publish.
Design selected: {{ selectedThemeName }}
Everything's in place — {{ site.Domain }} is ready to go live.
Your site is live in {{ selectedThemeName }}
Visitors see your published homepage; listings sync from your feed.
View site ↗
Ready to launch your website on your own domain?
Right now it runs on a temporary address ({{ launch.status.Host }}) that only you can see while logged in.
Domain launch request
{{ launch.status.Requests[0].Domain }}
Started {{ fmtDate(launch.status.Requests[0].CreatedUtc) }} · registrar {{ launch.status.Requests[0].Registrar || 'Unknown' }} · {{ statusLabel(launch.status.Requests[0].Status) }}
Domain request · {{ ticket.data.Domain }}
Loading…
{{ ticket.error }}
Target cities
{{ cities.length }}
{{ cities.map(c => c.CityName).join(', ') || '—' }}
Map center
{{ site.MapCenterLat.toFixed(4) }}, {{ site.MapCenterLng.toFixed(4) }} · zoom {{ site.MapZoom || 11 }}
Where the search map opens when a visitor hasn't picked a location.
Change map center
Click or drag the pin to where your search map should open; zoom in or out to set the starting zoom.
{{ centerEdit.error }}
Launch your website on your own domain
This is the information your website shows about you — in the “Meet your agent” section, on the listing pages' contact card, and anywhere else your profile appears. Pull it live from your CRM (recommended) or enter it yourself.
Counting listings…
Pages are built from functions — hero listings, areas, bio, rich text… Open the page editor to see and edit each section's content, or ask the AI to compose pages for you.
Open Page Editor → Open Blog Editor →
Enable your blog
Turning the blog on creates a page on your website at /blogs that lists your blog posts — it's a system address, so no other page can use it. Posts get their own addresses like /blogs/market-updates/june-market-update, filed under each post's first category. You write and publish posts in the Blog Editor.
{{ blogEnableError }}
{{ pg.PrimaryTitle || pg.Title }} — /{{ pg.Slug === 'home' ? '' : pg.Slug }}
⊘ Not in menu ↗ Links elsewhere ⧉ New tab {{ pg.IsStored ? (pg.IsPublished ? 'Live' : 'Draft') : 'Default layout' }} {{ pg.SectionCount }} sections
Open in editor → Preview ↗
Reusable Pages
Build a page once — sections, rows, styles — and reuse it whenever you create a new page. Reusable pages are never shown on the website: they're templates, edited in the normal page editor. Everything except the URL and title copies into the pages you create from them.
{{ ruError }}
Loading…
No reusable pages yet — create one above, set it up in the page editor,
then use it as the starting point for new pages.
⧉ {{ pg.Title }} {{ pg.SectionCount }} sections
Template — not live
Preview ↗
New page URL
New page title
{{ ruUse.error }}
Redirects
Send visitors from an old address on your domain to a new page — perfect after moving from another website. When someone opens a matching URL, they're redirected instantly. Matching is on the exact path (the part after your domain), with or without a trailing slash.
Add many at once
One redirect per line: the old URL, then the new URL, then optionally the type (301, 302, 307 or 308 — 301 assumed). Separate with spaces, a comma, a tab or “->”. Example:
/kitchener-real-estate.php -> /communities/kitchener 301
Add one
URL to redirect
Redirect to URL
Type
✓ {{ rdResult.Added ? rdResult.Added + ' added' : '' }}{{ rdResult.Added && rdResult.Updated ? ', ' : '' }}{{ rdResult.Updated ? rdResult.Updated + ' updated' : '' }}. Nothing changed — those redirects were already saved.
✕ {{ err }}
{{ rdError }}
Your redirects ({{ redirects.length }})
Loading…
No redirects yet — paste a list above or add one at a time.
{{ r.From }} {{ r.To }} {{ r.Type }}
Many website providers use different addresses for their listing details pages. Search engines have already cached those addresses for your listings — so to make sure they keep working with AgentLocator, copy and paste the URL of one listing details page from your current website below. We'll work out the pattern automatically and, whenever somebody opens a URL like that, we'll read the MLS® number from it, find the listing in your feed and redirect them to that listing on this website. If the listing is no longer available, visitors see a “listing not found” page.
Enter a URL
{{ lr.error }}
MLS® number found
{{ lr.detect.Mls }} Not the right one?
We'll watch for
{{ site.Domain }}{{ lr.detect.Display }}
Example redirect
✓ {{ lr.detect.Mls }}{{ lr.detect.Preview.Url }} ({{ lr.detect.Preview.Address }}, {{ lr.detect.Preview.Municipality }} · sold/leased)
We couldn't find MLS® {{ lr.detect.Mls }} in your feed right now — it may be sold or off the market. The pattern still works for every other listing; visitors asking for this one would see a “listing not found” page.
{{ lr.saved }}
Your listing URL patterns ({{ lr.patterns.length }})
Loading…
No patterns yet — paste a listing details URL from your current website above.
{{ p.Display }}
From: {{ p.SampleUrl }}
301
Test a URL
Paste any old listing URL to see which pattern catches it and where it would land.
✕ No pattern matches {{ lr.test.Path }} — that URL would show your normal “page not found”.
✓ Matched {{ lr.test.Display }} · MLS® {{ lr.test.Mls }}
301 → {{ lr.test.Preview.Url }} ({{ lr.test.Preview.Address }})
Listing not in your feed — visitors would see the “listing not found” page.
Configure your office locations and the agents who work from them, then add the Offices & Agents Directory section to any page. Visitors can browse by country, state/province and city with search-friendly addresses like /offices/canada/ontario/toronto/tom-smith, and every agent gets their own profile page.
🏢
Offices & Agents manager
Add offices, assign agents from your account's users or create standalone profiles, and control each agent's page address.
The same custom script settings as the platform builder's Website Settings page — saving here updates both. Scripts are placed on every page of your website and served from cache; saving refreshes the cache instantly.
Loading your current scripts from the platform…
{{ ccLoadError }}
Conversion Script
Fires once, right after a visitor registers on your website (any registration path — sign-up form, home evaluation, street match, favourite hearts). Paste conversion snippets from Google Ads, Facebook and similar here to count every new lead as a conversion.
Header Custom Script
Included inside <head> on every page of your website — analytics tags (Google Analytics, Meta Pixel), verification meta tags, custom fonts and styles.
Body Custom Script
Included right before </body> on every page — chat widgets, remarketing tags and other scripts that should load after your content.
✓ Saved — live on your website and in the platform builder {{ ccError }}
{{ selectedTheme.Tokens.Head }}
{{ selectedTheme.Name }} ✦ AI
Your design — only this website has it Global design — shared by all websites
Customizing it saves a copy as your own design — the shared original is never changed.
Select a website design
Every design is previewed with your listings, areas, and content. Switch anytime — your content never moves.
You don't have your own designs yet.
Customize the design you're using, or have AI build one — both land here as yours.
{{ th.Tokens.Head }}
{{ th.Name }} ✦ AI
{{ th.Description }}
{{ tg }}
Don't see it? Have AI design a theme for you
Describe the look you're after — a design agent turns it into a theme of your own, added to this gallery and selected. To refine the current AI theme instead, describe the change.
{{ i < genStage || genDone ? '✓' : '·' }}
{{ ag.name }}
{{ ag.note }}
✓ “{{ genThemeName }}” is in the gallery above and selected. Preview it, or describe a change to refine it.
{{ genError }}