All Projects

Control Booth

Designed and built a custom internal admin dashboard for Pantone, hosted on the BigCommerce storefront and gated by customer group permissions — bypassing the complexity of the BigCommerce app ecosystem while giving employees full CRUD access to dealer data, licensee records, validated products, and URL redirects.

Role
Sole Developer & Architect
Year
2024–present
Next.jsTypeScriptBigCommerceAWS LambdaAuroraCustomer Groups
Control Booth admin dashboard showing internal tool cards

The Problem

Pantone has multiple internal data systems that employees need to manage — dealer listings, product licensees, validated device records, URL redirects, and more. Each system has its own AWS backend (API Gateway, Lambda, Aurora), and each needed a frontend editor so non-technical staff could update records without touching a database.

The conventional approach would be to build a BigCommerce App Extension — a separate application registered in BigCommerce DevTools, hosted independently, authenticated via OAuth and signed JWT payloads, and embedded in the BigCommerce control panel via iframe. For a multi-editor system that needed to ship fast, this was too much overhead: app registration, OAuth callback handling, SSO token verification, separate deployment infrastructure, and the ongoing friction of BigCommerce's app ecosystem.

I needed a simpler path.

What I Built

Control Booth — a custom admin dashboard that lives on the Pantone storefront itself, accessible only to employees through BigCommerce customer group permissions. Authorized users log in like any customer, but their customer group grants access to a protected route that serves the full admin interface.

The dashboard presents a card-based launcher with each admin tool. Every editor is fully localized — the entire admin interface translates alongside the storefront.

Dealers. Full CRUD editor for the dealer locator database. Employees can add new dealers, edit existing records (15+ fields including company name, address, coordinates, product groups, contact details), and deactivate listings. Changes write to Aurora via Lambda and appear on the public dealer locator immediately.

Dealer Locator admin editor in Spanish — add dealer form with 15+ fields, product group checkboxes, and address fields

Colored Materials. Licensee management for Pantone's colored materials program. Each product entry supports inline translation across all supported locales — employees edit the en-US, en-GB, fr-FR, de-DE, es-ES, it-IT, zh-HK, and zh-CN values in a single form.

Colored Materials editor in German — product translation form showing all locale fields from en-US to zh-CN

Pantone Validated. Management interface for Pantone's validated product program. Employees maintain licensee records, device models, and the filterable attributes (device type, color space, RIP, ink set) that power the public Pantone Validated listing. The admin editor supports adding new attribute options — when a new device category emerges, employees add it here and it appears in the public-facing filters automatically.

FPO: Consumer Products. Licensee management for consumer product licensing.

Custom Redirects. URL redirect management for the headless Next.js storefront. BigCommerce's built-in redirect tools only work with Stencil storefronts — they don't exist for headless. This editor lets employees create 301/302 redirects with region and locale targeting, plus CSV import for bulk operations.

Custom Redirects editor in French — add redirect form with source slug, target region/locale selectors, and redirect type

Technical Architecture

No app ecosystem, no OAuth. The entire system runs on the existing Next.js storefront. Authentication is handled by BigCommerce's native customer login — if you're in the right customer group, you see the admin routes. If not, you get a 404. No separate hosting, no token exchange, no iframe embedding.

Shared AWS backend. Each editor talks to its own set of AWS Lambda functions via API Gateway. The Lambdas handle CRUD operations against Aurora tables. This backend existed before Control Booth — the editors are a new frontend for existing APIs.

Customer group gating. A middleware check on the Control Booth route verifies the logged-in customer's group membership. This uses BigCommerce's existing customer API — no custom auth system to maintain.

Extensible card launcher. Adding a new admin tool means building the editor component and adding a card to the dashboard. The "More apps coming..." placeholder is there because the architecture supports it — each editor is self-contained with its own route, API integration, and data types.

Why This Approach

The BigCommerce app ecosystem is designed for third-party developers building tools for many stores. For an internal tool serving one organization, it adds complexity without benefit:

  • No app registration — no DevTools account, no approval process
  • No OAuth flow — no callback URLs, no token storage, no refresh logic
  • No separate hosting — runs on the same infrastructure as the storefront
  • No SSO implementation — BigCommerce customer login is the auth
  • Same deployment pipeline — ships with the rest of the site via the existing CI/CD

The trade-off is that employees log in through the storefront rather than the BigCommerce admin panel. In practice, this is a non-issue — they bookmark the Control Booth URL and it works.

Results

Five internal tools, one dashboard, zero BigCommerce app ecosystem overhead. Employees manage dealer data, licensee records, validated products, and URL redirects through a clean interface that deploys with the rest of the site. New editors can be added without any platform-level configuration.

Tech Stack

Next.js 15, TypeScript, BigCommerce Customer Groups, AWS Lambda, API Gateway, Aurora, Tailwind CSS, Next.js Middleware

All Projects