Fashion Tech · 2020–Present

GoodPix logo

GoodPix

Six years in, still shipping

We arrived to fix some CSS. We stayed to rebuild everything—twice. Six years in and still shipping: 5,804 commits across 13 repositories, top committer on 10 of them, from rescuing the legacy platform to reconstructing it in Next.js and consolidating the estate into a monorepo.

The results

  • 6+Years EngagedMay 2020 to today—continuous, still shipping
  • 5,804Commits AuthoredTop committer on 10 of the 13 repositories
  • 13RepositoriesFrontend, backend, extension, serverless, monorepo
  • V1V2Dual PlatformTwo build eras, one migration path, zero disruption

Overview

Challenge

GoodPix was challenged by technical debt. A single EC2 instance required manual reboots when the system crashed. The legacy Create React App—ejected onto webpack 4 and pinned to React 16—had become unbearable: dev builds took minutes after simply pressing save locally, production builds even longer. No CI/CD. No automated deployments. Every release was manual, risky, and slow. The Chrome Extension was built on deprecated Manifest V2 APIs facing sunset. The codebase had calcified into something no one wanted to touch.

Solution

We didn't just patch—we rebuilt, and we are still rebuilding. The first era stabilized and modernized the legacy platform: a V2 API architected inside the existing Node.js backend for gradual migration without disruption, infrastructure moved off a single fragile EC2 instance onto auto-scaling Elastic Beanstalk, GitHub Actions pipelines replacing manual deployments across six repositories, and the Chrome Extension completely redesigned and rebuilt for Manifest V3. The second era, beginning March 2024, is a ground-up reconstruction of the core platform in Next.js—now Next.js 15 on React 18, 802 commits deep. Alongside it: GoodPix Commerce, Shoppable Sites and Client Sites rebuilt from scratch, a serverless SAM API, and a Turborepo monorepo now pulling the frontend, shoppable site, clipper, payout, redirect, and scheduled-events services under one roof with Terraform infrastructure beside them.

Outcome

Developer velocity transformed—builds that took minutes now take seconds. Deployments that required babysitting now happen automatically. V1 users continue operating uninterrupted while V2 users experience the modern platform, and a clear upgrade path lets them migrate on their timeline. The same Shoppable Site codebase intelligently serves both generations. What was once technical debt is now technical advantage—and the work continues, with commits landing this week.

The transformation

What we built

  • Platform ReconstructionCore application rebuilt from the ground up in Next.js, beginning March 2024 and running today—802 commits on Next.js 15 and React 18. Legacy ejected CRA retired. Modern architecture enables rapid iteration and maintainability for years to come.
  • Infrastructure ModernizationMigrated from a single manually-managed EC2 instance to auto-scaling Elastic Beanstalk. No more 3am reboots. No more downtime anxiety.
  • CI/CD PipelineGitHub Actions workflows for build, test, and deploy across six repositories replaced entirely manual processes. Every commit is validated. Every release is reliable.
  • V1/V2 Migration ArchitectureDesigned a dual-platform system: V1 users stay on legacy until ready, V2 users on the modern platform with enterprise-grade Auth0 and team capabilities. One Shoppable Site codebase serves both.
  • GoodPix Clipper UpgradeA complete redesign and eventual upgrade to Chrome Manifest V3, now shipping at version 4.9. Modern architecture, better performance, and ready for the next decade of browser evolution.
  • GoodPix CommerceIntroduced comprehensive commerce capabilities—products, services, digital goods, invoicing with taxes and fees, Stripe-powered payments and team commissions with Stripe Connected Accounts.
  • Serverless Services & MonorepoPayout, clipper, redirect, and scheduled-events split into independently deployed serverless services, joined in 2026 by a new SAM API. A Turborepo and pnpm monorepo is now consolidating the whole estate—apps, services, shared types, and Terraform infrastructure—under one build graph.

Architecture

The new foundation

A sophisticated dual-generation architecture that serves V1 and V2 users from unified codebases. The Shoppable Site and Client Site repositories intelligently route users based on their platform version, while the V2 API coexists with legacy endpoints for zero-disruption migration. A set of independently deployed serverless services handles payouts, clipping, redirects, and scheduled work, and a Turborepo monorepo is now drawing the estate together.

  • Next.js Platform (V2)Next.js 15, React 18Modern stylist dashboard
  • Legacy Platform (V1)Create React App, React 16Maintained until sunset
  • Unified Shoppable SitesReact, Multi-tenantServes both V1 & V2 users
  • Chrome ExtensionManifest V3Rebuilt for modern browsers
  • V2 API LayerNode.js, Express, MongoDBModern endpoints alongside legacy
  • Serverless ServicesAWS SAM, LambdaPayouts, clipper, redirects, scheduled events
  • Auth0 IntegrationAuth0, TeamsV2 identity & team management
  • Elastic BeanstalkAWS, Auto-scalingReplaced single EC2 instance
  • CI/CD PipelineGitHub ActionsZero manual deployments
  • MonorepoTurborepo, pnpm, TerraformConsolidating the estate

Technology

The modern toolkit

  • FrontendNext.js 15 · React 18
  • BackendNode.js · Express
  • DatabaseMongoDB
  • InfrastructureAWS Elastic Beanstalk · Terraform
  • ServerlessAWS SAM
  • BuildTurborepo
  • CI/CDGitHub Actions
  • PaymentsStripe Billing
  • CommissionsStripe Connect
  • AuthenticationAuth0
  • BrowserChrome Extension

The result

See what emerged

Chrome Clipper

A browser extension that lets stylists capture products from any retailer instantly. One click to save product details, images, and affiliate links.

Product CaptureCapture products from any retailer
Quick ActionsSend to sites, boards, or groups
Instant SaveSeamless product extraction

Stylist Dashboard

The command center where stylists manage their entire business—clients, products, earnings, invoices, and team collaboration.

Sign UpOnboarding new stylists
Login PortalSecure authentication flow
Get InspiredLanding page after login
Content LibraryOrganize products into boards

Content Library

Boards

The flagship feature—a fully responsive canvas editor where stylists create stunning visual boards for their clients. Drag-and-drop products, add text, and design mobile-ready compositions.

Canvas EditorFully responsive drag-and-drop canvas
Product DrawerBrowse and add products to the canvas
Selected ItemsManage items on the board
Product DetailsView and edit product information
Text ToolsRich text editing capabilities

Content Library

Images

Upload, organize, and edit images. Stylists can enhance their visuals with built-in editing tools before adding them to boards or client communications.

Images FeedBrowse and manage uploaded images
Image EditorEdit and enhance images

Content Library

Product Groups

Organize products into curated groups for easy sharing and client presentations. Create themed collections that can be sent directly to clients or embedded in boards.

Product Group EditorCreate and manage product collections

Content Library

Collections

Curate and organize products into themed collections. Share entire collections with clients or use them as building blocks for boards and presentations.

Collections FeedBrowse and manage your collections
  • Collection EditorComing soon
  • Collection SharingComing soon

Client Management

Manage client relationships, track interactions, and organize client-specific content. A central hub for all client communications and preferences.

  • Client OverviewComing soon
  • Client DetailsComing soon

Earnings & Analytics

Track commissions, affiliate earnings, and business performance. Detailed analytics help stylists understand their revenue streams and optimize their business.

  • Earnings DashboardComing soon
  • Analytics OverviewComing soon

Shoppable Sites & Client Sites

White-label storefronts where clients browse and purchase. Each stylist gets their own branded site with custom domain support.

Shoppable SiteBranded shopping experience

Tell us what youre building.