
Gourmet Furnishers
There was a preloader that doubled as a brand introduction. Hotjar showed nobody was watching it — so we cut the wait instead of dressing it up.
The Challenge
The old site ran on WordPress, Elementor, and WooCommerce, with content and commerce baked into one stack. Fine for a small catalog. Not fine for a brand pulling thousands of visits a month across three product lines — furniture, KDW, and Gourmet Homes. Every load meant Elementor rebuilding its widget tree and a browser downloading whatever those plugins shipped. So there was a preloader: brand and product shots cycling while the page caught up. Made sense on paper. Then we checked Hotjar. Nobody was watching it — people were trying to scroll before the page had even finished loading. The moment it let them through, they skipped straight to categories, past the one section explaining that Gourmet is actually three things: furniture, Homes, and KDW, not one.
The Solution
Two systems, split cleanly. WordPress and WooCommerce moved to a locked-down subdomain and kept doing what they're already good at — catalog, orders, the admin the team already knows. Next.js took the main domain and became the only thing a shopper's browser actually renders, pulling data through REST instead of shipping a page builder's markup on every visit. A revalidation endpoint means publishing a product in WordPress updates the live site without a redeploy — with close to 300 products across three verticals, that matters.
Strategy & Approach
With the backend fixed, the preloader had nothing left to cover for. So it's gone. The homepage loads on arrival now, and the story it used to tell before you could scroll — furniture, Homes, KDW, three things under one name — moved into the scroll itself. Same information. It just reaches people who are already moving, instead of asking them to stand still for it first.

Visual Direction
The look changed with the architecture. Dark, photography-led hero, Playfair Display headlines, one orange accent running through near-black and white sections. The header does more now too — Furniture, KDW, and Homes get their own space in the mega-menu instead of being folded into one generic products tab.
User Experience
A few things got built that Elementor made expensive: a package creator that lets someone build a room from individual pieces and auto-applies a 30% bundle discount at checkout, and a lead wizard that qualifies bespoke consultations — kitchen, wardrobe, door, or a full Gourmet Homes project — and writes straight into WordPress instead of sitting in a generic contact form. City landing pages handle local search without hand-building a template for every city.
Interaction & Motion
Motion runs on GSAP and Lenis — the same setup driving the scroll reveals that now carry the brand story. None of it blocks anything the way the preloader did. It's animation on top of a page that's already loaded, not a gate in front of one.



Development
Next.js 16 on the App Router, React 19, talking to headless WordPress and WooCommerce on an isolated, CORS-locked subdomain. Checkout, orders, contact, and newsletter signups all run through server-side API routes instead of exposing WooCommerce keys to the browser — Zod validates input, Turnstile handles bot traffic on public forms. The frontend runs as its own Node app, separate from the WordPress instance behind it.
SEO Strategy
Moving an established site to a different architecture is risky for rankings, so keeping them was non-negotiable. Structured data generates per page type, sitemap and robots.txt build dynamically instead of being hand-maintained, and a custom SEO registry keeps metadata synced from WordPress — so editors still control titles and descriptions from an interface they already know, no deploy required.
Challenges
Rebuilding checkout and orders against WooCommerce's REST API — without changing anything about how orders show up for the team running the business day to day — took more care than any of the frontend work. The package creator and lead wizard also had no plugin to lean on this time. Both got built from nothing.

Execution & Timeline
Frontend moved to Next.js while WooCommerce kept running the business underneath — catalog, orders, and content never stopped. WordPress and WooCommerce shifted to an isolated, CORS-locked subdomain first, then Next.js took over the main domain.
Results
Load time is the number that matters most here: over 50% faster than the Elementor build it replaced. Every visitor reaches the homepage instantly now instead of sitting through an intro most of them were skipping anyway — and the brand story that intro used to carry is sitting inside the scroll people were already doing.
Load Time
Faster average page load versus the Elementor + WooCommerce build
Architecture
WordPress + WooCommerce decoupled from the Next.js frontend it serves
Product Catalog
Migrated across Furniture, KDW, and Gourmet Homes without a rebuild per edit
Editorial Luxury. Dark, photography-led hero, Playfair Display headlines, one orange accent running across near-black and white sections — enough to make three sub-brands read as one identity, not three competing catalogs.
Typography
Headlines
Serif headline font carrying the editorial, luxury register across hero and section titles.
Body & Interface
Clean sans-serif for product copy, navigation, and functional UI across the storefront.
Color Palette
Gourmet Orange
Primary brand accent and CTA color
Charcoal
Primary text on light sections
Pure White
Base background
Near Black
Dark hero and immersive sections
The preloader was never really the problem. Outgrowing a page-builder without deciding to move off it — that was. Furniture, Homes, and KDW don't need a loading screen to make sense anymore. They just needed the wait gone.