KandyLover — Swedish Candy E-commerce Rebuilt on Next.js 15

Migrated a plugin-heavy WooCommerce candy shop to a custom Next.js 15 storefront with a live build-your-own-box builder, 7-market multi-currency checkout, and a 32+ module admin dashboard. Faster pages, full control, no plugin tax.

Project Type: E-commerce
Platform: Next.js 15 (App Router) on Vercel
Tech Stack: Next.js 15 App Router, React 18, TypeScript, Drizzle ORM, MySQL 8, Stripe, PayPal, AWS S3, Resend, Nodemailer, next-intl, Vercel
Year: 2025
KandyLover — Swedish Candy E-commerce Rebuilt on Next.js 15

Project Overview

KandyLover is a Swedish candy e-commerce brand that outgrew WooCommerce. I rebuilt it from the ground up on Next.js 15 — a custom storefront with a real-time build-your-own candy box builder, native checkout across 7 markets (JPY, AUD, USD, CAD, AED, QAR, SAR), a 4-language storefront (English, Japanese, Arabic, Swedish with RTL), and a 32+ module admin dashboard that runs the whole business. The migration cut page load roughly 25-30% and replaced a stack of paid plugins with code the team actually owns. It's live today.

Client
KandyLover
Industry
E-commerce — Swedish Candy / Pick-and-Mix

The Challenge

KandyLover was running on WordPress/WooCommerce and the plugin stack was eating the business alive. Every feature — multi-currency, the candy-box idea, loyalty, the live spin-wheel — meant another plugin, another subscription, another thing that could break on update. Pages were slow, the admin was a patchwork, and nobody truly owned the code. They needed a real store that could do pick-and-mix the way customers actually shop, sell across multiple markets, and let staff run everything from one place — without paying a plugin tax to do it.

What I Built

  • Migrated the full store off WooCommerce onto a custom Next.js 15 App Router storefront with TypeScript and Drizzle ORM on MySQL 8
  • Real-time build-your-own candy-box builder with live weight tracking as customers add and remove items
  • Native multi-currency engine across 7 markets — JPY, AUD, USD, CAD, AED, QAR, SAR — with locale-aware tax and shipping logic, no third-party plugin
  • 4-language storefront via next-intl — English, Japanese, Arabic, Swedish — with full RTL support
  • Custom admin dashboard with 32+ management modules covering orders, products, inventory, customers, coupons, gift cards, box tiers, blog CMS, SEO manager, staff roles, audit log, and analytics
  • Stripe and PayPal payments wired in directly with idempotent webhooks
  • Gamification and loyalty system — spins, points, referrals, and membership tiers — to drive repeat purchases
  • Live-stream commerce with an on-stream spin wheel for selling during broadcasts
  • Abandoned-cart recovery with transactional email via Resend and Nodemailer
  • Staff RBAC with an audit log, plus automated S3 backups for store data and assets

Key Features

Build-your-own candy boxLive weight tracking7-market multi-currency4-language storefront (EN/JA/AR/SV)32+ admin modulesStripe + PayPalGamification & loyaltyLive-stream commerceSpin wheelAbandoned-cart recovery

Results

~25-30%
Faster than the WooCommerce stack
3.5s → 1.8s
Largest Contentful Paint
7
Markets supported (JPY, AUD, USD, CAD, AED, QAR, SAR)
32+
Custom admin modules replacing plugins

Replaced a fragile 15-plugin WooCommerce setup with a single Next.js app. No more plugin conflicts, no more $200/mo in plugin licenses, no more slow checkout.

KandyLover engineering brief

Discuss this project

Fill out the form below to get started.