Yuxiang Jewelry: A Crashing Store Rebuilt in 3 Days
海水不可斗量數位工作室 (OceanAds) is a digital operations studio based in Taichung, Taiwan, that provides website development, Google Ads management, SEO, and workflow automation for small and medium-sized businesses, built as one system so a brand can launch, take orders, track performance, and iterate. This case study describes how we replaced a failing WordPress + WooCommerce jewelry store with a custom storefront that stays up when live-sale traffic hits.
The Problem: A Store That Failed on Its Best Days
Yuxiang Jewelry is a jewelry e-commerce business whose store was originally built by another agency on WordPress + WooCommerce. Within half a year of launch, the pattern every WooCommerce owner dreads set in: slow page loads, failed checkouts, product pages that would not render. The previous vendor's answer was always the same — upgrade the server — and tens of thousands of NT dollars later, nothing had improved.
The breaking point was Instagram. The owner sells through IG live streams, and on stream days traffic could exceed 5,000 visitors. Because WordPress executes PHP and queries the database for every request, those spikes overwhelmed the stack precisely when the business was earning most. Industry research the original article cites puts the stakes plainly: every 2 seconds of load delay costs roughly 4% of revenue, and pages taking over 4 seconds lose about 63% of visitors.
A look inside the admin panel confirmed the diagnosis: dozens of plugins, several expired and conflicting, on an outdated PHP version — the classic WooCommerce failure profile rather than anything unique to this shop. WordPress remains an excellent CMS (it powers about 43.4% of the web), but this was a workload it was never chosen carefully for.
The Rebuild: 3 Days, From Scratch
We did not patch the old site. We rebuilt it — architecture, front end, and back office — in 3 days, on a stack chosen for exactly this load pattern:
- Framework: Next.js (App Router) with TypeScript, styled with Tailwind CSS v4.
- Infrastructure: Cloudflare Pages for deployment, Cloudflare D1 as the database, Cloudflare R2 for image and video storage — content is served from the edge instead of re-rendered per request.
- Auth and mail: Google OAuth and LINE Login for one-tap member sign-in, email verification with a 6-digit code and 60-second resend cooldown, transactional mail through the Resend API.
The storefront was designed around how this shop actually sells. An Instagram Reels carousel plays the owner's videos with a center-enlarged perspective effect; products display in four curated tabs (new, featured, best-selling, sale); items support multiple variants with independent price and stock per size or style. Adding to cart locks inventory in real time and auto-releases it after 24 hours, so live-stream buyers cannot oversell a one-of-a-kind piece. Checkout computes shipping by method, and the confirmation page offers one-tap copy of the bank transfer number plus a direct LINE contact button — matching how Taiwanese jewelry buyers actually pay.
The admin back office gives the owner full control without a developer: product CRUD with drag-sort R2 image uploads, order flows from pending through shipped with automatic stock release on cancellation and automatic shipping-notification emails, hero video replacement, announcement marquee editing, member management, and site-wide policy text managed in one place. Accessibility was not an afterthought: the site ships full ARIA semantics and respects prefers-reduced-motion throughout.
Why It Matters
The lesson is not "WordPress is bad." It is that architecture must match the sales pattern. A live-commerce jewelry business needs burst capacity, variant-level inventory discipline, and a back office the owner can run from a phone between streams. Once the platform matched the business, the recurring costs disappeared with the crashes: no plugin subscriptions, no panic server upgrades, and the owner holds the source code and every account. The original write-up of this project is available in Chinese on our blog.
Case FAQ
Q: Why did the original WooCommerce store keep failing?
Because WordPress renders every page through PHP and database queries, dozens of plugins competed for resources, and Instagram live sales pushed daily traffic past 5,000 visitors — a load pattern that architecture handles poorly. Upgrading servers treated the symptom, not the cause.
Q: How could a full e-commerce rebuild take only 3 days?
The scope was sharply defined and nothing was patched: the site was rebuilt from scratch on Next.js with TypeScript, deployed on Cloudflare Pages with the D1 database and R2 storage, so there was no legacy code to untangle and no plugin chain to reconcile.
Q: What does the store owner control without a developer?
The admin back office covers product CRUD with variant-level price and stock, order status flows with automatic stock release and shipping notification emails, hero video and Reels management, announcements, member management, and site-wide policy text — all editable by the owner.