Files
MNQ-Catering-y-Evento/AGENTS.md
T
2026-09-01 10:06:25 +02:00

3.3 KiB

AGENTS.md

Stack and runtime

  • Astro 5 SSR app with @astrojs/node in standalone mode (astro.config.mjs).
  • Production entrypoint is node ./dist/server/entry.mjs (package.json, Dockerfile, nixpacks.toml).
  • Node 20 is the deployed runtime in both Docker and Nixpacks.
  • TypeScript extends astro/tsconfigs/strict; dist is excluded (tsconfig.json).

Verified commands

  • Install deps: npm install or npm ci
  • Dev server: npm run dev
  • Type/content check: npm run check
  • Build: npm run build
  • Local preview: npm run preview
  • Production start: npm run start

Recommended verification after any page, styling, metadata, or asset change:

  1. npm run check
  2. npm run build

There are currently no repo scripts for linting, formatting, or tests, and no CI workflows or Husky hooks to catch mistakes for you.

Real app structure

  • File-based routes live in src/pages/.
  • Current public/legal routes are: index.astro, nosotros.astro, bodas-reales.astro, corporativo-business.astro, reuniones-familiares.astro, contacto.astro, cookies.astro, privacidad.astro, and aviso-legal.astro.
  • src/layouts/MainLayout.astro is the real app shell for every route.
  • Shared UI lives in src/components/.
  • Global CSS is imported only through MainLayout.astro from src/styles/{tokens,base,layout,components,utilities,animations}.css.

Wiring facts agents usually miss

  • MainLayout.astro owns the canonical URL, OG/Twitter metadata, default JSON-LD, and optional Umami injection via PUBLIC_UMAMI_URL + PUBLIC_UMAMI_WEBSITE_ID.
  • MainLayout.astro also mounts SiteHeader, SiteFooter, WhatsAppButton, and CookieBanner globally, plus the reveal/scroll-progress/page-transition client behavior.
  • The canonical site URL is https://www.mnqcatering.com (astro.config.mjs).
  • This is a marketing site optimized for WhatsApp lead capture. Keep WhatsApp as the primary CTA.
  • src/pages/contacto.astro currently has no form at all. It is a WhatsApp/phone-led contact page with FAQs and coverage text, so do not describe or implement it as an existing form flow unless you are intentionally adding one.
  • The WhatsApp destination/phone number is duplicated across layouts, components, and pages. If routing changes, search the whole repo instead of editing one component and assuming coverage.

Content and design constraints

  • Read DESIGN.md before making visual changes; it defines the premium editorial tone.
  • Gold is an accent, not a dominant fill color.
  • Keep the mobile-first approach and use existing CSS tokens/variables instead of adding a utility framework.
  • Keep service pages structurally aligned, but adapt copy, CTA, and gallery content per service instead of cloning sections blindly.
  • Galleries are embedded inside service pages, not split into a separate gallery route.

Deployment and SEO gotchas

  • Docker build flow is npm ci -> npm run build -> node ./dist/server/entry.mjs.
  • Runtime defaults used by deploy configs are HOST=0.0.0.0, PORT=4321, NODE_ENV=production.
  • Sitemap generation excludes /cookies/ and /privacidad/ only. aviso-legal.astro sets robots="noindex,follow", but it is not filtered out of the sitemap in astro.config.mjs.

Ignore / generated output

  • Treat .astro/ and dist/ as generated output.
  • .gitignore also excludes .opencode/, .worktrees/, and docs/plans/.