Fashion Tech · 2020–Present

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
- V1→V2Dual 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.
Stylist Dashboard
The command center where stylists manage their entire business—clients, products, earnings, invoices, and team collaboration.
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.
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.
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.
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.
- 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.