All work

Platform Liberation + AI Employee

One inventory engine. Three storefronts. 135,000 SKUs in real-time sync.

A 135K+ SKU laptop parts operation was running across 3 eBay accounts and 2 Shopify storefronts with no shared inventory layer. Parts sold on eBay stayed live on Shopify. Multi-quantity listings had no safe decrement logic. We rebuilt it as one system.

Next.jsSupabaseeBay SyncShopifyMulti-tenantAI EmployeeGoogle Merchant Center
135K+
Active SKUs
synced across 3 eBay accounts
3
Storefronts
one Supabase source of truth
<5s
Sync latency
sale to eBay end/decrement

The Problem

Parts sold on eBay were still showing available on Shopify. Every oversell was a customer complaint.

Inventory oversell was the core failure. When a part sold on eBay, it could still show as available on Shopify. When it sold on Shopify, eBay listings stayed live. Multi-quantity listings had no safe decrement logic — cancellations, fraud flags, and restores all touched inventory differently and got it wrong. A third-party repair shop also needed to browse and reserve parts, with no system to support it.

What Was Built

Real-Time Inventory Sync

GitHub Actions + Shopify Webhooks
  • 135K+ SKU catalog synced from 3 eBay accounts via GitHub Actions — runs on every eBay event
  • Shopify sale → eBay listing ended or qty decremented within seconds via webhook chain
  • Multi-quantity safety: remaining qty calculated before any EndItem call — listings with stock never ended prematurely
  • Cancel reason logic: inventory cancels decrement qty (unit lost), all other reasons restore and relist on eBay automatically

Reseller API + Repair Shop Storefront

Next.js + Supabase
  • /api/reseller/products — live inventory feed for third-party repair shops, per-client markup in Supabase
  • Reserve flow: shop reserves → qty decremented in Supabase → Shopify adjusted → eBay ended if qty hits 0
  • Cancel flow: cancelled order → relist on eBay + restore qty — fully automated
  • Stock changes on any channel propagate across all storefronts immediately

OnlineUsedLaptops.com — Second Storefront

Next.js App Router
  • Filtered view of the same Supabase inventory — complete device categories only, separate brand identity
  • Separate Shopify store with independent webhook registration and token management
  • Product schema injected in SSR'd initial HTML — resolved RSC Suspense streaming bug hiding schema from crawlers
  • 7 location pages, blog, warranty page — full SEO and AEO coverage

Sara — AI Employee

Claude Haiku + Prompt Caching
  • Handles customer queries across the full 135K SKU catalog — live 24/7
  • Prompt-cached system prompt for cost efficiency — sub-cent per conversation
  • Chargeback defense metadata flags, AS-IS sale gate, shipping enforcement — code-level, not prompt-only
  • Compatibility mismatch intercepts and order lookup by phone/email — zero human handoff needed

Search Performance

LIVE

Pulled live from Google Search Console API · Jul 31, 2026, 8:14 PM UTC

8K
Clicks
last 28 days
404K
Impressions
last 28 days
25K
Clicks
last 90 days
1.3M
Impressions
last 90 days

Top Pages (90 days)

/
858clicks
6.5pos
/collections/razer
106clicks
13.1pos
/products/acer-nitro-5-an515-42-r5ed-15-6-amd-ryzen-5-2500u-2ghz-8gb-hdd-reset-1tb
81clicks
7.3pos
/products/macbook-pro-13-a1706-mid-2017-mpxv2lla-lcd-screen-assembly-gray-661-07970
62clicks
3.5pos
/products/lenovo-ideapad-gaming-3-15ach6-15-6-fhd-120hz-ryzen-5-3-3ghz-8gb-512gb-gtx-1650-306893092122
51clicks
6.3pos

Top Queries (90 days)

gotlaptopparts
238clicks
1.0pos
laptop parts
52clicks
6.8pos
got laptop parts
50clicks
1.1pos
acer nitro 5
35clicks
2.8pos
ideapad 410 keyboard
22clicks
7.4pos

Ready?

Build your own inventory engine.

Start a Project