Listed satellite-servicing operator
Public company · Software development partner
Space / satellite servicing & debris removal
Built the frontend for a large, CMS-driven corporate and investor-relations platform — editor-composable pages, up to 10 locales, and interactive 3D/WebGL brand experiences.

Not a landing page — a full multi-section corporate site (Solutions, Missions, Sectors, Resources, News, a dedicated Investor-Relations sub-site, Contact, Legal) plus interactive brand games. Content had to be fully editor-driven, and had to work across markets and languages.
Let a content team assemble arbitrary pages with no engineering involvement, serve investor content and news across many languages, and embed heavy 3D and game media — all while staying inside a headless CMS's real platform limits and under a strict security posture.
Solution
- Server-first Next.js 15 / React 19 frontend
App Router with React Server Components by default and client boundaries pushed down, strict TypeScript throughout.
- Editor-composable page system on Contentful
A 47-type section library consumed over typed GraphQL (GraphQL Code Generator) and rendered by a __typename switch — editors drop any section onto any page with zero per-page code changes.
- A fan-out GraphQL loader that beats the CMS's own limits
Split one giant page query into a page-shell query plus parallel per-section-type batches — engineered specifically to stay under Contentful's 8192-byte query-text and 11,000 cost-unit ceilings, which a single query blows past at ~15+ section types.
- Internationalization across 10 locales
next-intl with three hand-authored core locales (en/fr/ja) plus a hashed, incremental, rich-text-aware machine-translation pipeline that adds seven more languages for news, so unchanged content is never re-translated.
- Middleware for routing, locale scoping, and security
Locale routing, scoping machine-translation locales to news paths only, special-casing a Japanese IR vendor iframe, and a site-wide Content-Security-Policy moved out of next.config so it also covers static assets.
- 3D/WebGL brand experiences and B2B integrations
Three.js satellite models with Draco + KTX2 decoders and embedded Unity/HTML5 games, plus Salesforce, Mailgun, Mailchimp and Google Maps integrations and dynamic Zod form schemas built from CMS field definitions.
Trade-offs I'd defend
Deliberately traded a couple of cold-request round-trips for staying under the CMS's query limits — and for keeping each section type independently cacheable.
Moved the Content-Security-Policy into middleware so the policy also covers /public static files, with the rationale documented for the team.
Outcomes
A single query fetching 15+ section types blows straight past Contentful's 8192-byte query-text and 11,000 cost-unit ceilings — the platform simply refuses it. Rather than cap what editors could compose on a page, I changed the data-access shape: split the fetch into a lightweight page-shell query plus parallel per-section-type batches. Pages could then grow to any number of section types while staying under the platform limits, and every section type became independently cacheable as a bonus.
When the platform's limits fight the product's flexibility, change the data-access shape, not the product.
Work of this shape starts with Phase Zero: three weeks, a fixed fee, and a paper written for your steering group — with a proof on your own data where there is something to prove.
Specialist engineering for larger companiesMore case studies
Led discovery, product definition and engineering for an AI procurement platform, translating buyer and supplier needs into 39 feature specifications and evidence-linked bid evaluation.
Turned supply-chain rules into explainable allocation recommendations, built planner validation tools, and contributed AI-assisted process discovery.
Defined and delivered an ERP from scratch, from automated quotes to dispatch across nine industrial machines worth £2M+, and established the client's software department.
Improved the everyday agent experience and shaped a phased production architecture, connecting reliability, customer isolation and infrastructure spend to product needs.
Clarified 37 assigned requirements for a manufacturing-services delivery platform and established an isolated AWS development environment for stakeholder QA.
A build you can't evaluate, a demo that has to ship, or a certificate a contract is waiting on.
Book a 30-minute discovery call. If we're not a fit, I'll tell you on the call — and point you toward someone who is.