Skip to content

plan / boost

Boost: app and database, one box

Two cores and four gigabytes. The size where a side project stops being a toy and starts having users.

$8/mo USDor $80/yr

Deploy Boost in London
vcpu
2
memory
4 GB
nvme disk
40 GB
port
1 Gbps
traffic
unmetered
ipv4
1 dedicated

The shape of a Boost workload

The typical Boost server runs three things: a reverse proxy terminating TLS, an application process, and a database. Maybe a Redis for sessions. That is a complete production stack for a SaaS in its first year, an internal tool for a team of twenty, or an API serving a mobile app with a few thousand daily users.

Two vCPUs is the important upgrade over Spark. With two cores, the database can work on a query while the app serializes a response, and a background job no longer makes every request wait. Latency stays flat under the kind of mixed load real apps generate.

Dividing four gigabytes

A working memory plan for app plus Postgres on one box:

SliceAllocationNotes
OS and system services300 MBDebian or Ubuntu minimal
Postgres shared_buffers1 GBabout 25% of RAM
Postgres connections and work_mem300–500 MBkeep max_connections low; pool in the app
Application600 MB–1 GBcap it with systemd MemoryMax
Redis (optional)128–256 MBset maxmemory explicitly
Page cacheremainderPostgres relies on it

The line that people skip is the cap on the application. Without it, one leaking worker can push Postgres into swap and every query slows down at once.

# /etc/systemd/system/app.service.d/limits.conf
[Service]
MemoryMax=1G
MemoryHigh=900M

Installing the database

On Ubuntu 24.04 or Debian 12, the distribution Postgres is perfectly good. Tune the three settings that matter at this size and leave the rest alone:

apt -y install postgresql
cat >> /etc/postgresql/*/main/conf.d/small.conf <<'EOF'
shared_buffers = 1GB
effective_cache_size = 2560MB
max_connections = 40
random_page_cost = 1.1
EOF
systemctl restart postgresql

random_page_cost = 1.1 tells the planner that random reads are almost as cheap as sequential ones, which is true on NVMe-backed storage and nudges it towards index scans. More on that in the databases use case.

40 GB, and what to do with it

Forty gigabytes holds the OS, your code, a few years of logs if you rotate them, and a database in the low tens of gigabytes. What it should not hold is your only backup. Dumps on the same disk as the data protect you from a bad migration, not from losing the server. Ship them elsewhere; the backups and snapshots guide walks through a nightly pg_dump pushed off-box alongside portal snapshots.

Watching for the ceiling

Boost runs out in one of three ways, and each points to a different next step:

  • Memory: page cache shrinks to almost nothing and Postgres reads start hitting disk. Go to Turbo for 8 GB.
  • CPU: both cores sit above 70% at peak in the portal graphs. Turbo doubles cores to four.
  • Isolation: you want the database to survive an app deploy gone wrong. Keep this Boost for the database and add a Spark for the app.

Check memory pressure directly rather than guessing:

cat /proc/pressure/memory
vmstat 5 5

Non-zero full values in the PSI output mean tasks are stalling on memory. That is the clearest signal you have outgrown the box.

Price

Boost is $8 a month, or $80 if you pay for the year up front. Those figures are in US dollars, which is how checkout bills; there is no setup fee. It includes the same 1 Gbps unmetered port and dedicated IPv4 as every other plan.

Questions

Is it safe to run Postgres and my app on the same Boost server?

For most early-stage apps, yes. Give Postgres about a quarter of RAM for shared_buffers, keep the app's memory bounded, and take scheduled backups off the box. Split them when either one starts starving the other.

Can Boost run a CI runner?

For a small repository with one job at a time, yes. Builds that compile large dependency trees or run several jobs in parallel will be happier on Warp.

How does Boost compare to two Spark servers?

Two Sparks cost $10 and give you two isolated 2 GB boxes. One Boost costs $8 and gives you a single 4 GB box with two cores. Pick isolation or density depending on what you are protecting against.