Desislava Headless Storefront

Transitioning from Shopify to a custom Next.js & Docker infrastructure

Project Overview

A self-hosted, headless e-commerce ecosystem for the Desislava brand — replacing a rigid, subscription-based Shopify store with a fully owned, high-performance architecture built on modern React, containerised backends and enterprise-grade networking.

Next.js 14 Tailwind CSS Framer Motion Docker WordPress / WooCommerce MySQL Cloudflare Tunnel Stripe · iDEAL Ubuntu · Minisforum N5
ROLE
Full-Stack Dev
DevOps / Infra
TYPE
Client Project

The Challenge

// OWNERSHIP, PERFORMANCE & SECURITY

Migrate an active e-commerce brand from a rigid, subscription-based Shopify model to a fully owned, high-performance headless architecture — without sacrificing security or uptime. The goal: eliminate recurring platform fees, take full control of the data and storefront, and deliver sub-second page loads on self-hosted hardware.


The Architecture

// FIVE LAYERS, FULLY SELF-HOSTED

01 · FRONTEND

Next.js 14 App Router

A lightning-fast, server-side-rendered storefront built with Tailwind CSS and Framer Motion — sub-second page loads and dynamic image optimisation.

02 · BACKEND

WooCommerce via Docker

An isolated MySQL database and WordPress admin running in Docker containers, bound strictly to local loopback (port 8080) for maximum security against unauthorised access.

03 · INFRASTRUCTURE

Cloudflare Tunnel

Deployed on a Minisforum N5 Air NAS via Ubuntu. A cloudflared reverse tunnel replaces port-forwarding — hiding the home server's IP while adding DDoS mitigation and a WAF.

04 · PAYMENTS

Stripe · iDEAL

Seamless checkout supporting credit cards and Dutch iDEAL through Stripe, with PCI DSS Level 1 compliance handled entirely off-server.

05 · MAINTENANCE

Backups & Assets

Automated 12-hour cron-job backups secure the database and user uploads — accompanied by custom video/image editing and compositing for high-converting product resale.

Storefront

// SCREENS & CAPTURES

🛒

Add storefront screenshots, the checkout flow, and the admin / Docker dashboard here. Drop images into /docs/Projects/Ecommerce/ and swap them into an .ar-mosaic grid (see the Speedboat page for the pattern).