Case study · Premium tableware and home linen, direct to consumer retail
Malacca Tables.
A premium tableware and home linen brand in Madrid moved off WordPress and WooCommerce onto a custom store. Polargate migrated 24 products and 93 variants, and all 65 pages now carry the full catalogue in plain HTML that AI assistants can read.

At a glance
- Client
- Malacca Tables
- Sector
- Premium tableware and home linen, direct to consumer retail
- Year
- 2026
- Live site
- malacca.es
- Stack
- ViteReactTypeScriptTailwind CSSshadcn/uiReact RouterTanStack QuerySupabasePostgreSQLDenoVercelGitHub ActionsNode.jsResendSearch ConsoleMeta Ads

01 · Malacca Tables
The challenge.
After two years selling online on WordPress and WooCommerce, the brand wanted to take the next step: a store of its own, built to grow. The brief was shipping priced from the real carrier tariffs, every price and product claim stated exactly, and a catalogue that AI assistants can read. That last point shaped the work: GPTBot, ClaudeBot, PerplexityBot and OAI-SearchBot do not run JavaScript, so the new store had to carry every product in plain HTML.
For example: 38 Spanish and English routes prerendered as static HTML. Santo Domingo Bay
02 · Malacca Tables
What we built.
Polargate rebuilt the shop on its own stack instead of another plugin ecosystem: Vite, React and TypeScript with Tailwind and shadcn/ui, Supabase for Postgres, Storage, Auth and Deno edge functions, and Vercel for hosting. We read the old catalogue out through the public WooCommerce Store API and verified it piece by piece: 24 products, 93 variants, 19 series, 9 categories and 137 images rebuilt as WebP at three widths. All 65 routes are pregenerated at build time with their own metadata and JSON-LD, and three build guards fail the build if any route drops below 400 characters of text.

For example: 11 modules delivered in Phase 1. Elite Smart Build
03 · Malacca Tables
The result.
The catalogue is now readable by search engines and AI assistants alike: 105,212 characters of body text across 65 URLs, up from zero, refreshed every morning by a GitHub Actions cron that triggers a Vercel deploy hook. A product feed with 92 references is live for Google Merchant Center, Meta and Pinterest, and a 64 page sitemap is accepted in Search Console. Card payments were verified with a real charge before opening. The shop has not traded long enough to report sales, and Polargate does not publish numbers it cannot attribute.
- characters of body text readable by AI crawlers across 65 URLs, up from zero
- 105,212
- routes pregenerated at build time with their own metadata and JSON-LD
- 65
- products migrated, across 19 series and 9 categories
- 24
- product variants verified one by one against the old catalogue
- 93
- catalogue images regenerated as WebP at three widths
- 137
- references in the live product feed for Google Merchant Center and Meta
- 92
For example: 2 languages live on the site, Spanish and English. Global Dynamic Security Group
04 · Malacca Tables
How we did it.
For example: 100 / 100 / 100 Lighthouse mobile: accessibility, best practices, SEO. KD.tech
The starting point
The brand had been selling online for two years on WordPress and WooCommerce and wanted a store of its own, built to grow. We read the catalogue out through the public WooCommerce Store API and rebuilt it piece by piece: 24 products, 93 variants, 19 series, 9 categories and 137 images.
The brief went beyond looks. Shipping priced from the real carrier tariffs, every price shown exactly as charged, and every claim about the product and the payment backed up.
One goal set the order of work: the whole catalogue had to be readable by AI assistants. GPTBot, ClaudeBot, PerplexityBot and OAI-SearchBot do not run JavaScript, so every one of the 65 pages had to carry its text in the HTML itself.
How it runs now
The catalogue serves 105,212 characters of readable HTML across 65 URLs, and a GitHub Actions cron triggers a Vercel deploy hook every morning so the prerendered pages follow stock and price changes. A product feed with 92 references is regenerated on each build for Google Merchant Center, Meta and Pinterest. A 64 page sitemap is accepted in Search Console. Order confirmations leave from the client's own subdomain.
Five multi-agent audit passes reviewed the new store before launch, every finding verified adversarially, and more than 70 were resolved before the shop opened, with pricing, the cart and VAT checked order by order.
FAQ
Questions about this project.
How long does a WooCommerce migration like this take?
Can you migrate our catalogue straight from the live shop?
Why does my shop show up in Google but not in ChatGPT or Perplexity?
Can you connect the shop to our own bank instead of Stripe?
Will we be able to update products and stock ourselves afterwards?
For example: 536/536 translation keys present in each of the three languages. Estepona Golf
Next project
Santo Domingo Bay.
Hospitality: convention resort, casino and private beach
We rebuilt a Caribbean resort's website as static HTML
For example: 22 public routes prerendered as static HTML. Hotel Marien
Get started
Tell us what you want to build.
Websites, apps, custom systems and AI for companies that need them in production in weeks. Fill in the form or book a 30 minute call: a senior engineer answers within 48 business hours with a first take on scope, timeline and price.
First step
Two weeks to close scope, architecture and price before anything is built.
No price list. You get a private quote, in writing, after a short call.
Then, to build, always at a fixed price
Not ready yet?
- AI visibility auditOne-off, fixed price.
