CaffeineStacks is for teams with a production application that needs to be looked after, from €300 per month: we manage the runtime; your team develops the application. Want managed containers? See Managed Pods from €350 including capacity and Advanced. Prefer to deploy containers yourself? Pods from €100/month is your starting point. Running multiple applications and environments? Look at a dedicated managed cluster from €2,500/month.
CaffeineStacks give you a managed platform instead of a bare VPS. Every blend includes managed load balancing, verified backups, Ansible automation in Git, and a 99.9% monthly SLA.
Why does this cost more than a VPS?
With an unmanaged VPS, you rent computing capacity. You handle updates, monitoring, backups and incidents yourself, or pay someone to do that work. At CoffeeSprout, platform management is included in the monthly price.
We manage the VM, load balancer, backups, security updates and monitoring. You can view and edit the Ansible configuration in Git. Java is our specialty, but we also manage Python, Node.js, PHP, Go and other stacks. If you want to handle operations yourself, an unmanaged VPS can be a suitable, cheaper choice.
Pick your blend
The prices below are for Basis: response times during office hours. That fits applications used during the day by internal users: internal tooling, B2B portals, acceptance environments. Is your application in use in the evening too? Then there's Advanced: for P1 incidents on production we also respond outside office hours. Advanced is €250 per application stack, once per stack, regardless of the number of VMs. An application stack is one application with its direct dependencies (app servers, database, load balancer). Multiple independently running applications are multiple stacks.
| Blend | RAM | vCPU | NVMe included | With Basis | With Advanced | What you use it for |
|---|---|---|---|---|---|---|
| Espresso | 8 GB | 4 | 100 GB | €300 | €550 | Production apps, API servers, Spring Boot/Quarkus services |
| Lungo | 16 GB | 6 | 150 GB | €400 | €650 | Larger apps, more concurrent users, heavier workloads |
| Latte | 32 GB | 8 | 200 GB | €500 | €750 | PostgreSQL servers, Elasticsearch, batch processing |
Cortado (4 GB, 2 vCPU, 75 GB NVMe): €150/month, available only as a VM inside a stack (database or small service), not as a standalone production stack. The smallest standalone stack is Espresso.
Every VM gets its tier's storage allocated, including redundancy and verified backups. Within a stack we can redistribute storage to fit your application. Need more than your stack's total? Extra NVMe costs €25 per 100 GB.
Example stacks with pricing
| Setup | What's running | Price/month |
|---|---|---|
| Espresso with Advanced | 1× Espresso (8 GB) behind load balancer | €550 (€300 + €250) |
| Espresso stack | 1× Espresso (app) + 1× Cortado-DB (PostgreSQL) + Advanced | €650 (€300 + €100 + €250) |
| Lungo stack | 1× Lungo (app) + 1× Lungo-DB (PostgreSQL) + Advanced | €900 (€400 + €250 + €250) |
| HA stack (Basis) | 2× Espresso (app, redundant) + 1× Espresso-DB, office hours only | €750 (€300 + €300 + €150) |
| HA stack with Advanced | The same three VMs, now with Advanced (P1 response outside office hours too) | €1,000 (€750 + €250) |
| Espresso stack + acceptance | Espresso stack + 1× Espresso acceptance (60%, without production response times) | €830 (€650 + €180) |
In the HA stack the Espresso-DB is the one reduced VM (€150); the second app server counts at list price (€300).
Operations, monitoring, and support are included in the monthly price. No per-incident charges. Work outside scope gets a fixed price per job up front.
Need more? For larger setups with multiple teams, environments, and compliance requirements, check our Managed Clusters from €2,500/month.
We manage the runtime, not the code
Included: OS, container runtime, JVM and runtime configuration, load balancer and TLS, database engine, deployment mechanism, backups and recovery, and patches and upgrades across that whole layer. Failures in that layer we analyse and fix. Diagnosis doesn't stop at the edge of that layer: even when the cause sits in the application, we keep digging and you get a substantiated analysis (heap dump, query plan), not a referral.
Not included: application code and functional bugs, releases and migrations unless agreed, and extensive profiling, load testing, or code review. Work outside scope gets a fixed price per job up front, based on our €120 hourly rate.
For managed databases, continuous WAL archiving is standard: restore to a point in time, not to a backup moment. Backups run twice a day, encrypted, automatically verified, and stored remotely; backups kept for longer periods are stored on tape. Leaving? A one-time export of your data and customer-specific configuration is included, within 30 days of cancellation.
What's included
- Managed load balancer: HAProxy with SSL termination, health checks, and automatic failover. Add servers to the pool and we distribute traffic.
- Daily backups: Twice a day, encrypted and replicated to DC1 (Naaldwijk) and DC2 (Amsterdam), and automatically verified for readability as standard. Tape archiving is live, Glacier cold storage available on request.
- Git + Ansible transparency: Your infrastructure lives in a Git repo you can read and edit. Propose a change via pull request or let us handle it. Full audit trail included.
- Security & updates: OS patches, JDK updates, firewall hardening, vulnerability scanning. We coordinate maintenance windows and deployment timing to fit your release schedule.
- Monitoring & alerts: Proactive checks on CPU, memory, disk, processes. You get dashboard access and configure alert routing for your team.
- IPv6 by default: IPv4 where needed. Both at no extra cost.
Continuity
- Remote recovery, included: We can move your complete setup from DC1 to DC2 or vice versa. We do not estimate that, we measure it: on 21 July 2026 a production VM holding 31 GB of data was fully restored and running in 1.5 minutes inside the failover datacenter, and in 6 minutes once the data had to cross the link between both sites. Recovery time scales with the amount of data, not with disk size: for a full 100 GB server that works out at roughly 5 and 12 minutes. A full cluster restore took 49 minutes. Read how we measured this.
- Standby in a second Dutch location: Available for stacks that need to keep running when a datacenter fails. We test failover at least once a year, and the test date goes in your annual report (part of Advanced). The standby price depends on your environment; you get it up front as a fixed monthly amount.
- Fully dual-location: Your stack active in both datacenters with direct cross-connect, available as an option (see active/standby below).
Options
- Database or redundancy VM: Within the same application stack you add one VM at a reduced rate, with PostgreSQL, MariaDB, or what you need. The reduced rate is a discount on the list price of the same size (Cortado €150, Espresso €300, Lungo €400, Latte €500) and applies to at most one VM per stack; every further VM is at list price.
- Cortado-DB (4 GB): €100/month (list price €150), for apps with modest database load
- Espresso-DB (8 GB): €150/month
- Lungo-DB (16 GB): €250/month
- Latte-DB (32 GB): €300/month, for heavier databases
- High availability: Two VMs behind the load balancer for zero-downtime deploys. Updates roll one VM at a time: one gets updated while the other carries the traffic. A redundancy VM follows the same rule as the database VM: one reduced VM per stack.
- Acceptance and test environments: 60% of the corresponding production tier, without production response times. At most one environment carries the "acceptance" role per production stack; additional non-prod environments (test, staging) are welcome, each at the same 60% rate. Roles are agreed at intake.
- Active/standby DC setup: Want to failover between datacenters within 5 minutes? We run your stack actively in both DCs with direct cross-connect. Contact us for pricing.
- Extra storage: NVMe costs €25 per 100 GB, including redundancy and verified backups.
Service level: Basis and Advanced
Advanced shifts every priority up a level and keeps the P1 clock running outside office hours.
| Basis | Advanced | |
|---|---|---|
| Channel | mail + portal | app group + direct line |
| P1: production down | 4 working hours | 4 hours, also outside office hours |
| P2: production impaired | 1 working day | 4 working hours |
| P3: everything else | 3 working days | 1 working day |
| Monthly report + annual review | - | included |
Office hours are 09:00-17:00 on Dutch working days. A working day is 8 working hours. The clock starts on receipt in the agreed channel. P1 means production unreachable or data loss, P2 means production impaired, P3 covers everything else. Response time is the first human response and the start of analysis, not a recovery commitment.
Java advantages
For Java environments, we also provide JDK updates, JVM tuning and monitoring. See our framework-specific guides for Spring Boot and Quarkus.
- Automated JDK updates: Temurin and OpenJDK updates automated via Ansible. We patch according to the release cadence we agree on and test before applying.
- JVM tuning: GC settings (G1, ZGC, Shenandoah) and heap sizing tailored to your workload. We measure baselines per blend and tune where needed.
- Observability: JVM metrics, thread dumps, GC logs, and aggregation. Your team gets dashboard access to monitor along.
How it works
Onboarding: Every setup starts with a direct conversation where we tailor the stack to your needs. We provision your VMs, configure the load balancer, set up Git access, and coordinate the first deployment together.
Day-to-day operations: Backups and monitoring run automatically. You work with your Git repo to manage configs. We handle updates during agreed maintenance windows and respond to alerts before they become incidents.
Support: Response times are listed above under Basis and Advanced. With Advanced you get an app group and a direct line to the engineers running your platform; for P1 incidents on production we also respond outside office hours.
Coming soon: Barista, our self-service portal for provisioning and managing CaffeineStacks.