ComparePlanetScale
Start free.Sleep for free.
PlanetScale has no free plan, and every database and branch on it bills around the clock. BataDB starts free, costs $0 while idle, and branches your data without charging for the branch.
Side by side
What's in the box.
Every plan gets branching and point-in-time restore, Free included. Your agents get the same CLI and MCP server you do.
| Feature | BataDB | PlanetScale |
|---|---|---|
| Scale to zero | Yes: After 5 idle minutes | No: Bills while running |
| Branches with your data | Yes: Copy-on-write, one command | Partly: Empty, or a full restore |
| No branch fees | Yes: None | No: $5 a month per dev branch |
| Point-in-time restore | Yes: Up to 30 days, included | Yes: Included, 2 days of backups by default |
| Connection pooling | Yes: Built in | Yes: PgBouncer included |
| CLI with JSON output | Yes: --json on every API command | Yes: --format json |
| MCP server | Yes: 128 tools | Yes: Hosted |
| One-command import | Yes: bata import | Partly: Dump and restore |
The bill
Watch the idle hours add up.
We priced the same workload on BataDB and on PlanetScale, then let the month run.
Side project
One small database, busy two hours a day and idle the rest.
- BataDBPay as you go$0.58 a month
- PlanetScalePS-10, single node$10.00 a month
Saved against PlanetScale, every month
$9.4294% less
Move
Moving over takes one command.
bata import copies your database from PlanetScale into a new BataDB project, then checks row counts and sequences on both sides.
From PlanetScale
npm install -g @batadata/clibata loginbata import --source "$PLANETSCALE_DATABASE_URL" --name my-app- Connect on port 5432, not the PgBouncer on 6432.
- SSL is required: add sslmode=verify-full.