Skip to main content
@aymanbismail

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 :

Private

|

Live Demo

HOLME Engineering: screenshot 1 of 3
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