Anested CloudAnestedCloud
Back to blog
GuidesJune 30, 2026 · 5 min read

Serving static sites straight from object storage

If all you're shipping is a landing page, a docs site or the build output of your frontend, a full web server is overkill. A public bucket on Nest Storage serves the same files with less to configure, less to patch and less to pay for.

When a bucket beats a server

A portfolio, a documentation site or the build output of a SPA is just a folder of files. There's no PHP to execute and no Node process to keep alive — so renting a machine to run nothing but a file server is wasted effort and wasted money.

Object storage flips the deal: your files are stored durably across multiple disks, there's zero maintenance — no OS updates, no restarts, no monitoring — and you pay only for the storage you use and the bandwidth you serve. For most static sites that comes to a few rupees a month.

Step 1: create a public bucket

Open the Nest Storage dashboard, create a new bucket and toggle public read access. From that moment, every object in the bucket gets a stable URL that anyone can fetch — exactly what a static site needs.

Now upload your build folder. Drag and drop works fine for a one-off deploy; for CI pipelines, push the files through the API instead. Keep the folder structure intact so relative paths in your HTML keep resolving.

Step 2: set cache headers correctly

Modern build tools put a content hash in asset filenames (app.3f9c1a.js), which means a given URL never changes content. Those files can be cached forever: set a one-year max-age with the immutable flag and browsers will never ask for them again.

index.html is the exception — its name never changes but its content does on every deploy. Give it a zero TTL with must-revalidate so browsers always check for a fresh copy. That combination gives you instant repeat visits and instant rollouts at the same time.

# hashed assets — cache forever
Cache-Control: public, max-age=31536000, immutable

# index.html — always revalidate
Cache-Control: public, max-age=0, must-revalidate

Step 3: point your domain at it

Nobody wants a raw storage URL in their address bar. Add a CNAME record — say, files.yourdomain.com — pointing at your bucket's endpoint, then register the domain in the bucket settings. A TLS certificate is issued and renewed automatically, so HTTPS just works.

You can also set a custom 404 page for the bucket. For a SPA, point the 404 at index.html so client-side routing keeps working on deep links; for a docs site, upload a friendly not-found page instead.

What about dynamic bits?

Most 'static' sites still have one or two dynamic corners — a contact form, a search box, a visit counter. That's no reason to bring back a full server stack for the whole site.

Pair the bucket with a small API on a VPS, or lean on hosted widgets like analytics and a chatbot. The static files stay on Nest Storage, and the dynamic parts stay tiny:

  • Forms → post to a tiny API on the smallest VPS plan
  • Search → prebuild an index at deploy time
  • Analytics → one script tag, no server required

Ready to put it into practice?

Spin up a server, a database or a bucket — free tiers included.

Get started