The template is built to serve agencies with very different feature needs — a large multi-agent brokerage wants a full team directory, developments portfolio, and blog, while a solo agent might only need properties and a contact page. Rather than deleting components or routes for unwanted features, the template uses aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Ozcaar/real-estate-template/llms.txt
Use this file to discover all available pages before exploring further.
modules object in the agency config that acts as a set of runtime flags. Layout components, the homepage, the footer, and the sitemap all read these flags and hide or show sections automatically, with no component editing required.
The modules object
All six flags live in the modules key of AgencyConfig:
app/config/agencies/default.agency.ts
What each flag controls
properties
properties
Controls the property catalog feature.
The
| Location | Effect when false |
|---|---|
| Header navigation | Properties link is hidden |
| Mobile navigation | Properties link is hidden |
| Footer quick links | Properties link is hidden |
| Homepage featured section | Entire “Featured properties” section is hidden |
| Homepage search bar | Search form is hidden |
| Homepage categories section | ”Browse by property type” section is hidden |
/sitemap.xml | All individual property URLs are excluded |
/properties route and all /properties/[slug] detail routes remain active. Disabling the module removes the entry points but does not 404 direct URL access.developments
developments
Controls the residential developments portfolio.
The
| Location | Effect when false |
|---|---|
| Header navigation | Developments link is hidden |
| Mobile navigation | Developments link is hidden |
| Footer quick links | Developments link is hidden |
| Homepage developments section | Entire section is hidden |
/sitemap.xml | /developments is excluded |
/developments route stays accessible via direct URL.agents
agents
Controls the team directory.
The
| Location | Effect when false |
|---|---|
| Header navigation | Agents link is hidden |
| Mobile navigation | Agents link is hidden |
| Footer quick links | Agents link is hidden |
/sitemap.xml | /agents is excluded |
/agents route stays accessible via direct URL.blog
blog
Controls the blog feature. Ships as
false because the blog is not yet implemented. Flip to true once a blog implementation is added.| Location | Effect when true (once implemented) |
|---|---|
| Header navigation | Blog link appears |
| Footer quick links | Blog link appears |
/sitemap.xml | Blog post URLs are included |
testimonials
testimonials
Controls the client testimonials section on the homepage.
There is no dedicated
| Location | Effect when false |
|---|---|
| Homepage testimonials section | Entire section is hidden, even if homeTestimonials data is populated |
/testimonials route, so no sitemap or navigation impact beyond the homepage section.contact
contact
Controls the contact page entry points.
The
| Location | Effect when false |
|---|---|
| Header navigation | Contact link is hidden |
| Mobile navigation | Contact link is hidden |
| Footer contact section | Contact methods are hidden |
| Homepage contact CTA section | Section is hidden |
/sitemap.xml | /contact is excluded |
/contact route stays accessible via direct URL.Navigation filtering
Navigation entries inapp/config/navigation.ts carry an optional module field that links them to the flags above:
app/config/navigation.ts
module field points to a disabled flag is removed from the rendered list. Entries without a module field (home, about) are always shown. This means adding a new nav link requires only adding an entry to the mainNavigation array and setting the correct module key — no template logic changes.
Sitemap integration
The/sitemap.xml Nitro server route reads the agency.modules flags and excludes disabled module pages automatically. It also calls propertiesService.getAll() to list individual property slugs, and skips that list entirely when modules.properties is false. Properties with status: 'hidden' are excluded regardless of the module flag.
Example: minimal single-agent site
A solo agent who only lists properties and takes inquiries can strip the site down to its essentials by disablingdevelopments, agents, testimonials, and blog:
app/config/agencies/default.agency.ts
Example: properties-only showcase (no contact form)
An agency that handles all inquiries through WhatsApp and wants to suppress the standalone contact page:Contact nav link disappears. Visitors can still reach out via the WhatsApp floating button, which reads from agency.contact.whatsapp and is rendered independently of the contact module flag.
The WhatsApp floating CTA and the contact methods embedded on property detail pages are driven by
agency.contact.* fields, not by the contact module flag. Disabling the contact module hides the dedicated /contact page entry points, but in-page contact shortcuts remain visible.