Case 06 — E-commerce & platform migration

GebaShop: a live Korean-skincare store taken off WordPress and rebuilt as one TypeScript app on Cloudflare’s edge — storefront, payments, shipping and a bilingual admin, no CMS behind it.

GebaShop was a working WordPress/WooCommerce store; it now runs as a single TypeScript application rendered on Cloudflare’s edge — storefront, customer accounts, a bilingual admin and every API route in one codebase, no CMS and no plugin layer. Card and Vipps payments clear real money, Posten Bring rates and labels are live, and the front end ships with no UI framework — no React, no jQuery, no page builders.

GebaShop — E-commerce & platform migration website homepage by Infinite Semantic Inc.

01 — Challenge

Where it started

Migrating a live shop is a different job from building a landing page: the catalogue, order history, discount rules, content and — critically — the SEO weight of every old URL had to move without breaking. A plugin stack that had accreted for years needed replacing with code the studio fully controls, while the store kept taking orders. Every legacy WooCommerce address had to keep resolving, or the shop would lose the search ranking it already had.

02 — Solution

What we built

The engine is one Astro-SSR app on Cloudflare Workers over D1 (SQLite), R2 (images) and KV (sessions, rate-limits, reset tokens); prices are stored as integer øre, never floats. Billing is real: QuickPay v10 with Clearhaus acquiring, card and Vipps, capture and refund from the admin, and every webhook verified by HMAC-SHA256 over the raw body — the amount is always recomputed server-side from the cart, never trusted from the client. Shipping is live: Posten Bring rates by postcode and weight, pickup-point lookup, and one-click booking with label and tracking from the order screen. On top sits a from-scratch bilingual (Norwegian / Russian) admin over the same edge database, plus in-browser WebP resizing on upload, FTS5 search with Norwegian folding, and a bought-together block computed from real co-purchases. Security is not bolted on: PBKDF2-SHA256 at 100 000 iterations, parameterised SQL throughout, and a middleware guard that returns 401 rather than leaking data. Even product pages hold ~100 PageSpeed — a full shop with billing that still loads like a static site.

GebaShop — E-commerce & platform migration website by Infinite Semantic Inc., screen 1
GebaShop — E-commerce & platform migration website by Infinite Semantic Inc., screen 2
GebaShop — E-commerce & platform migration website by Infinite Semantic Inc., screen 3
GebaShop — E-commerce & platform migration website by Infinite Semantic Inc., screen 4
GebaShop — E-commerce & platform migration website by Infinite Semantic Inc., screen 5
GebaShop — E-commerce & platform migration website by Infinite Semantic Inc., screen 6

03 — Result

What we delivered

App routes
83
API endpoints
33
Admin screens
19
Architecture
Astro SSR on Cloudflare Workers · D1 · R2

04 — Proof

Measured, not claimed

Third-party audits, captured at launch. Every score is independently verifiable.

Measured at launch · July 2026

100 Performance
96 Accessibility
100 Best Practices
100 SEO
3/3 Agentic
Google PageSpeed · desktop · gebashop.no Verify on PageSpeed →

Want results like these in writing? Start with the 5-minute brief.

Written process, fixed quotes, no calls — ever.