Back to Blog

Three Tiers, Docker, and What Changed

February 11, 20266 min readBy EnvHaven Team

EnvHaven launched with one plan: $12/month for a workspace. Simple. But "simple" stopped working when we started getting requests that pulled in opposite directions.

Some people wanted a cheap, lightweight environment for personal projects and tinkering. Others wanted to run Docker inside their workspace, which requires significantly more disk and memory. Serving both with one plan meant either overcharging the first group or under-resourcing the second.

So we split into three tiers. Here's what happened.

What changed for existing subscribers

If you had a subscription before this change, it's now a Hobby tier. Same price, same specs. Nothing broke, nothing moved, nothing was downgraded. The $12/month you were paying is the $12/month you're still paying.

Your workspaces kept running. Your data didn't move. The only visible difference is a "Hobby" label in your dashboard where there used to be none. We added higher tiers above what existed; nothing was taken away.

The three tiers

HobbyPlusPro
Price$12/mo ($10/mo annual)$25/mo ($21/mo annual)$40/mo ($33/mo annual)
DockerNoYesYes
EU Specs2 vCPU, 4GB RAM, 40GB4 vCPU, 8GB RAM, 80GB8 vCPU, 16GB RAM, 160GB
US Specs2 vCPU, 2GB RAM, 40GB3 vCPU, 4GB RAM, 80GB4 vCPU, 8GB RAM, 160GB

EU regions run newer hardware with better specs at the same price point. US regions use an older generation, the only shared x86 option available there currently. The difference comes from the hardware available in each region.

All tiers include the same software: 12+ AI coding tools, persistent terminals, SSH access, public URLs, automatic updates. The differentiation is hardware resources and Docker access.

You can have one subscription per tier. A Hobby workspace for side projects and a Pro workspace for a client project with Docker compose stacks, for example.

Why Docker is tier-gated

Docker access means mounting the host's Docker socket into the workspace container. Your containers run as siblings on the VM, sharing the host's Docker daemon. This is the standard approach; it's how most CI systems and dev containers handle Docker access.

The constraint is disk. The EnvHaven image is roughly 12GB. During automatic updates, the system briefly holds two images (old and new) before swapping. That's ~24GB of disk committed to the platform before your project files, your packages, your databases.

On a Hobby workspace with 40GB of disk, there isn't enough headroom for both your work and a meaningful set of Docker images. A single Node.js base image is 300MB-1GB, a Postgres image is 400MB, and a typical development stack with a few services can easily consume 5-10GB. After the platform takes its share and the filesystem reserves space for safety, there's not enough room for a reliable Docker experience.

Plus (80GB) and Pro (160GB) have the headroom. The math works, so Docker is enabled.

We could have enabled Docker on Hobby and let users deal with disk pressure themselves. We decided against it because "Docker works but you'll run out of disk in two weeks" is a worse experience than "Docker isn't available on this tier." The error messages from a full disk are cryptic and frustrating; a clear tier boundary is honest.

What Docker access looks like

On Plus and Pro workspaces, docker just works:

# Pull images, run containers
docker run -d --name postgres -e POSTGRES_PASSWORD=dev postgres:16

# Docker Compose works too
docker compose up -d

# Build images from your workspace
docker build -t my-app .

The Docker CLI binary is baked into the EnvHaven image via the INSTALL_DOCKER build flag, so it's present on all tiers. The difference is the socket: on Plus and Pro, the host's Docker socket is mounted into the container at startup. On Hobby, no socket is mounted, so the CLI binary exists but has nothing to talk to.

Containers run as siblings on the host VM, not nested inside the workspace. This means docker ps shows your containers alongside the workspace container itself. We label managed containers with envhaven.managed=true so that automated cleanup (during updates) only touches platform infrastructure, never your containers or images.

What Docker access doesn't include

Privileged mode. You can't run --privileged containers. Network namespace escaping via --network host isn't available either. These are security boundaries that protect the host VM, and they apply to all tiers.

Docker Compose stacks work, but you're sharing a single VM's resources. A workspace running three heavy services (database, cache, application) will feel the resource constraints on Plus. Pro gives more room, but it's still a single machine, not a Kubernetes cluster.

Persistent volumes work (Docker manages them on the host), but they don't survive workspace deletion. If you delete your workspace, the VM is destroyed and all Docker volumes go with it. Back up anything important.

The honest tradeoffs

For Hobby users who want Docker: Plus is $13/month more and doubles the resources. Docker is a new capability that lands on the tiers with enough disk and memory to support it reliably.

For users who need serious Docker workloads (multi-container stacks, large images, heavy builds): Pro is better, but it's still a single VM. If your workflow needs 10+ services or container orchestration (Kubernetes, Swarm), that's beyond what a single-VM workspace is designed for.

The self-hosted Docker image continues to include everything, regardless of tiers. Tiers only apply to managed hosting. If you run EnvHaven on your own hardware, you get Docker access by default because you control the resources.

What comes next

The tier structure gives us room to differentiate without constantly raising the base price. Future features that require more resources (GPU access, larger disks, multi-workspace networking) can land on the appropriate tier instead of bloating the one-size-fits-all plan.

For now, it's three tiers. Hobby for lightweight work and getting started, Plus for Docker and more power, Pro for maximum resources. All running the same open-source image, all with the same tools.

The source is MIT-licensed. Self-host it or use managed hosting. Either way, it's yours.


Edit, March 4 2026: Prices updated to reflect increased infrastructure costs. The article's content remains accurate; only dollar amounts changed.

Edit, March 11 2026: Annual billing is now available on all tiers. Prices shown with annual equivalent when billed annually.