HTML5 game publishing

How Much Does It Cost to Host 100 HTML5 Games?

Storage, requests and bandwidth math for 100 games using current Cloudflare R2 prices, three traffic scenarios and a comparison with embedding from a distributor.

PlayKovo Team4 min read
Games currently available on PlayKovo. Open a title to see its current listing.

"How much will it cost to host 100 HTML5 games?" has a surprising answer: the storage is almost free. The part that can hurt is bandwidth, and whether your provider charges for it. This article shows the arithmetic with current Cloudflare R2 prices, three traffic scenarios, and what changes if you embed games from a distributor instead of hosting them.

What you pay for when you host games

  • Storage: the total size of all game files, per GB per month.
  • Requests: every file a player loads is a request. A game with 40 files costs 40 requests per cold start.
  • Bandwidth (egress): the data you send to players. This is where bills grow with traffic.
  • Everything around it: the web server or platform that serves your pages, domain, monitoring and your own time.

Cloudflare R2 prices used in this article

From Cloudflare's R2 pricing page, Standard storage:

ItemPriceMonthly free allowance
Storage$0.015 per GB-month10 GB-month
Class A operations (writes, lists)$4.50 per million1 million
Class B operations (reads)$0.36 per million10 million
Egress to the internetFreeNot applicable

Prices change, so check the current page before you budget. Other object storage providers, such as Amazon S3, charge per GB for data sent out, so the same traffic can cost far more on a metered provider. The comparison below uses an illustrative rate of $0.09 per GB, which is a placeholder to show the effect, not a quote. Plug in your provider's real number.

How big are 100 games?

Sizes vary widely. Simple 2D games can be a few MB; Unity or 3D builds are often tens of MB. For scenarios, we use averages:

  • 10 MB per game: 1 GB for 100 games.
  • 30 MB per game: 3 GB.
  • 60 MB per game: 6 GB.

PlayKovo's upload limit is 250 MB per ZIP, but that is a ceiling, and most browser games are much smaller.

Three scenarios per month

Assumptions: players download the whole game on a cold start, with no browser cache hits, which is the worst case. Requests are counted as Class B reads.

StarterGrowingBusy
Games x average size100 x 10 MB100 x 30 MB100 x 60 MB
Stored data1 GB3 GB6 GB
Plays per month20,000200,0002,000,000
Files per play304040
Read requests0.6 million8 million80 million
Data sent to players200 GB6,000 GB (6 TB)120,000 GB (120 TB)

Cost on R2

StarterGrowingBusy
Storage (after 10 GB free)$0$0$0
Reads (after 10 million free)$0$0(80 - 10) x $0.36 = $25.20
Egress$0$0$0
Total$0$0about $25

Same traffic on a provider that charges $0.09 per GB for egress (illustrative)

StarterGrowingBusy
Egress200 GB x $0.09 = $186,000 GB x $0.09 = $540120,000 GB x $0.09 = $10,800

Real bills are lower because returning players reuse cached files and CDNs absorb repeat requests, but the gap explains why free egress matters so much for games, which are large files.

Caveats that apply to every scenario

  • Serving through another platform. If your site or a serverless function sits between the player and the storage bucket, you may pay that platform's bandwidth or compute. PlayKovo, for example, serves hosted game files through its own route backed by R2, so the front-end platform's bandwidth also matters in its own cost picture. Serving directly from the bucket on a custom domain avoids this layer.
  • Caching cuts requests. Hashed file names with long cache lifetimes mean repeat visitors cost almost nothing; see how to prevent old cached files from breaking game updates.
  • Writes are cheap. Uploading 100 games of 100 files is 10,000 write operations, well inside the free 1 million.
  • Peaks. A viral day multiplies reads and egress. Free egress removes the bandwidth risk, but check any platform in front of it.
  • Your time is the biggest cost. Updating, testing and replacing broken builds takes more effort than storage ever will.

Self-hosting versus embedding from a distributor

Self-host gamesEmbed from a distributor
Storage and bandwidth billYours, as calculated aboveNone; the provider hosts the files
Updates and fixesYou do themThe provider updates the embed for everyone
ControlFull: layout, analytics, ads in your frame (depending on the licence)Limited to what the provider allows
Licence neededPermission to host the filesPermission to embed, usually stated in the provider's terms
RiskYour uptime and your billThe provider can change terms or remove a game
Typical cost for 100 gamesNear zero to about $25 per month in the scenarios above, plus timeNear zero for hosting; check each provider's revenue and branding terms

With PlayKovo's catalog you do not upload or host game files at all: each game has an iframe snippet or feed entry, and the games are hosted and updated by PlayKovo. Read the catalog import guide and the Partner Terms before publishing.

Budget formula

storage_cost   = max(0, total_GB - 10) x 0.015
read_cost      = max(0, (plays x files_per_play / 1,000,000) - 10) x 0.36
egress_cost    = 0 on R2, or total_GB_sent x your_egress_rate on metered providers
monthly_total  = storage_cost + read_cost + egress_cost + platform_in_front

Decision guide

  • Under 20 games and low traffic: embedding from a catalog is the simplest and cheapest.
  • Own games or licensed files you must control: host them on object storage with free egress and long cache lifetimes.
  • Large 3D builds with growing traffic: compare egress pricing before choosing a provider; this is the number that changes the bill.

Start with the numbers for your real file sizes, not averages: add up the folder sizes of your games and multiply by your plays. And keep an eye on your game list quality too; see how to choose your first 20 games.

We use optional cookies for site analytics and site advertising. You can change your choice later. Privacy policy.