- services-data.js: 4 service landing pages (commercial AV install DC,
broadcast integration, LED/XR, conference room AV) with FAQ + areas
- build-pages.mjs: node-stdlib generator -> /services/<slug>/,
/projects/<slug>/, index pages, sitemap.xml; Service/FAQPage/Article/
BreadcrumbList JSON-LD on every page
- index.html: title/description/OG retargeted to 'Commercial AV &
Broadcast Systems Integrator - Washington, DC'; ProfessionalService
schema gains geo, areaServed (DMV cities), hasOfferCatalog; noscript
fallback links the new pages
- components.jsx: hero copy + footer links point at real service pages
- nginx.conf/Dockerfile: ship generated pages, robots/sitemap types
- llms.txt: service pages + service area
- Dockerfile: nginx:1.27-alpine, copies static files + nginx.conf
- nginx.conf: gzip, long cache for images, short cache for HTML/JS,
SPA fallback to index.html (hash router handles /#/projects/<slug>)
- docker-compose.yml: restart unless-stopped, healthcheck on :43036
- README: docker compose up -d --build
Keeps port 43036 so the existing nginx-proxy-manager route for
wilddragon.net (-> :43036) keeps working without reconfig.