- Client
- XYNEXIA (first-party)
- Sector
- AI Growth / digital services
- Published
The challenge
A new company needs to be found, understood and trusted by businesses searching for growth help — with no existing audience, no client logos to show yet and a requirement that every enquiry be traceable to its source.
The objective
Build a site that loads fast on mobile, is accessible, is structured for search, captures enquiries safely and records where each one came from — and treat that as the proof of how we work.
Strategy
Treat the website as the first component of the growth system: one canonical page per search intent, server-rendered content, a lead pipeline with attribution, and automated checks so quality cannot quietly regress.
Architecture
- Next.js App Router with statically generated pages; essential content exists in the rendered HTML, not behind client-side fetches.
- Content as typed data (services, solutions, insights, case studies) so pages, sitemap and checks derive from one source.
- One centralised metadata helper producing a unique title, description, canonical URL and Open Graph tags per page.
- Structured data: Organization, WebSite, BreadcrumbList, Article and Service — Service only for offerings sold today.
- A content security policy limiting scripts and connections to the site’s own origin.
Design
A dark, high-contrast visual system built around a single hero image of Earth at the horizon and a restrained cyan accent. Motion respects reduced-motion preferences, and the hero image is the only above-the-fold asset worth optimising for LCP.
Implementation
- Lead form handled by a server action: origin check, honeypot, minimum fill time and per-IP rate limiting before validation.
- Leads delivered by webhook and email, each carrying source, medium, campaign, click ID, referrer and landing page.
- First-touch and last-touch attribution captured in the browser and sent with the enquiry.
- Automated end-to-end tests on desktop and mobile: metadata, canonicals, JSON-LD shape, sitemap, robots, accessibility (WCAG 2.2 AA via axe), no-JavaScript rendering and the lead flow.
Technology
- Next.js 16
- React 19
- Tailwind CSS 4
- TypeScript
- Playwright
- axe-core
- Vercel
Analytics and measurement
Interaction events are pushed to a data layer with personal-data keys stripped. No third-party analytics provider is installed yet; choosing one and extending the content security policy is an open item, not a finished feature.
Outcome
The site ships with unique metadata, absolute canonicals, a single H1 per page, a sitemap and robots file, structured data and automated accessibility checks — and a lead pipeline that stores the source of each enquiry.
Verified results
- Largest Contentful Paint, desktop (median)
- 0.43 s
- Source: Measured with Playwright against the production build; recorded in docs/xynexia-site-audit.md §11
- Largest Contentful Paint, mobile throttled (median)
- 2.46 s
- Source: Measured with Playwright against the production build; recorded in docs/xynexia-site-audit.md §11
What we learned
- Decide the measurement design before launch: retrofitting attribution is harder than building it in.
- A performance budget only works if it’s written down and re-tested after every change.
- Future products should never share the markup of things you sell today; the first version of our structured data got this wrong and we corrected it.
- Proof takes time. We have no client results to show for this site yet, so we show how it was built and what it measures.