Beyond a Single Page App: How mmm.page Scaled Past 30,000 Sites

mmm.page set out to make the web less uniform by letting non-developers launch their own sites with minimal friction. The project grew quickly, and what started as a single-page application (SPA) hosted on Amazon S3 became a bottleneck. As the user base passed 30,000, the team needed better SEO, faster custom-domain setup, and an easier path to scaling. They split the architecture: the editor remains on S3, while the viewer runs as a server-side Next.js bundle on Vercel.

Why S3 Couldn’t Keep Up

Initially, the entire platform lived as an SPA on S3. That worked at launch, but three problems surfaced as traffic grew:

  • SEO suffered because the content wasn't server-rendered.
  • Custom domains were difficult to configure and attach.
  • Generating preview URLs was slow and labor-intensive.

Forking the viewer into a server-rendered Next.js app on Vercel solved these issues while leaving the editor untouched—though the team says they're considering moving that to Vercel as well.

Custom Domains Without the Headache

For a platform aimed at non-technical users, custom domains are a core feature. XH, founder of mmm.page, calls Vercel's support for custom domains "a godsend," noting they’re usually one of the harder parts of a platform to build out. With Vercel, domain assignment and SSL certificate generation no longer require months of engineering. That speed directly accelerated their ability to monetize.

Performance as a Retention Feature

mmm.page's users are accustomed to fast, polished web experiences. If their own site feels slow or buggy, they may jump to another tool. Core Web Vitals are a constant concern. Because the viewer is server-side rendered, any updates to the platform propagate without adding extra latency for users. There’s no client-side delay from fetching and rendering fresh data.

Caching That Prevents Database Overload

The team also relies on Vercel's caching to reduce database pressure. Caching results cuts database calls by 2–3x, which matters as the number of sites climbs. When the schema changes or a new viewer version is pushed, they can mass-invalidate and refresh the cache in one step. This hybrid approach—SSR for stable content, live dynamic data when needed—lets them avoid overload while keeping sites responsive.

Shipping Features, Not Infrastructure

The practical payoff for mmm.page is velocity. Vercel removes the small operational frictions that slow down a small team. Instead of building custom infrastructure for domains, SSL, or previews, they can focus on the product itself.

"Vercel removes a lot of the tiny frictions so we can move faster," says XH.