Online store · 2026
Moving a busy store off WooCommerce
An online store had years of orders on WooCommerce. I built it a new platform, from the database to the servers, and moved the store across with its orders and customer accounts.
Copies and timing from the drill; the traffic shown is illustrative.
65,521
orders carried over, with their history
~88,000
customer accounts carried over
11,697
paid orders on the new platform since it opened on 14 September 2026
332
paid orders on the busiest day so far
0
failed requests when 10,000 simulated shoppers browsed for a minute, before launch
Figures as of 5 November 2026.
The move
Orders, accounts and guest checkouts came over with their history, so customers kept their past orders. 1,696 customers had duplicate carts from the old site; they were merged without losing a paid line.
The platform
A Next.js storefront and admin, a separate sign-in service, and a Strapi back end on PostgreSQL and Redis, with background jobs for the slow work. Payments go through two bank gateways, a buy-now-pay-later provider and a store wallet.
Stock and pricing
Stock sync with the accounting software ran 5,378 times with a 98.5% success rate. Prices follow the USDT rate about every five minutes. If a rate fetch fails, the current prices stay in place.
Speed and load
On a phone, the product list now shows its main content in about 1.5 s instead of 6.5 s (one lab test), with 35% less JavaScript on first load. Before launch, 10,000 simulated shoppers browsed for a minute: 381,000 requests, none failed, and 95% were answered within 241 ms.
Loading the product list
Replayed in real time from one lab test: the time until the main content shows.
Running it
It runs on Docker Swarm, with many copies of each part. In a drill, half of the storefront’s 28 copies were stopped, and it was back to full strength in 8 seconds. New releases were rehearsed blue-green on a staging copy, with no failed health checks.
Built with
Next.js · React · Strapi · PostgreSQL · Redis · BullMQ · Docker Swarm · Sentry