05

Scope, measured from the sitemap

280 URLs sounds like a large migration. It is roughly 14 unique templates rendering 268 CMS records, and the hardest visual assets are already portable.

sdata.us route inventory — 280 URLs, sitemap.xml, 2026-09-09
Collection or groupURLsMigration note
/resources/213Rich text to Portable Text via bulk API import. The long tail here is editorial QA, not code.
/events/15The listing page geocodes against a third-party service at runtime today. Moving that to build time removes a live external call from the CSP.
/topics/14Taxonomy — reference field on resources.
/resources-solutions/8Taxonomy.
/categories/7Taxonomy.
/solutions/5Five of the six WebGL hero pages.
/who-we-serve/4Straight port.
/webinars/, /landing-page/2Single-item collections. Consolidation candidates during the rebuild.
Static pages11/, /about, /platform, /contact, /careers, /csr, /smart-council, /search, /who-we-serve, and two /all-resources/ listing pages.
/home---with-window1Stray development page, publicly indexed today. Do not migrate — and remove it from the live sitemap this week regardless.
Total280Every URL needs a redirect-map entry and a post-launch parity check.

Assets already in hand

  • Six WebGL hero fields. Each is a self-contained custom element carrying its own renderer, with no build step and no shared script, so they drop into Astro components essentially unchanged. Re-pull the home hero from live HTML at migration time — it was hand-tuned after publishing and the source copy is deliberately stale.
  • The Smart Horizons 2027 symposium site. Already a single self-contained static build. Landing it in the same repository puts it behind the same headers and WAF for roughly three days of work, instead of standing up a second host with a second security posture to maintain.
  • The tested third-party host inventory. See Security target — the new policy starts from verified data.
  • The existing design system. Visual parity is the goal, not a redesign; tokens get harvested from the live CSS.