# Cas7 — IT, Cloud, AI Services

A responsive 18-page website for Cas7, New Castle, Pennsylvania. React renders the server-delivered pages and accessible navigation; an isolated Vue application runs the contact form. Vinext/Vite builds the application for Cloudflare Workers, with Sites-managed D1 persistence.

See [OWNER-HANDOFF.md](OWNER-HANDOFF.md) for launch steps and contact-request access, and [BRAND.md](BRAND.md) for logos, colors, typography, and image attribution.

## Commands

- `npm ci`
- `npm run dev`
- `npm run build`
- `npm start`
- `npm run db:generate` after a schema change

Requires Node 22.13 or later. This workspace used Node 24.21.0. On a constrained host, build with `NODE_OPTIONS=--max-old-space-size=256 RAYON_NUM_THREADS=1 npm run build`.

## Verification

Production build passed. All 18 content pages, robots.txt, and sitemap.xml returned HTTP 200 with page-specific titles. Real-browser checks passed for desktop navigation, mobile navigation at 390px, FAQ expansion, contact submission, no homepage horizontal overflow, and a real HTTP 404 on unknown routes. Tested flows had no JavaScript errors. Desktop/mobile screenshots were visually reviewed.

Local contact tests confirmed persistence, idempotent retries (one stored record), invalid-data rejection, origin protection, and the honeypot response. Production email delivery is not configured or tested. Full-project TypeScript checking could not complete within this host’s memory limit; production compilation and browser checks completed successfully. Optional WebMCP integration is feature-detected; native WebMCP validation was unavailable in this test setup.

The source folder is protected from direct Apache access by .htaccess. Deploy the built Worker through Sites; this source folder is not a PHP/Apache website bundle.
