Competitor benchmark — Aug 25, from UB
Full methodology: plain curl timings (3 runs/site) + Lighthouse 13 mobile (single run) + real-Chrome performance entries via agent-browser. Spot checks, not the official baseline.
Delivery layer (curl, home HTML, warm)
| Site | Edge / stack | TCP connect | Server think-time (ttfb − tls) |
|---|---|---|---|
| amerikvitamin.mn | CF ULN, Workers | 13 ms | ~150–190 ms (home) |
| shoppy.mn | nginx on UB-local racks (iTools JSC) | 11 ms | ~5–10 ms shell + APIs at 115 ms avg |
| bsb.mn | CF ULN + Next.js origin, s-maxage=900 | 16 ms | 28–53 ms (app-level page cache) |
| new-tech.mn | CF ULN proxy → WordPress origin | 10 ms | 1.8–2.3 s (regenerates 1.19 MB HTML per view) |
| gobi.mn / next.mn / btf.mn | Vercel (no MN colo) | 60–120 ms | 210–540 ms |
| nomin.mn | CF ULN proxy → Node origin, HTML always DYNAMIC | 10 ms | 2.6–4.6 s |
| beautyme.mn (Zochil) | DigitalOcean New Jersey, Next.js, no-cache headers | 236 ms | 350 ms–1.4 s |
Lighthouse 13 mobile, single run
| Performance | LCP | TBT | Page weight | |
|---|---|---|---|---|
| beautyme.mn | 25 | 21.4 s | 9,670 ms | 17.9 MB |
| amerikvitamin.mn (home) | 62 | 3.2 s | 2,080 ms | 1.3 MB |
Key corrections to this epic's claims
- "Competitors in Hong Kong" is wrong for beautyme — Zochil storefronts serve from a single DO droplet in New Jersey (~236 ms RTT). Understated if anything.
- We are not the only ones at ULN: nomin, new-tech, and bsb all terminate at ULN. The differentiator is what happens after the edge.
- Nobody in the set runs compute at the edge except us — everyone else is a proxied origin; their HTML is
cf-cache-status: DYNAMIC. - The only serious rival is bsb.mn (same architecture: prerendered HTML + edge cache). nomin.mn proves the race is won at the app layer, not the network.
→ New work item from this audit: #297 (serve prerendered HTML as edge-cached assets; also flags product.getInventory at 388–965 ms per call).