Case study · Full-stack / headless
Vii Dohtem
Vii Dohtem is my own venture: as director and CTO, I designed and built the whole platform solo. A headless, multi-site setup brings two consumer brands and a SaaS-style compliance tool under one architecture, with a single WordPress/WooCommerce engine powering content, catalogue and transactions over a REST API, consumed by fast, animated Next.js front-ends on a self-managed Ubuntu VPS with automated CI/CD and TLS.
- Roots Bedrock (WordPress)
- WooCommerce
- WP REST API
- ACF Pro
- JWT
- Next.js 15
- React 19
- GSAP
- Stripe
- nginx
- PHP 8.3-FPM
- MariaDB
- GitHub Actions
- Let's Encrypt
- Docker
The platform
Three sites, one engine
Headless WooCommerce storefront
shop.viidohtem.co.ukThe e-commerce store for the smoked-food range. "Smoked to Seduce. Cured to Keep." Smoked fish, meats and cheeses crafted with salt, time, wood and nothing else.
- Cold-smoked Scottish salmon (oak-smoked 24h), oak-smoked British cheeses and small-batch pâtés.
- Built on Roots Bedrock (12-factor WordPress) with WooCommerce, Stripe payments, pre-orders (YITH) and scheduled delivery dates, tailored to a perishable, made-to-order product.
- Runs headless: content, products and menus served over the WP REST API, secured with JWT auth and CORS, and modelled in ACF Pro.
"Cutting Edge" sharpening service
cuttingedge.viidohtem.co.ukA distinct brand site for Vii Dohtem's Wiltshire-based knife and tool sharpening service. "Tools deserve care, not replacement."
- A Next.js 15 / React 19 application with GSAP motion design: a services showcase ("Why We Sharpen", "Services for Creatives"), location content, and its own shop driven from a generated catalogue.
- Custom touches include a build-time catalogue generator and a shared "smoke" brand-motif animation layer.
HACCP compliance, made simple
haccp.viidohtem.co.ukA purpose-built food-safety compliance product for modern food producers: real-time production tracking, automatic documentation and complete traceability to stay audit-ready. Built as a separate Next.js application.
- Production-run tracking with real-time monitoring of critical process steps.
- Temperature and humidity logging at each stage, with sensor-data import and interactive trend charts.
- Document management: attach certificates, lab reports, photos and sensor data to any batch, with smart scoping.
- Supplier traceability: track supplier lots across production runs with automatic document sharing.
- Role-based team collaboration, plus batch lookup and history with complete audit trails.
- Recipe calculator (define once, auto-calculate ingredients by batch weight) and duration validation (enforce min/max process times, auto-flag deviations).
Under the hood
Custom development & infrastructure
Vii Smoke Effect
A bespoke WordPress plugin providing a configurable floating "smoke puff" visual effect (ACF-driven settings, optimised WebP assets) that reinforces the smoked-food brand identity across the estate.
- Single-VPS multi-site hosting: an nginx reverse proxy fronting PHP 8.3-FPM and MariaDB, with an isolated server block and TLS certificate per subdomain.
- Automated TLS: Let's Encrypt (ECDSA) certificates with certbot auto-renewal and an A-rated SSL configuration.
- CI/CD via GitHub Actions: push-to-deploy pipelines for staging and production (Composer install, SSH deploy, post-deploy autoloader optimisation).
- Three-environment workflow (local → staging → production) with environment-specific config and safe database/media sync tooling (automatic backups and URL rewriting).
- Dockerised local development: a reproducible MariaDB and phpMyAdmin stack.
Recent work · Aug 2026
Production TLS incident
Diagnosed and resolved a certificate outage on the primary domain. The root cause was a missing apex DNS record silently blocking Let's Encrypt validation; I reissued the certificate to an A rating and added a canonical apex → www redirect.
Need a platform built and looked after end to end?