A Decade of Growth: From Legacy Drupal to Modern Headless
Back to Case Studies
E-commerce & Retail

Justin David

A Decade of Growth: From Legacy Drupal to Modern Headless

A decade-long partnership, now live on headless Next.js

Justin David is a family-owned fabric supplier serving high-end restaurants and hotels nationwide. Over a decade-long partnership, we've helped them evolve from an unmaintainable Drupal site to a custom WordPress solution—and now to a modern Next.js and Directus platform that went live in July 2026, carrying a decade of order history with it.

About the Client

A multi-generational family business supplying premium fabrics for the hospitality industry—from upholstery for restaurant banquettes to drapery for boutique hotels. Their reputation is built on quality materials and personalized service, with a catalog of nearly 600 patterns and more than 5,500 orderable colorways.

The Full Story

The Challenge

When Justin David first came to us, they were stuck. Their aging Drupal site was nearly impossible to update—even simple content changes required developer intervention. But the bigger problem was their catalog. Thousands of fabric SKUs, each with unique attributes like color, material, pattern, and durability rating, and no way to showcase them online.

Their dream was straightforward: let customers browse the catalog, filter by specifications, and request samples directly through the website. Their reality was phone calls, paper catalogs, and missed opportunities.

Our Solution: Phase 1 (WordPress)

We migrated Justin David from Drupal to WordPress and built a custom catalog management system from scratch:

1. Custom Post Architecture

We designed a hierarchical structure organizing fabrics by collection, pattern, and colorway—with attributes flowing from parent to child. This let their team manage thousands of SKUs without drowning in repetitive data entry.

2. Advanced Fabric Finder

Customers could finally browse online, filtering by color family, material type, application, and durability. What used to require a phone call now took seconds.

3. Sample Request System

Customers could build a list of fabric samples and submit requests directly through the site—no phone tag, no lost emails.

4. Warehouse Dashboard

We built a simplified shipping interface for their fulfillment team. Warehouse staff could process sample orders without ever touching the WordPress admin, reducing errors and training time.

The system worked beautifully. For nearly a decade, it powered Justin David's digital growth—more traffic, more sample requests, more customers discovering them online.

The Growing Pains

By 2023, success had created new challenges.

The catalog had grown to thousands of colorways. Traffic and orders had increased substantially. And WordPress was showing its age:

  • Performance degradation — Complex filtering queries slowed page loads, especially on mobile devices
  • Plugin dependencies — Critical functionality relied on plugins requiring constant updates and conflict resolution
  • Server limitations — PHP and MySQL constraints made certain features impractical to build
  • Rising maintenance costs — More time spent keeping the system stable than improving it

Justin David's wishlist kept growing: a real portal for their national rep network, carrier-integrated shipping instead of hand-keyed labels, and a catalog that stayed fast as it grew. WordPress couldn't deliver these efficiently.

Our Solution: Phase 2 (Next.js + Directus)

We rebuilt Justin David's platform on a modern headless architecture. It went live in July 2026.

1. A Catalog That Stays Fast

The React Server Components frontend renders nearly 600 patterns and more than 5,500 colorways without the query bottlenecks that dogged the old site. The Fabric Finder filters the full colorway catalog by color family, fabric type, application, and collection—narrowing thousands of options to the right shade in a single pass.

The Justin David Fabric Finder, showing colour-swatch and fabric-type filters alongside a result count of 5,524 colorways.
The Fabric Finder filtering the live catalog down from 5,524 colorways.

2. Directus CMS

A flexible, API-first content management system gives their team more control than WordPress offered, without the plugin overhead. Content edits fire webhooks that selectively revalidate only the affected pages, so the catalog stays current without full rebuilds.

3. Rep Network & Territory Portal

Their national sales network now has a dedicated portal. Territories are defined by state, region, or explicit ZIP rules—including split ZIPs where two reps share a metro—and every incoming order is automatically attributed to the right rep. Reps see their own clients, the wider orders in their territory, and can claim new accounts directly. A scheduled job emails each rep a PDF territory report, replacing a manual reporting process.

A sales rep's Orders in Territory view, listing orders matched to their territory with status badges, client flags and a date-range PDF report download.
A rep's territory view: orders auto-matched by shipping address, with one-click client claiming and a date-range PDF report. Sample data shown.

4. Warehouse & Shipping Automation

The fulfillment team works from a purpose-built dashboard that generates real FedEx and UPS labels and packing slips from the order itself. Orders that can't ship complete are split, with the backordered portion tracked separately, and delivery status is polled from the carriers—so customers are notified when the package actually moves, not when someone remembers to click a button.

The warehouse shipping dashboard showing an open order with customer and ship-to details, sidemark, and per-item Ready to Ship or Backordered controls.
The warehouse dashboard, where each item is marked ready or backordered before a carrier label is generated. Sample data shown.

5. A Decade of History, Carried Forward

Rather than starting clean, we migrated 8,153 historical orders from the legacy platform and matched them to the new accounts. Customers and reps kept their full order history through the switch—no "your orders start today."

The Results

The platform went live at justindavid.com in July 2026, replacing the WordPress site that had served the business for nearly a decade.

  • The full catalog—596 patterns and 5,500+ colorways across 30 collections—is browsable and filterable online
  • 62 rep territories are defined and automatically attributed, with weekly reporting handled by the system
  • Sample fulfillment, carrier labels, backorder splitting, and delivery notifications run from one dashboard
  • 8,153 legacy orders migrated so no customer lost their history

A note on scope: the platform is a sample-request and fulfillment system, not a checkout. Justin David's fabric samples are free to their trade customers, and orders route to the warehouse for fulfillment rather than through a payment gateway.

Technologies Used

Phase 1: WordPress, Custom Post Types, PHP, MySQL

Phase 2: Next.js (App Router, React Server Components), React, Directus, PostgreSQL, Tailwind CSS, FedEx & UPS APIs, Resend, DigitalOcean

Key Results

5,500+
Colorways Online
8,153
Orders Migrated
10+ Years
Partnership
3 Generations
Platforms

Services Provided

Website Modernization
Custom Web Development
Headless CMS Implementation
Shipping & Carrier Integration
Legacy Migration

Ready for Similar Results?

Let's discuss how we can help transform your business.