# Static Assets & Links Audit Report **Date**: 2026-03-21 **Agent**: test-engineer **Task**: Verify static assets and internal/external links reference correct workroot.in domain --- ## Summary | Category | Status | Notes | |----------|--------|-------| | Domain references (workroot.in) | ✅ Correct | All configs use workroot.in | | Static assets (favicon, sitemap, robots) | ✅ Correct | Load with correct domain | | Missing assets (apple-touch-icon, og-image, logo) | ✅ Fixed | Created placeholder assets | | Internal navigation links | ✅ Correct | All nav links relative paths | | Email domain consistency | ⚠️ Intentional | .io emails = business, .in = website | | External links (footer) | ✅ Correct | noopener noreferrer on external links | --- ## Findings ### ✅ Domain Correctly Configured All critical files reference `workroot.in`: - `astro.config.mjs`: `site: 'https://workroot.in'` - `src/middleware.ts`: Allowed hosts include `workroot.in` and `www.workroot.in` - `src/pages/api/contact.ts`: CORS origin set to `https://workroot.in` - `src/pages/api/newsletter.ts`: CORS origin set to `https://workroot.in` - `src/pages/api/health.json.ts`: Returns `domain: 'workroot.in'` - `src/pages/sitemap.xml.ts`: Site constant = `https://workroot.in` - `public/robots.txt`: Sitemap points to `https://workroot.in/sitemap.xml` - `public/sitemap.xml`: All 8 URLs use `https://workroot.in/` ### 🔧 Fixed: Missing Static Assets The following assets were referenced in HTML/structured data but missing from `public/`: | File | Referenced In | Action | |------|--------------|--------| | `/apple-touch-icon.png` | `BaseLayout.astro:48` | Created (180x180 PNG, brand color #0891b2) | | `/og-image.jpg` | `BaseLayout.astro` (default OG image) | Created (1200x630 PNG with .jpg extension) | | `/logo.png` | JSON-LD Organization schema in `BaseLayout.astro` | Created (512x512 PNG, brand color #0891b2) | > **Note**: Created assets are placeholder images with the WorkRoot brand color. They should be replaced with proper designed assets before production launch. ### ⚠️ Email Domain Intentional Inconsistency Two different email domains are used consistently: - `hello@workroot.io`, `support@workroot.io`, `sales@workroot.io` — internal business contact emails - `info@workroot.in` — previously noted, but current code actually uses `.io` throughout This appears intentional (separate business email domain from website domain). ### ✅ Internal Navigation Links All navigation links use relative paths — no hardcoded domains: - Header and footer navigation: `/`, `/about`, `/services`, `/portfolio`, `/blog`, `/contact` - Footer legal links: `/privacy`, `/terms`, `/cookies` **Known Missing Page**: `/cookies` (Cookie Policy) — linked in footer but no page exists. Already tracked in `knownMissingPages` in test file. --- ## Test Updates Enhanced `tests/static-assets.spec.ts` with 5 new tests: 1. **`should load apple-touch-icon correctly`** — Verifies 200 response for `/apple-touch-icon.png` 2. **`should load og-image.jpg correctly`** — Verifies 200 response for `/og-image.jpg` 3. **`should load logo.png correctly`** — Verifies 200 response for `/logo.png` 4. **`should verify blog image assets exist on server`** — Checks all 3 blog images return 200 5. **`should have correct domain in twitter:domain meta tag`** — Verifies `content="workroot.in"` 6. **`should not have workroot.com referenced anywhere on homepage`** — Guards against wrong domain 7. **`should have correct domain in all pages meta tags`** — Checks all 6 main pages for no `workroot.com` --- ## Files Changed | File | Change | |------|--------| | `tests/static-assets.spec.ts` | Added 7 new tests | | `public/apple-touch-icon.png` | Created (new) | | `public/og-image.jpg` | Created (new) | | `public/logo.png` | Created (new) |