agency.theme matches a registered id in app/themes/index.ts and that the data-theme attribute is present on the <html> element.Run pnpm build for SSR deployment or pnpm generate for a static export. Set NUXT_PUBLIC_SITE_URL before building to enable canonical URLs and sitemaps.
The Real Estate Template ships as a standard Nuxt 4 application powered by the Nitro server engine, giving you two deployment strategies right out of the box: a full SSR/Node.js server build that runs on any Node-capable host, and a static export that pre-renders every page to plain HTML files you can drop on any CDN. Before you pick a mode, you must setDocumentation 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.
NUXT_PUBLIC_SITE_URL — without it the sitemap returns HTTP 503, robots.txt blocks all crawlers, and every canonical and og:url meta tag is silently omitted from the rendered HTML.
NUXT_PUBLIC_SITE_URL. It is read by nuxt.config.ts at build time and exposed to both the Vite bundle and the Nitro server via runtimeConfig.public.siteUrl.
| Variable | Required | Default | Effect when missing |
|---|---|---|---|
NUXT_PUBLIC_SITE_URL | Production only | "" (empty) | Canonical URLs and og:url are omitted; sitemap returns 503; robots.txt blocks all crawlers |
NUXT_PUBLIC_SITE_URL is set to your production domain the template immediately enables all of the following:
<link rel="canonical"> tags on every page (via usePageSeo())og:url meta values for correct Open Graph previewshttps:// URLs/sitemap.xml returns HTTP 200 and lists all public routes/robots.txt switches from Disallow: / to Allow: / and advertises the sitemap URLnull for canonicalUrl and every page skips emitting canonical and og:url tags. This is intentional — development builds should never push relative-URL canonical tags into search engine indexes.
pnpm build. Nitro compiles the app to .output/. Start it with node .output/server/index.mjs. Best for dynamic data, ISR, and server middleware.pnpm generate. Nitro pre-renders all pages to .output/public/. Deploy the folder directly to Vercel, Netlify, Cloudflare Pages, or any CDN.pnpm buildpnpm build produces a self-contained Nitro server in .output/:
3000 by default. Set the PORT environment variable to change it. This mode supports real-time SSR, server routes (including the dynamic /sitemap.xml and /robots.txt), and API routes if you add them later.
pnpm generatepnpm generate crawls every linked page and pre-renders them all to static HTML in .output/public/. The /sitemap.xml and /robots.txt Nitro server routes are listed in nuxt.config.ts under nitro.prerender.routes so they are always written to disk even though no page links to them:
failOnError: false lets the build pass even when NUXT_PUBLIC_SITE_URL is not set. In that case the sitemap and robots routes return degraded responses (503 and Disallow: / respectively), which are valid but inert. Production builds should always have the env var set..output/public/ to any static host:
Set the site URL environment variable
NUXT_PUBLIC_SITE_URL in your shell or CI environment before running any other command. This is the only variable the template requires for a fully functional production build.Install dependencies
pnpm as its package manager. The postinstall script runs nuxt prepare automatically to generate TypeScript types.Run the linter
@nuxt/eslint for zero-config linting. Run it before building to catch any issues introduced during rebranding.Build for your target deployment mode
| Script | Command | Description |
|---|---|---|
dev | pnpm dev | Start Nuxt devserver with HMR and Devtools enabled |
build | pnpm build | Compile SSR/Nitro server to .output/ |
generate | pnpm generate | Pre-render all pages to static HTML in .output/public/ |
preview | pnpm preview | Serve the last build locally for final review |
lint | pnpm lint | Run ESLint across the entire project |
lint:fix | pnpm lint:fix | Run ESLint and auto-fix all fixable issues |
pnpm dev but break in production.
Logo renders in header and footer
Agency name in the footer
Currency symbol is correct
agency.currency (ISO 4217 code such as USD, MXN, or EUR). Individual property records can override this with a per-record currency field — the card always uses the per-record value first.Primary color matches the theme
agency.theme matches a registered id in app/themes/index.ts and that the data-theme attribute is present on the <html> element.WhatsApp link opens with the correct number
agency.contact.whatsapp. The template strips spaces and dashes automatically, but the country code must be included (e.g. +12125551234).Open Graph image tag is present
og:image. The value should be an absolute https:// URL pointing to the agency logo or a property cover image. If it is a relative path (e.g. /images/logo.svg), NUXT_PUBLIC_SITE_URL was not set at build time.