HOLME Engineering
A corporate web platform and headless CMS for an autonomous marine & energy systems company, where I worked on the Laravel backend and its API integrations with the Next.js frontend.
Tech Stack :

1 / 3
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.
The platform pairs a Next.js 16 frontend with a headless CMS built in Laravel. Administrators manage every page, news article, publication, subscriber, and campaign through a REST API, with no frontend changes or redeploys required.
My part was the backend and its API integrations: the Laravel API behind the CMS, with its caching, authentication, email delivery and tests, and connecting it to the Next.js frontend.
What the Platform Does
- 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
The Backend
The parts of the Laravel backend I built:
- Versioned REST API: every piece of content the public site shows comes from one API, so the frontend renders whatever structure it returns
- Redis caching: I cached the schema-driven CMS responses for fast public reads
- Authentication and security: Sanctum token authentication and strict security headers
- Queued email: transactional and campaign email delivered through Postmark from a queue
- Test suite: 1,333 Pest tests across the backend modules
My Role
- Built the versioned REST API and the server-side logic of the Laravel backend
- Added Redis caching for the CMS responses
- Implemented Sanctum token authentication and the security headers
- Set up queued email delivery through Postmark
- Built the backend test suite with Pest (1,333 tests)
- Integrated the API with the Next.js frontend, so each page received the data it needed in the shape it expected
- Worked across the frontend and backend sides to keep the API aligned with the requirements
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
Backend: Laravel 13 (PHP 8.3), Laravel Sanctum, Postmark, Intervention Image
Database: MySQL 8, Redis 7 (cache + queues)
Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS 4, Framer Motion, GSAP, Lenis
Infrastructure: Docker Compose (dev), Nginx + Supervisor (prod), Sentry
Tools: Pest, Vitest, Playwright, Lighthouse CI, axe-core, ESLint, Prettier, pnpm
Need something like this?Tell me about your project