Mike Horan Printing Ltd hero

Commercial Printing

Mike Horan Printing — Full marketing site for a family-run commercial printer

Replaced a near-blank holding page with a full multi-page site that showcases nine services, 52 customer reviews, and a clear path to get a quote.

Client

Mike Horan Printing Ltd

Timeline

~2 weeks

Industry

Commercial Printing

Tech Stack

Next.js 16React 19TypeScriptTailwind CSS v4Lucide ReactGoogle Analytics 4

The Work

The Brief

Mike Horan Printing is a family-run commercial printer based in Swindon. They needed a proper marketing website that would show visitors the full range of their services, give potential customers a reason to trust them, and make a strong first impression — the kind of site that converts a browser into a phone call or quote request.

The Problem

They had a one-page holding site: a looping five-second video and their address. Nothing more. No services listed, no proof of reputation, no way for a visitor to understand what the business offered or why they should choose it. Anyone who landed on the site and didn't already know Mike Horan Printing had no reason to stay or get in touch.

The Approach

The brief was fundamentally about trust and clarity, so the design decisions were made with that in mind.

The three existing brand colours — blue, pink, and green — were leaned into deliberately rather than neutralised. Used across service cards, section accents, and UI elements, they give the site a warm, characterful feel that reflects the family business personality rather than blending into a generic corporate look.

Social proof was made a first-class citizen. Customer reviews are displayed prominently on the home page, and a stats bar on the About page leads with the review count and average rating. For a business where reputation is everything and referrals drive trade, making that visible immediately was more important than any feature.

The section structure was kept straightforward — services, gallery, reviews, FAQ on the home page; story and credentials on About; a simple contact form and opening hours on Contact. No clever navigation, no buried information.

The Build

Three pages were built on Next.js 16 with the App Router: Home, About, and Contact. Components are server-rendered by default, with client components only where interactivity is needed — the FAQ accordion, the scroll-aware navbar, and the analytics consent banner.

The home page leads with a dark hero section that drops into a grid of nine service categories (books, calendars, cards, flyers, menus, posters, reports, stationery, wedding invitations), each with a branded accent colour. Below that, a masonry-style photo gallery built with CSS Grid shows real print work, followed by six customer testimonials with star ratings and avatar initials.

The About page includes a stats bar — review count, average rating, opening hours, and no-minimum-order policy — followed by the business story and a six-point "Why Choose Us" grid.

Google Analytics 4 was integrated using Consent Mode v2 for GDPR compliance: GA loads for all visitors but collects no personal data until consent is granted. Users who decline contribute aggregate modelled data only. Consent is stored in localStorage and respected on return visits without re-prompting.

A LocalBusiness schema.org structured data block is included in the root layout for local SEO, covering address, opening hours, geo coordinates, and aggregate rating.

The Outcome

The site gives Mike Horan Printing a proper online presence for the first time. Visitors can immediately see what the business does, understand its reputation through reviews and ratings, and reach out via the contact form or walk-in details. The account manager callout — featured throughout the site — reinforces the personal service model that sets them apart from larger print chains.

Stack Used

  • Next.js 16 (App Router) — server components by default, client components only where interactivity is needed
  • React 19 — stable concurrent features
  • TypeScript — throughout
  • Tailwind CSS v4 — with @theme inline for brand colour tokens (brand-blue, brand-pink, brand-green) and a warm greyscale scale
  • next/font — Story Script (display serif) and Merriweather Sans loaded via Google Fonts with font-display: swap
  • next/image — all images optimised and lazy-loaded
  • next/script — GA4 loaded with afterInteractive strategy
  • Lucide React — icons throughout the services grid and USP bar
  • Google Analytics 4 — Consent Mode v2, GDPR compliant

Lawal Habeebullahi

Software Engineer/System Administrator • Building reliable systems & beautiful interfaces

© 2026 Lawal Habeebullahi. All rights reserved.