Zero-Cost Hosting for InFocus SLUG 2025 — and 25 Hosting & Domain Options Compared
Why the university games results site runs for nothing on free hosting, what 'free' really costs, and a 25-option comparison including Oracle Cloud Always Free, Cloud Run, Vercel and .lk domains.

The 2025 Sri Lanka University Games were hosted at Rajarata. As part of InFocus Media's coverage we needed a site for fixtures, results, a leaderboard, a blog and notices — something students across every university could open on a phone between matches.
It runs at infocusslug2025.free.nf, and it costs nothing. No domain bill, no hosting bill, no card on file. This story is about why that was the right decision, what "free" actually costs you, and how 25 hosting and domain options compare for this kind of work.

Why zero cost mattered here
The site has a season, not a lifetime. A games results site is critical for a few weeks and then becomes an archive. Paying monthly for something that peaks for three weeks is money a student media unit doesn't have.
Nobody should need a credit card to publish results. Student teams change every year. A paid account tied to one person's card is a handover problem waiting to happen — the site disappears when the card expires or the student graduates. A free account with shared credentials (and a written runbook) survives the handover.
The load is predictable. Fixtures and results are read-heavy, small and mostly text. Shared PHP hosting handles that comfortably.
Nothing to approve. "It costs nothing" removes a budget conversation, so the site can be ready before the first match.
What "free" really costs
| Hidden cost | What it looked like | How we handled it |
|---|---|---|
| Bot protection | The host serves a JavaScript challenge to non-browser clients; curl gets nothing, real browsers are fine | Our uptime check marks it "verified in browser" instead of failing |
| Branding & trust | A free.nf subdomain looks less official than a .lk domain | The official unit site lives on infocusmedia.lk; the games site links back to it |
| Limits | Daily hit and CPU limits on free shared hosting | Light pages, compressed images, no heavy server-side work |
| No SLA | Nobody owes you uptime | Treat the site as the record, not the only channel — post results on social media too |
| Lock-in to PHP/MySQL | No Node or Python runtime | Fine for a results CMS; anything heavier goes elsewhere |
Free hosting is a great fit when the stakes are temporary, the content is simple, and there's a second channel if the site is down. It's a bad fit for anything that holds payments, personal data or an SLA.
The same decision across my live sites
| Site | Where it runs | What it costs | Why |
|---|---|---|---|
| InFocus SLUG 2025 | InfinityFree, free.nf subdomain | Zero | Seasonal, read-heavy, committee-friendly |
| InFocus Media | Vercel, custom .lk domain | Domain only | Permanent, official identity for the media unit |
| Ceyra Labs | Vercel, custom .com domain | Domain only | A studio needs its own name |
| Nora Labs | Google Cloud Run | Pay per request | Needs Python, AI agents and an API — and went offline |
| Side projects & previews | Coolify on one GCP VM | Under $10/month total | One box, many apps |
The pattern: pay for identity (a domain) when it's permanent, pay for compute only when the code needs it, and pay nothing for seasonal, static, read-heavy sites.
25 hosting & domain options compared
This is a practical guide, not a price list. Free tiers and prices change often (several changed in 2024–2025), so check each provider's current terms before you commit. "Free" below means a usable free tier exists at the time of writing.
| # | Option | Type | Free tier | Custom domain | Good for | Watch out for |
|---|---|---|---|---|---|---|
| 1 | InfinityFree | Shared PHP/MySQL | Yes, with free subdomains (e.g. free.nf) | Yes | Event sites, small CMS, students | Hit/CPU limits, JS bot challenge, no SLA |
| 2 | GitHub Pages | Static | Yes | Yes + HTTPS | Docs, portfolios, handbooks | Static only; private-repo Pages needs a paid plan |
| 3 | Cloudflare Pages | Static + edge functions | Yes, generous bandwidth | Yes | Static sites and SPAs at scale | Build-minute limits; functions have runtime limits |
| 4 | Vercel (Hobby) | Static + serverless (Next.js) | Yes, non-commercial | Yes | Next.js sites like InFocus Media | Hobby is for personal/non-commercial use; bot checkpoint can block crawlers |
| 5 | Netlify | Static + functions | Yes | Yes | Static sites, forms | Usage-based limits on the free plan |
| 6 | Firebase Hosting | Static + CDN | Yes (Spark plan) | Yes | SPAs with Firebase auth/db | Daily transfer cap on the free plan |
| 7 | GitLab Pages | Static | Yes | Yes | Static sites from GitLab CI | CI minutes |
| 8 | Render | Static + web services | Static yes; free web services sleep | Yes | Small APIs, demos | Cold starts after inactivity |
| 9 | Koyeb | Containers | Small free instance | Yes | A single small API | Tight resources |
| 10 | PythonAnywhere | Python web apps | Beginner account | Paid plans | Flask/Django learning projects | Outbound internet allow-list on free |
| 11 | Surge.sh | Static (CLI) | Yes | Yes | Quick static previews | Static only |
| 12 | Neocities | Static | Yes | Paid | Personal static pages | Static only, small storage |
| 13 | Google Cloud Run | Serverless containers | Monthly free request/CPU allowance | Yes (domain mapping / LB) | APIs like Nora Labs | Min-instances cost; ephemeral disk; billing account needed |
| 14 | Google Compute Engine | VM | One small always-free VM in eligible US regions | Yes | Coolify, Quintrix-style workloads | Egress and disk beyond the free allowance |
| 15 | Oracle Cloud (Always Free) | VMs + storage | Arm (Ampere A1) and small AMD VMs, block storage and outbound transfer allowance | Yes | A surprisingly strong free VM for self-hosting | Arm capacity can be unavailable in busy regions; idle free instances may be reclaimed; card verification at signup |
| 16 | AWS (S3 + CloudFront) | Object storage + CDN | New-account free tier / credits (terms changed in 2025) | Yes (Route 53 or external DNS) | Static handbooks, SPAs | Per-request and transfer charges after the free allowance |
| 17 | AWS EC2 / Lightsail | VM | Credits / free-tier offers vary | Yes | Classic VPS learning | Easy to leave something running |
| 18 | Azure Static Web Apps | Static + functions | Yes | Yes | Static sites with Azure Functions | Azure account setup |
| 19 | DigitalOcean | VPS + App Platform | Static sites on App Platform | Yes | Simple droplets, managed DBs | Droplets are paid from the first month |
| 20 | Hetzner Cloud | VPS | No | Yes | Cheapest serious VPS for Coolify | No free tier; EU/US regions |
| 21 | Railway | Containers | Trial credit, then paid | Yes | Fast deploys of full-stack apps | Usage billing |
| 22 | Fly.io | Containers at the edge | Pay-as-you-go (free allowances changed) | Yes | Global small apps | Card required |
| 23 | Coolify (self-hosted) | Your own PaaS | Software is free; you pay for the server | Yes, wildcard + auto SSL | Many small apps on one box | You are the on-call engineer |
| 24 | Shared hosting (Hostinger, Namecheap, etc.) | Shared PHP | No (often bundled with a domain) | Yes | WordPress for small businesses | Renewal prices are higher than intro prices |
| 25 | Domains: .lk vs free subdomains vs .com | Naming | Free subdomains: free.nf, vercel.app, pages.dev, github.io | — | .lk for official Sri Lankan organisations; .com for brands | .lk registration has its own requirements and fees; buy .com at-cost registrars and watch renewal pricing |
How I choose
Is it seasonal, static or read-heavy? → free static / free shared hosting (1–7, 11, 12)
Does it need a permanent official identity? → pay for the domain, keep hosting free (Vercel, Pages)
Does it need Python, AI agents or an API? → Cloud Run / Render / Koyeb (8, 9, 13)
Is it heavy, long-running or stateful? → a VM (14, 15, 20) — ideally with Coolify (23)
Is it many small apps? → one VM + Coolify beats many paid plans
Does it hold payments or personal data? → not on free hosting. Ever.What I'd tell the next InFocus team
- Write the runbook — where it's hosted, who has the login, how to renew, what to do if it's down.
- Use a shared account, not someone's personal card.
- Keep the official domain separate from seasonal sites, and link them.
- Plan the second channel (social posts) for when the free host has a bad day.
- Archive at the end of the season — export the results so the history survives even if the free account doesn't.
See every live site and its status → · Paying for cloud as a student →
Keep going: ← Previous story · Back to the DevOps map →

