> ## Documentation Index
> Fetch the complete documentation index at: https://realsite.ca/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tags

> REALsite's Liquid tags: form, marketing_consent, zone, section, partial.

REALsite adds five tags to standard Liquid.

## form

Wraps its body in a lead-capture form posting to the platform's endpoint —
honeypot, consent handling, and success handling included. Everything
submitted lands in the owner's CRM stamped with the page it came from.

```liquid theme={null}
{% form 'valuation' %}
  <input type="text" name="address" placeholder="Your property address" required>
  <input type="email" name="email" placeholder="Email" required>
  <button type="submit">Get my valuation</button>
  <p class="lf-success" data-form-success hidden>Thanks — talk soon.</p>
{% endform %}
```

Kinds: `contact`, `listing`, `valuation`, `sold-price`, `tour`, `guide`, `buyer-search`. The `listing`
kind ties the inquiry to a listing:

```liquid theme={null}
{% form 'listing', listing: listing %} ... {% endform %}
```

Recognized fields: `name`, `email`, `phone`, `address`, `area`, `message`,
plus `tour_date`/`tour_time` for tours and `magnet_id` for guides. On
success the visitor returns to the page with `?sent=1` and the element
carrying `data-form-success` is revealed.

When the site owner has completed their commercial sender details, REALsite
automatically adds the consent checkbox and its signed proof token after the
form body. The request identifies the sender, any applicable brokerage, the
office mailing address, contact details, and how to unsubscribe. If the
visitor checks it, the platform records the exact request and sender details
they saw along with the form, page, and time. Do not add a second marketing
consent checkbox in the theme or post your own `casl`/`casl_token` fields.

If sender setup is incomplete, the form still captures the lead but does not
offer mailing-list opt-in. The admin guides the site owner to add the missing
office mailing address before consent collection or campaign sending is
enabled.

For `buyer-search`, send required `areas` (up to 300 characters) and `budget`
(up to 100), plus optional `preferences` (up to 1,000). Budget is free text,
so visitors can describe a range. Use name and email fields too. The shared
**Personalized home search** section and landing-page preset include this form.
The agent receives the preferences and a copyable brief in Leads. They set up
the search in Matrix / OneHome or their usual tool and invite the buyer there;
REALsite does not create or sync search alerts. Submitting a search request
does not itself grant newsletter consent.

## marketing\_consent

Use this inside a hand-built form that posts to `/lead`, such as a custom
contact modal:

```liquid theme={null}
<form class="lead-form" action="/lead" method="post" data-lead-form="contact-modal">
  <input type="hidden" name="kind" value="contact">
  <input type="hidden" name="return_to" value="{{ current_path | escape }}">
  <input type="hidden" name="sf" value="contact-modal">
  <input type="email" name="email" required>
  <button type="submit">Send</button>
  {% marketing_consent %}
  <p data-form-success hidden>Thanks — talk soon.</p>
</form>
```

It emits the same platform-owned disclosure and signed proof as `{% form %}`.
REALsite also normalizes every rendered `/lead` form, so older customized
layouts are automatically upgraded and incomplete sender setup removes any
stale opt-in instead of showing a checkbox that cannot work. Never hand-code
`casl` or `casl_token` fields. The `data-lead-form`, `return_to`, and matching
`sf` values let the platform return to this page and show the correct success,
retry, or email-confirmation message. REALsite supplies safe defaults when an
older custom form does not have them.

## zone

An owner-arrangeable region: renders the site's stored section arrangement,
falling back to your inline default.

```liquid theme={null}
{% zone 'home-main', default: 'agent-masthead, agent-approach, featured-listings, agent-invitation' %}
```

A saved arrangement takes precedence over `default:`. Changing the default
list or switching themes does not replace existing sections or their
settings. Keep zone names and supported section types stable when restyling.

Zones are opt-in. A template without zones is pure developer-authored
Liquid — a supported way to build, not a degraded one.

## section

Renders one section with its saved settings, outside any zone:

```liquid theme={null}
{% section 'hero' %}
```

## partial

Names a region the storefront runtime can refresh without a full page load
— search results use this for filter updates:

```liquid theme={null}
{% partial 'results' %}
  ...rendered results...
{% endpartial %}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.