swarza
Blog

Hosting for 99.9% of the web

Only about 100,000 websites in the world are big enough to need a global platform. I'm building Swarza for everyone else, regional hosting with everything an app needs and a price that doesn't move.

By
Piotr Kierzniewski
Published
Length
5 min read

Most talk about hosting is about the biggest websites, and how to serve millions of people on every continent within a few milliseconds. That’s a real problem, and some excellent platforms solve it. But it isn’t the problem most websites have. This post explains who I think most websites are, what they need, and why I’m building Swarza for them.

Most of the web is not the top of the web

Google’s Chrome team measured where people’s page loads actually go. Their study found that the top 10,000 websites get around 70% of all page loads, and the top million get over 95%.

A million sounds like a lot until you count the rest. Netcraft’s June 2026 survey puts the number of active websites at about 218 million. Here they are, 100,000 to a square.

the busiest 100,000the other 99.95%
The other 2,179 squares are 99.95% of websites. That's who I'm building Swarza for.Active websites from the Netcraft Web Server Survey, June 2026.

A site ranked 100,000th in the world still gets around 460,000 visits a month, by the curve fitted in The Web Unpacked. That’s a busy site. Everything past it, 99.95% of all websites, shares about a quarter of all visits, by the same paper’s estimate. Most of the web is online shops, local news, company sites, booking pages, SaaS dashboards, blogs and community forums.

Most websites live in one country

The same Chrome study looked at the websites popular in each of 45 countries. On average, 98% of them were popular in only one country.

98popular in one country2popular worldwide
98 of them are popular only in that country. Just 2 are popular worldwide.Ruth et al., A World Wide View of Browsing the World Wide Web (IMC 2022). Sites in a country's top 1,000, average of 45 countries.

A local newspaper’s readers live near it. A shop in Poland sells to Poland. Sites about education, politics and finance are the most local of all. For these sites, one good region close to their visitors is enough.

Great platforms, built for a different scale

Vercel and Cloudflare are great products, and they’re cheap to start with. But they’re built for global scale, with your code running all over the world, and that makes it hard for them to give an app everything it needs, a database first of all.

Vercel Pro costs $20 a month per developer, with $20 of usage included and the rest billed “pay as you go, uncapped” unless you set a budget. Vercel has no database of its own. Vercel Postgres closed in December 2024, and today you connect one from another company, such as PlanetScale or Supabase, through Vercel’s Marketplace. Each is good, and each is another company with its own plans and limits.

Ten apps, each with a production database and one for development, is twenty databases. At PlanetScale’s smallest, $5 a month, that’s $100 before storage, and before any of them has a visitor.

Cloudflare does have the whole set, with Workers for your code, D1 for databases, R2 for files, and queues and scheduled jobs. But Workers don’t run Node.js. They have a runtime of their own, and Node.js works there through a compatibility layer that covers much of it, but not all.

And the database is far from the code. Your code runs in the data centre nearest each visitor, and D1 is reached over the network. Every query travels there and back, so a page that makes ten queries one after another makes ten trips, slower than a database running next to the app.

Swarza keeps your app and its database in one place, so a query never crosses a network between cities. Cloudflare answers sooner when a page needs no data, but once a page waits on its database, being next to it matters more.

Platforms that bill a server while it runs

Render and Railway come closer to what an app with low or moderate traffic needs, with the app and its database in one place. But each app and each database is a server, billed for every minute it runs, busy or idle.

On Render, a web service with 512 MB of memory costs $7 a month, and the smallest Postgres, with 256 MB, costs $6. You pay for the size you pick, every second it runs, busy or idle. One app with a database is $13 a month; ten are $130.

Railway is fairer. It bills the memory a service really uses, per minute, and it can put a service to sleep after 5 to 10 quiet minutes. But an app usually has scheduled jobs too. A job that runs in your app every 5 minutes and asks the database for something keeps both awake. The app never falls asleep while it works in the background, and neither does the database it queries. In practice both run all the time, and you pay for them even when the app has no visitors.

Traditional hosting, built for PHP

On the other side is traditional shared hosting. It’s still a good deal. For a few euros a month, more once the first term ends, you get your sites, a database, email and cron jobs.

It works because PHP runs only while it answers a request. PHP-FPM, the usual way to run PHP, can start a process when a request arrives and stop it 10 seconds after the last one. A site nobody visits costs the host almost nothing, so many sites can share one server.

A Node.js app works differently. It’s a server that runs all the time and holds its memory between visits, even when nobody comes. That doesn’t fit the shared hosting model, so where hosts offer Node.js at all, it comes with their bigger plans and a limit. Hostinger runs Node.js apps on its Business and Cloud plans, and its plan limits allow 5 Node.js websites on web hosting and 10 on every Cloud plan.

Swarza brings the shared hosting model to JavaScript. When nobody visits, your app’s Worker is suspended to disk and holds no memory, and the next request usually resumes it in about 0.2 seconds. Swarza counts only the memory your app really holds while it runs.

What I’m building

Strip away the scale, and an application still needs the same four things. It needs compute to run its code, a database for its content and users, storage for its files and uploads, and scheduled jobs for emails, reports and cleanups.

Swarza hosts modern JavaScript applications the traditional hosting way, with all four together in one place, and with the tools the modern cloud platforms made normal.

Side by side

The table shows how each kind of host covers those four things, how many apps it takes, how it bills and how far it scales.

SwarzaVercelCloudflareRender, RailwayShared hosting
CodeNode.jsNode.jsOwn runtimeNode.jsPHP first
ApplicationsUnlimited, fair useUnlimited on Pro50025 or 50 on Hobby5 or 10
DatabaseNext to the appAt a partnerOver the networkNext to the appNext to the app
File storageBucketsBlobR2Disks, BucketsDisk
Scheduled jobs
BillOne priceUsage, uncappedUsageUsageOne price
ScalingOne serverWorldwideWorldwideOne regionOne server
Yes Yes, with a flaw No

What’s next

This is the first post in a series on how Swarza works and why. Next, I’ll write about why JavaScript, why Turso for Databases and S3 for files, how one server runs many apps, how I bill, and how the same platform runs AI agents.

Swarza is in a private beta. If your app is part of the 99.9%, join the private beta.

Know next month’s bill today.

We use your email only to invite you to the beta. Privacy