Skip to content
Case Study

Mobile Insights

A static Astro build for a New Jersey defense technology company, launched on a new domain with generated security headers, a bot-checked consultation form, and CRM lead delivery.

Full-page screenshot of the Mobile Insights website

Project Overview

Mobile Insights Technology Group is a defense technology company founded in 2009 in New Jersey. It engineers Electronic Warfare, RF, AI, cyber, and embedded systems for the U.S. Army, Navy, Intelligence Community, and prime contractors, and sells products under its KAT platform, including HOVERKAT and KATZEYE.

I built the company's marketing site as a static Astro site with React islands, working from the Mobile Insights design system and the company's content blueprint, and launched it on mobileinsights.ai in August 2026 on Cloudflare. The work covered deployment, the consultation-form backend, security headers, analytics, and handover to the company's own repository.

The Challenge

The company needed a new public site for an audience of government and defense buyers. A broken form or a weak security posture would undercut the pitch, and everything visible had to match the approved brand and content exactly, down to product names and trademarks.

It also had to outlive the engagement. The company wanted a stack other developers could maintain: a clean repository, current dependencies, documented deployment, and QA that can be re-run, with a consultation form that delivers every lead and keeps bots out.

My Role

I built, secured, and launched the site, then handed it over on the client's repository.

  • Building the site in Astro 7 with React islands and Tailwind CSS from the Mobile Insights design system and content blueprint
  • Deploying to Cloudflare as a Workers Static Assets project and connecting the mobileinsights.ai domain
  • Writing the consultation-form Worker: Turnstile verification on every submission, then delivery into GoHighLevel
  • Security headers with a build-time, hash-based Content Security Policy
  • Google Analytics 4 with a matching privacy notice, a Rank Math-style sitemap index, llms.txt, and an accessibility page
  • A dependency audit and a QA suite for responsiveness, accessibility, contrast, and functionality

The Solution

The site is fully static: 15 pages built at deploy time, with React used only where a page needs it, such as the consultation form. Fonts (Inter and Orbitron) are self-hosted and the design system's tokens drive Tailwind, so the pages make no third-party CSS or font requests.

Only one route runs code: POST /api/contact, a Cloudflare Worker behind the static assets. It verifies the Cloudflare Turnstile token on every submission against Cloudflare's siteverify endpoint, validates the fields, and posts the lead to a GoHighLevel inbound webhook that triggers the company's notification workflow. With no delivery route configured, the endpoint fails loudly and the form shows the company's phone and email, rather than silently dropping a lead.

Security is generated, not hand-maintained. After every build, a script hashes each inline script in the output and writes a Content Security Policy that allows exactly those hashes, so script-src never needs unsafe-inline and the policy cannot drift from what deploys. HSTS, X-Frame-Options, Referrer-Policy, and Permissions-Policy headers ship alongside it.

Handover was part of the build. The repository was reduced to a deployable source tree on the company's GitLab, dependencies were audited and updated, and the README documents deployment, secrets, and a QA suite (astro check plus responsive, functional, contrast, and accessibility checks driven through Chrome) that the next developer can run.

Technical Highlights

Hash-based CSP

A post-build script hashes every inline script and writes the Content Security Policy, so the policy always matches the deployed HTML.

Verified consultation form

A single Cloudflare Worker route checks Turnstile on every submission, then delivers the lead into GoHighLevel.

Static on Cloudflare

Workers Static Assets serves the built pages directly; only the form endpoint runs code.

Search and AI ready

A Rank Math-style sitemap index, llms.txt, and Google Analytics 4 with a privacy notice that describes it.

Results & Outcome

Verified Results

  • mobileinsights.ai serves the Astro build (the page source declares Astro 7) with a Content Security Policy that allows inline scripts by hash only, plus HSTS, X-Frame-Options, Referrer-Policy, and Permissions-Policy headers (checked September 14, 2026).
  • The contact page renders the Cloudflare Turnstile widget, the sitemap index lists 15 pages across page, product, and legal sitemaps, and the site serves an llms.txt guide (checked September 14, 2026).
  • The domain was registered in January 2025 (registry record), and public web archives hold no capture of mobileinsights.ai from before the August 2026 launch.

Project Outcomes

  • A launch-ready public site for a defense technology company, built to its design system and content blueprint.
  • Every consultation request is bot-checked and lands in the CRM with follow-up automation, instead of an unprotected form or an unmonitored inbox.
  • A security posture that scanners accept without unsafe-inline scripts, regenerated on every build.
  • A codebase another developer can pick up: documented deployment, current dependencies, and re-runnable QA.

Let's Build Something That Works

Whether you need a site built, fixed, or maintained, I'm here to help. Tell me what's going on.

General Santos City, Philippines[email protected]
Let's Work Together