How I Built a ₹300 Personal CDN to Speed Asset Delivery for Indian Clients

A practical, low-cost guide to building a personal CDN on a cheap VPS to reduce latency and mobile data for Indian users.

Written by: Rohan Deshpande

A developer laptop with terminal open, sitting beside a notebook and a coffee cup on a wooden desk.
Image credit: Unsplash

I run websites for a few Indian small businesses and side projects. Delivering images and JS from a crowded, far-away S3 bucket or a global CDN felt expensive for smaller clients and often wasted mobile data for users in tier-2/3 cities. So I built a tiny, pragmatic personal CDN on a ₹300/month VPS. It’s not a replacement for Akamai or CloudFront at scale, but in practice it cut page load times and mobile data for my users — with clear tradeoffs.

Why build a personal CDN?

What I actually set up

Core nginx config (conceptual)

I keep the asset URLs as mysite.com/assets/.ext (build step injects hashed filenames). That avoids tricky invalidation and keeps the nginx cache happy — if an asset changes, the URL changes.

Why this works for Indian users

Measurements that convinced me

Real constraints and tradeoffs

Practical tips that saved time

When to stop using a personal CDN

Final notes — what I actually learned The personal CDN is not a magic speed bullet; it’s a pragmatic step between “origin-only” hosting and a paid global CDN. For low-traffic Indian audiences, the latency and data improvements are real and the cost-to-benefit ratio is excellent. You trade off redundancy and some convenience (invalidation, autoscaling) for control and cost savings.

If you run small client sites or side projects aimed primarily at Indian users, try this as a staged step: a cheap VPS, nginx cache, TLS, and hashed assets. Expect maintenance — certificate renewals, occasional cache tweaking, and a plan for fallback if the VPS dies — but you’ll also get predictable improvements in speed and data use that clients actually notice.

Go try it, measure the difference for your users, and if you outgrow it, you’ll know exactly what you need from a managed CDN next.