3.3 KiB
3.3 KiB
AGENTS.md
Stack and runtime
- Astro 5 SSR app with
@astrojs/nodeinstandalonemode (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;distis excluded (tsconfig.json).
Verified commands
- Install deps:
npm installornpm 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:
npm run checknpm 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, andaviso-legal.astro. src/layouts/MainLayout.astrois the real app shell for every route.- Shared UI lives in
src/components/. - Global CSS is imported only through
MainLayout.astrofromsrc/styles/{tokens,base,layout,components,utilities,animations}.css.
Wiring facts agents usually miss
MainLayout.astroowns the canonical URL, OG/Twitter metadata, default JSON-LD, and optional Umami injection viaPUBLIC_UMAMI_URL+PUBLIC_UMAMI_WEBSITE_ID.MainLayout.astroalso mountsSiteHeader,SiteFooter,WhatsAppButton, andCookieBannerglobally, 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.astrocurrently 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.mdbefore 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.astrosetsrobots="noindex,follow", but it is not filtered out of the sitemap inastro.config.mjs.
Ignore / generated output
- Treat
.astro/anddist/as generated output. .gitignorealso excludes.opencode/,.worktrees/, anddocs/plans/.