DEV Community

Vikas Singhal
Vikas Singhal

Posted on

The Cheapest Way to Self-Host Instatic in 2026

Instatic showed up on my radar about a month ago. 7,671 stars on GitHub as of today, MIT licensed, and the pitch is a good one: a drag-and-drop visual editor, a content engine, and a publisher in one app, and what comes out the other end is plain semantic HTML and compact CSS instead of a 400KB framework bundle.

Then I went looking for somewhere to run it, and every road pointed the same direction.

The repo's own README says "Railway is the fastest way to get Instatic live." The top YouTube tutorial says "Railway is by far the easiest way to deploy an Instatic instance, we recommend Railway." Google's AI Overview for "instatic" tells you to "run it locally using Bun or deploy it via cloud hosts like Railway."

That is fine advice. Railway is genuinely good. But nobody had done the arithmetic, and Railway bills by usage per second, which means "how much will this cost me" is a question you cannot answer from a pricing page alone. You need to know what Instatic eats.

So I measured a real instance for 36 days and priced the three realistic ways to self-host Instatic in 2026: Railway, a plain VPS, and a managed pod.

TL;DR: what does it cost to host Instatic per month?

Every price below was read off the vendor's own live pricing page on 2026-08-07. Nothing here is carried over from an older post.

Option What you pay What you get Setup time
Railway Hobby $5/mo minimum, usage-metered above that Managed platform, one-click Instatic template, no server to run ~2 minutes
DigitalOcean Droplet $6/mo flat (1 GB / 1 vCPU / 25 GB) A bare Ubuntu box and nothing else 45-60 minutes
InstaPods Build plan $7/mo flat (2 GB / 2 vCPU / 25 GB) Managed pod, HTTPS and subdomain done, daily backups ~1 minute

The honest headline: at low traffic Railway is the cheapest of the three, and it is also the least predictable. Details below, including the arithmetic.

What does Instatic need to run?

Instatic is one Bun server with a SQLite database (PostgreSQL is optional). There is no separate worker, no queue, no Redis. On an instance I have had running for 36 days straight, the Bun process sits at 68 MB resident and the whole server at 366 MiB including page cache.

Here is the actual output, taken today:

$ free -m
               total        used        free      shared  buff/cache   available
Mem:            1907         123        1539           0         243        1783

$ ps -eo pid,rss,comm --sort=-rss | head -5
    PID   RSS COMMAND
  19708 68044 bun
   3672 32948 systemd-journal
      1 10368 systemd
    297 10112 unattended-upgr

$ uptime
 03:05:31 up 36 days, 24 min,  0 user
Enter fullscreen mode Exit fullscreen mode

Cumulative CPU across the whole box over those 36 days was 15,761 seconds. That is 15,761 out of 3,110,400 wall-clock seconds, or about 0.5% of a single vCPU on average.

Two caveats before anyone builds a budget on that number. First, this is my own low-traffic site, so it is a floor and not a typical load. Second, Instatic uses sharp for image processing, and resizing a batch of uploads will spike CPU hard for a few seconds. Average CPU is cheap; the spikes are the thing that moves a usage-based bill.

The practical floor is roughly 1 GB of RAM. Bun plus sharp plus a build will not sit comfortably in 512 MB, and I would not try it on a $4 box.

How much does Instatic cost on Railway?

Railway's Hobby plan is $5/month including $5 of monthly usage credits, so $5 is your floor and metered usage above $5 gets added on top. There is also a Free plan at $0/month with $1 of monthly usage credits, which is not enough to keep anything running 24/7, and Pro at $20/month per workspace including $20 of credits.

The metered rates, quoted per second on their pricing page:

Resource Rate as printed Same rate per month (730 hours)
Memory $0.00000386 per GB / second ~$10.15 per GB
CPU $0.00000772 per vCPU / second ~$20.29 per vCPU
Volumes $0.00000006 per GB / second ~$0.16 per GB
Egress $0.05 per GB $0.05 per GB

Now the worked example. Take my measured footprint and be a little generous with it, since Railway meters what the service holds rather than what I reserved:

Line item Assumption Cost
Memory 0.25 GB steady state $2.54
CPU 0.02 vCPU average $0.41
Volume 5 GB for SQLite plus uploads $0.79
Egress 5 GB out $0.25
Metered total $3.99

That lands under the $5 of included credit, so a quiet Instatic site on Railway Hobby costs $5/month, full stop. That is cheaper than either flat-rate option in this post, and I am not going to pretend otherwise.

Now run the same arithmetic for a site that is doing something:

Line item Assumption Cost
Memory 0.5 GB (image-heavy pages) $5.08
CPU 0.1 vCPU average $2.03
Volume 10 GB $1.58
Egress 20 GB out $1.00
Metered total $9.69

Same app, same platform, $9.69/month instead of $5. Add a PostgreSQL service and it climbs again, because on Railway that is a second service metering its own memory and its own volume.

This is the real trade with usage billing, and it cuts both ways. When your site is asleep you pay almost nothing. When you dump 200 photos into the editor and sharp chews through them, the meter runs. If you like knowing your hosting bill to the dollar before the month starts, that is a genuine downside. If your traffic is spiky and mostly zero, it is a genuine advantage.

Credit where it is due: Railway has an official Instatic template for both the SQLite and the PostgreSQL setup, it is one click, and there is no server for you to patch. That is why the README and the tutorials point there.

How much does Instatic cost on a plain VPS?

A DigitalOcean Basic Droplet with 1 GB RAM, 1 vCPU and 25 GB SSD is $6.00/month, or $0.00893/hour, with 1,000 GiB of transfer. The 512 MB tier is $4.00/month, and per the memory numbers above I would skip it.

$6 flat is the cheapest predictable number in this whole comparison. What it does not include is any of the work:

  1. Install Bun
  2. Clone and build Instatic
  3. Write a systemd unit so it restarts on reboot
  4. Install and configure nginx as a reverse proxy
  5. Point a domain at the box and wait on DNS
  6. Run certbot and set up renewal
  7. Configure the firewall
  8. Set up backups, and then actually test restoring one

That is a comfortable hour the first time, and it is yours forever after. Security updates, disk filling up, the certbot renewal that quietly fails eleven weeks later. If you already run servers, none of this is news and $6 is a great deal. If you do not, you are about to learn nginx config at 11pm.

I wrote up the same trade in more detail when I tested seven self-hosted monitoring tools on a $3 VPS, and the conclusion has not changed: the sticker price of a VPS is never the real price.

How much does Instatic cost on InstaPods?

Full disclosure, I work on InstaPods, so treat this section with the skepticism it deserves and check the numbers yourself.

Instatic runs on the Build plan at $7/month flat: 2 vCPUs, 2 GB RAM, 25 GB storage, HTTPS and a subdomain configured on launch, custom domains, and daily backups. It is a pre-built image, so it boots already installed rather than running bun install on first request. New accounts get a $10 credit when a card is added, which covers the first month and change. There is no free tier, and a card is required before you can deploy.

The pitch is narrow and I will keep it narrow: it is a flat $7 whether the site is idle or busy. No meter, no per-seat fee, no per-site fee. You get a real Linux server with SSH and a shell, so if you want to drop into it and edit the nginx config you can, which is the part managed platforms usually take away from you. If you want it, deploy Instatic here.

Where it loses: it is $2/month more than a Railway Hobby instance that stays quiet, and $1/month more than a DigitalOcean box you configure yourself. If your site genuinely idles, Railway is cheaper and I am not going to argue with the arithmetic.

What about PostgreSQL?

Instatic runs on SQLite by default and that is fine for a CMS with a handful of editors. If you want PostgreSQL, the cost picture shifts:

Option Cost of adding PostgreSQL
Railway A second service, metered on its own memory and volume, realistically $2-6/mo on top
VPS $0 extra, you install and back it up yourself
InstaPods Included on the Build plan as a managed service, $0 extra

If PostgreSQL is in your plan from day one, that flips the ranking. Railway's cheapest realistic total becomes roughly $7-11, and the two flat options stay where they are.

So which one is cheapest?

It depends entirely on one question: does your site idle?

  • Idle personal site, SQLite, low traffic: Railway Hobby at $5/month wins. It is one click and you pay the floor.
  • You already run servers and want the lowest predictable number: DigitalOcean at $6/month wins, and you pay for it in setup time and ongoing maintenance.
  • Real traffic, image-heavy pages, PostgreSQL, or you want to know the bill in advance: a flat $7/month pod wins, because the metered version of that same workload lands between $9 and $15.

What I would not do is pick Railway because a tutorial said so and then be surprised in month three. The usage model is the whole story, and it is not printed on the template button.

What I actually run

Mine is on a $7 pod, because I would rather overpay $2 a month on a quiet month than think about hosting at all. That is a preference, not a recommendation. If I were shipping a one-page portfolio that gets forty visitors a week, I would put it on Railway Hobby and forget about it.

If you want the other side of this trade, I did the same cost breakdown for self-hosting n8n, where the answer came out differently because n8n is a much hungrier app than Instatic.


One thing I could not test properly: how the bill behaves on Railway when sharp is processing uploads in bursts rather than on a schedule. If anyone has a real Railway invoice for an image-heavy Instatic site, I would like to see the actual number. What is your instance costing you?

Top comments (0)