Blue Penguin Digital Blue Penguin Digital

The tools we use. The ones we don't. And why.

No mystery. No marketing. Just the actual technology behind every site we build — and the thinking that decides what gets used where.

See the stack
bp-stack
$ cat stack.json
{
"static": "11ty / Nunjucks / Tailwind CSS",
"php": "PHP 8.2 / PDO / Custom MVC",
"laravel": "Laravel 12 / MySQL 8 / Vite",
"design": "v4 Design System (in-house)",
"hosting": "NVMe / automatic failover / air-gapped backups"
}
$

No page builders. No WordPress. No SaaS lock-in. Just proper engineering — and every line of code is yours.

One foundation. Every project.

Not a template. Not a framework we downloaded. A design system we've built and refined across every project we've shipped — and every new project starts further ahead than the last.

Layout that doesn't break

Breakout grid system works from 320px phones to 2560px ultrawides. No horizontal scroll. Every section snaps to the right zone automatically.

Type that scales everywhere

Fluid typography via clamp(). No breakpoint jumps. Optically aligned at every width. Body minimum 16px — no iOS zoom on input focus.

Tokens, not magic numbers

Every colour, shadow, and spacing value is a CSS custom property. Change one value, the entire site updates. Four-level tinted shadows. Canvas & pane background model.

Accessible from the start

Focus management, keyboard nav, screen-reader labels, prefers-reduced-motion — built into every component. Not bolted on after.

Performance scaffolding

Font-display strategy with size-adjust for zero-CLS swaps. Content-visibility tiers. LCP preloading built in. Every site starts with the performance guardrails in place.

Component layer, not a kit

Reusable patterns — cards, CTAs, nav, heroes, footers — that adapt to the project. Not a UI kit dropped into every site. Same bones, different skin.

The right tool for the job

We don't have a single stack. We pick what fits the problem — and we'll tell you honestly if a £500 Squarespace site does what you need.

Brochure & content sites

11ty · Nunjucks · Tailwind CSS

For business websites, landing pages, and portfolios. 11ty generates flat HTML at build time — no database, no PHP, nothing to run at request time. The result is faster than anything dynamic because there's simply less to do. Combined with the v4 design system, these sites ship with sub-second loads and zero runtime attack surface.

Used for: Astral CCTV, The Punch Bowl, Hopscotch, Fashions Tomorrow, Pomfret Woodlands

Custom PHP applications

PHP 8.2 · PDO · PHPMailer

For applications that need a database but don't need a framework. Direct PDO queries, zero ORM overhead, exactly the code required and nothing more. When the job is a booking system with one user role and a handful of tables, you don't need queues, caching layers, and a scheduler. Frameworks have overhead — and overhead has no business in a simple application.

Used for: D.E.S.T Football Coaching

Laravel applications

Laravel 12 · MySQL 8 · Vite

For complex systems where the framework earns its place. Multiple user roles. Payment processing. Background jobs. Queues. Caching. Structured testing. When the architecture has real weight behind it, Laravel provides the scaffolding that makes the difference between a pile of code and a maintainable system.

Used for: Cloud Nine Play Café, The Addy

What we don't use

WordPress — 40% of the web, 90% of the attacks. Great for content-heavy blogs, routinely misused for business sites. Page builders — drag-and-drop produces dragged-out markup. Inline styles, nested divs, unrecoverable technical debt. SaaS platforms — monthly fees forever, data on someone else's server, features that change on someone else's timeline. We build tools you own. Pay once. Host anywhere. Walk away with everything intact.

What this actually delivers

Laravel 12 · Stripe · MySQL 8

Cloud Nine Play Café — Booking engine

Three booking types. Stripe payments. Real-time availability. Replaced spreadsheets and double-bookings with a system that loads in a second and hasn't had a single payment state error since launch.

Read the full case study →
PHP 8.2 · PDO · Custom MVC

D.E.S.T Football — Coaching platform

427 bookings. 135+ parent accounts. 291 automated emails. No framework overhead. Just the code the job needed — and a grassroots club that went from drowning in spreadsheets to running itself.

Read the full case study →

Want to know what this means for your project?

Tell us what you need. We'll tell you what stack makes sense — honestly, no pitch.

Get in touch