01
Astro frontend
Static-first marketing site with sub-second LCP. Each product page is a Markdown content collection entry, validated with Zod.
Page weight under 80KB excluding fonts.
Case study store.wbcomdesigns.com 2026-03
Sixty plus products, EDD checkout untouched, sub-second pages, zero downtime. The full-stack pattern we now offer clients.
0.6s
LCP
100
Lighthouse
60+
products
−85%
page weight
The live store · visit it to verify the LCP claim
The challenge
The store had grown to 60 plus product landing pages, each with hero copy, pricing tiers, FAQ blocks, screenshots, and per-product documentation. Every page took four seconds to fully render. We had tried every optimization plugin, every caching layer, every image format. The bottleneck was structural · the page was still being assembled by PHP at request time.
Marketing wanted faster pages. Engineering wanted simpler code. Customers wanted the EDD checkout, accounts, and license management exactly as they already worked. The only solution that satisfied all three was decoupling.
What we built
Marketing surface moved to Astro. Revenue infrastructure stayed on WordPress. A Cloudflare Worker routes paths to the right backend at the edge.
01
Static-first marketing site with sub-second LCP. Each product page is a Markdown content collection entry, validated with Zod.
Page weight under 80KB excluding fonts.
02
Customer accounts, license keys, renewals, Stripe billing · all stayed in WordPress. Checkout buttons link directly to /checkout/ on wbcomdesigns.com.
Zero risk to revenue infrastructure.
03
Auto-deploy on git push to main. Build takes 30 seconds. Custom domain on Workers Assets · same pattern we now use for wbcom-services.
Marketing ships content as fast as on monolithic WP.
04
Brand tokens defined once in global.css with the @theme block. Used everywhere via CSS custom properties. No JavaScript theming layer.
New product page = one JSON file + a few Markdown files.
05
Per-product docs at /[product]/docs/ powered by the same Astro app. Fuse.js for client-side search. No separate Notion or Gitbook bill.
Every product launches with documentation on day one.
06
Cloudflare WAF rules tuned to whitelist EDD-SL POSTs by User-Agent: WordPress/. License activation flow never broke.
Migration was invisible to existing customers.
The full stack
Astro 6, Tailwind v4, Cloudflare Workers Assets. No build-time CMS, no headless layer, no GraphQL gateway. Content is Markdown and JSON in the repo.
// astro.config.mjs · production-current
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
site: 'https://store.wbcomdesigns.com',
integrations: [sitemap()],
vite: {
plugins: [tailwindcss()]
}
});
// Content collection · products as Astro content,
// EDD checkout still on wbcomdesigns.com
{
"name": "Snipshare",
"edd_item_id": 123456,
"pricing": { "tiers": [...] },
"buy_url": "https://wbcomdesigns.com/checkout/?edd_action=add_to_cart..."
}
0.6s
average LCP across all product pages
Down from 4.2 seconds on the WordPress version. Measured continuously via Cloudflare RUM.
The result
Marketing now ships product pages in hours instead of days. New product launches no longer require a developer review for "did we break the cache?" Customer support tickets about page-not-loading dropped to zero in week one. EDD continues to handle every transaction exactly as it did before · same buttons, same checkout, same license emails.
The pattern was good enough that we are now offering it as a service. This case study is the proof. See how we apply it →
Common questions
Three weeks of focused work. Week one: Astro scaffold, brand token extraction, content schema design. Week two: porting product templates and checkout integration. Week three: docs system, search, deploy pipeline, smoke tests.
We tried. The WordPress page took 4.2 seconds to LCP on real product pages with images. After every plugin and theme optimization, we still could not get below 2.5 seconds without breaking editor workflows. Astro gave us 0.6 seconds with zero compromise on editorial speed.
No. EDD stayed on wbcomdesigns.com and never moved. The Astro frontend is purely a marketing surface. Checkout buttons are direct links to /checkout/ with the right edd_action params. License keys, renewals, customer accounts · all untouched.
Drop a JSON file in src/content/products/, drop product images in public/images/{slug}/, optionally add docs at src/docs/{slug}/, commit, push. Cloudflare deploys in 60 seconds. New URL is live at /{slug}/.
If you have WordPress + EDD or WooCommerce, yes. The same pattern works. Your checkout, accounts, and licensing stay where they are. We rebuild the marketing surface on Astro and route paths via Cloudflare Workers. Discovery call is free.
Same problem on your WordPress store?
If you have WordPress + EDD or WooCommerce and the marketing surface feels slow, the migration we did to ourselves can probably be done for you. Discovery call is free, fixed-price quote within 48 hours.