No CMS or framework detected, hosted on Hetzner.
Confidence reflects how many independent signals matched.
| Technology | Version | Confidence | First seen |
|---|---|---|---|
| Web Servers, Languages & Backend Frameworks1 | |||
| – | High | 14 Oct 2026 | |
| CDN & Hosting1 | |||
| – | High | 14 Oct 2026 | |
| Fonts & Icon Fonts1 | |||
| – | High | 14 Oct 2026 | |
ns36.domaincontrol.comns35.domaincontrol.comv=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc_rua@onsecureserver.net;# Humans: https://battleships.dev/ · AI agents: start at https://battleships.dev/llms.txt (static JSON/Markdown, no need to render the app) User-agent: * Allow: / Crawl-delay: 2 Sitemap: https://battleships.dev/sitemap.xml
# Battleships
> Monthly cost of 368 cloud sandbox, VM and agent-runtime providers for a given AI-agent workload, from each provider's public pricing, with features checked against their docs (quoted sources). Built by the boat.dev team; boat.dev is held to the same rules as everyone.
The human page (https://battleships.dev/) is an interactive estimator. Agents: use these static files instead of the HTML. Everything below is plain static files, cached; please don't crawl the HTML page.
## Data
- [Provider index](https://battleships.dev/data/index.json): every provider with category, isolation, features it has, links to its files
- Per provider: `https://battleships.dev/data/providers/<id>.json` (full pricing card, features, quoted evidence, and `company`: ownership, funding stage, accelerators, money raised and revenue, each confirmed / estimated / unknown with sources) and `https://battleships.dev/data/providers/<id>.md` (readable summary + how it charges)
- [Feature definitions](https://battleships.dev/data/features.json): what each feature means and why it matters
- [Use-case presets](https://battleships.dev/data/presets.json): the workloads behind each ranking
- Rankings per preset, as the page computes them: `https://battleships.dev/data/rankings/<preset>.json` and [all rankings in one page](https://battleships.dev/data/rankings.md)
- [Everything in one text file](https://battleships.dev/llms-full.txt)
## Price your own workload
Download [engine.js](https://battleships.dev/engine.js) and a provider card, then in Node:
```js
require('./engine.js'); const card = require('./e2b.json');
const W = { vcpu: 2, ram: 4, disk: 10, os: 'linux', arch: 'any', gpu: 'none', gpuCount: 1, sessions: 1000, sessionMin: 10, concurrency: 20, alwaysOn: 0,
cpuUtil: 0.3, ramUtil: 0.5, idleShare: 0.2, cpuPeakUtil: 0.6, ramPeakUtil: 0.7, snapshotGiB: 0, egress: 10, ipv4: 0, seats: 1, persistentDisk: false, pooled: false, classes: null, showZero: false, internet: 'open' };
const r = PM.priceSoft(card, W, { required: ['docker_inside'], maxAccess: 3, region: 'any', idleSuspend: true, idleCapture: 1, overrides: {}, sizing: 'min' });
console.log(r.total, r.breakdown, r.compromises);
```
Fields: sessions a month, minutes per session, machines at once, machines on 24/7, CPU/RAM busy share (0-1), GiB kept, GiB egress.
internet: what sandboxes must reach: 'open' (any site or API), 'pkg' (package registries, git hosting, LLM APIs) or 'none'. Some providers only reach an allowlist on cheap tiers (card.network.internet, plan.internet); the engine then prices the tier that opens the network and reports the prepay or plan it takes (r.access).
## Notes
- Prices are list prices from public pages, re-checked 2026-09-28..30; unknown = not published (never assumed free or unlimited).
- Source code and data: https://github.com/ariana-dot-dev/battleships