Project Overview
HOLME Engineering builds mission-critical software for autonomous marine vessels, offshore energy systems, and industrial automation platforms. Its audience — decision-makers at shipyards, energy companies, and defense contractors — evaluates technical partners through their digital presence, so the company needed a web platform that communicates the same precision as its engineering.
I delivered the platform as a complete full-stack system: a high-performance Next.js 16 frontend paired with a production-grade headless CMS built in Laravel. Administrators manage every page, news article, publication, subscriber, and campaign through a centralized REST API — no frontend changes or redeploys required.
Every detail, from sub-second load times to a physics-based loading animation, reinforces one message: engineering precision.
Key Features
- Dynamic page builder — schema-driven CMS with 39 section types, stylable text, and ordered layouts
- News management — full article lifecycle (draft → published → archived) with filters, categories, and email notifications
- Publications — academic and research publication management with DOI validation and slug-based access
- Newsletter system — subscriptions, token-based unsubscribe, bounce handling, CSV export, and bulk email campaigns
- Contact workflows — public contact form with admin message management and email notifications
- Role-based administration — invite-only registration with separate Admin and Social Manager roles
- Analytics dashboard — metrics, trends, recent articles, and enquiries, backed by a full activity audit trail
Technical Highlights
- Server-first architecture — React Server Components by default; client boundaries only where interactivity is required
- Config-driven content — page data lives in configuration, enabling fast iteration without touching component code
- Physics-based loader — a custom SVG ocean scene where a spring-damper system drives ship buoyancy and tilt, mapped to real loading progress
- Scroll orchestration — Lenis smooth scroll with GSAP ScrollTrigger for cinematic section reveals
- GPU-safe animation — every animation uses only transform and opacity; zero layout thrashing
- Redis caching — schema-driven CMS responses cached for fast public reads
- Hardened delivery — Sanctum token authentication, strict security headers, and queued email via Postmark
- Deep test coverage — 1,333 Pest tests across all modules, plus Playwright E2E with axe-core accessibility audits
My Contributions
- Designed and built the entire frontend platform with Next.js 16, React 19, and strict TypeScript
- Architected and implemented the Laravel headless CMS, including the 39-section page builder with Redis caching
- Built the email infrastructure: Postmark integration, Redis queues, bounce handling, and campaign delivery
- Implemented authentication and authorization: Sanctum tokens, invite-only registration, role separation, and audit logging
- Wrote the automated test suites — 1,333 backend tests (Pest), unit tests (Vitest), and E2E + accessibility tests (Playwright, axe-core)
- Set up the infrastructure: Docker Compose for development, Nginx + Supervisor for production, and the deployment pipeline
Challenges & Solutions
Challenge: The site needed frequent content changes — new pages, sections, news, and campaigns — without involving a developer or redeploying the frontend.
Solution: A schema-driven headless CMS with 39 composable section types, exposed through a versioned REST API and cached with Redis. The frontend renders whatever structure the API returns.
Result: Admins manage pages, news, publications, subscribers, and campaigns entirely from one panel, while the public site stays fast through cached, structured responses.
Tech Stack
Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS 4, Framer Motion, GSAP, Lenis
Backend: Laravel 13 (PHP 8.3), Laravel Sanctum, Postmark, Intervention Image
Database: MySQL 8, Redis 7 (cache + queues)
Infrastructure: Docker Compose (dev), Nginx + Supervisor (prod), Sentry
Tools: Pest, Vitest, Playwright, Lighthouse CI, axe-core, ESLint, Prettier, pnpm