PlanetScale
Managed MySQL on Vitess and managed Postgres, with schema changes shipped through branches and deploy requests.
- What it is
- Relational databases
- Type
- Commercial product
- Made by
- PlanetScale, Inc.
- License
- Proprietary (built on Vitess, Apache 2.0; the
pscaleCLI is Apache 2.0) - Facts checked
- 6 October 2026
What it is
PlanetScale runs databases for you on AWS and Google Cloud, in three flavours. Vitess databases speak the MySQL protocol: your app connects to VTGate proxies, which work out which MySQL 8 instances hold the rows and send the query there. Each MySQL instance is paired with a vttablet process. Tables can be split across many such shards by a sharding key that Vitess calls a vindex, while the app still sees one database. Postgres databases are plain Postgres run by PlanetScale’s own operator, with PgBouncer for connection pooling and extensions such as pgvector, PostGIS and TimescaleDB. Neki, in platform preview since September 2026, puts Postgres shards behind routers that speak the Postgres wire protocol. A highly available cluster is a primary and two replicas across three availability zones, on network-attached disks (Amazon EBS or Google Persistent Disk) that can grow automatically, or on Metal: local NVMe drives that you size up front.
Schema changes follow a code-review workflow. A branch is an isolated copy of the database. On Vitess you change the schema on a development branch, open a deploy request, and PlanetScale applies it online by building a ghost table with the new schema, keeping it in sync, then swapping it in; for 30 minutes you can revert without losing writes made in between. There has been no free plan since April 2024. Pricing is by resources: a monthly price per cluster size, prorated to the millisecond, plus storage, backups and egress. In AWS us-east-1 a single-node Postgres starts at $5 a month, a highly available Postgres cluster at $15, a Vitess cluster at $39 and Metal at $50. Enterprise customers can run it single-tenant or inside their own AWS or GCP account.
Why teams pick it
- Horizontal sharding for MySQL from Vitess, the system YouTube built and Slack, GitHub and Square adopted, behind one connection string
- Schema changes go through reviewed deploy requests, run online without locking tables, and can be undone for 30 minutes
- Metal’s local NVMe drives give unlimited IOPS with storage included in the cluster price; Postgres on Metal starts at $50 a month
- Plain resource pricing with a public price list, 12 AWS and 7 GCP regions, and an option to run in your own cloud account
Watch out for
- No free tier since the Hobby plan was retired on 8 April 2024, and new accounts are capped at
PS-160andM-320sizes until they have paid a $100 invoice - Vitess isn’t all of MySQL: no stored procedures, triggers or events, no
LOCK TABLESorLOAD DATA INFILE, InnoDB only, every table needs a unique key, and no binlog replication to outside databases - Postgres branching lags Vitess: new branches start empty or from a backup, there are no deploy requests, and schema changes are copied to production by hand
- Metal storage doesn’t grow on its own: the database turns read-only when 6 GB is left, and on GCP Metal starts at $559 a month
- Network-attached storage is billed per instance, so a highly available Vitess cluster pays $1.50 per GB a month beyond the 10 GB included
Alternatives
What all relational databases have in common →
CedarDBCommercialA PostgreSQL-compatible database rebuilt from scratch at TU Munich, running transactions and analytics on one copy of the data on a single server.
CloudNativePGOpen sourceA Kubernetes operator that runs highly available PostgreSQL with no Patroni and no StatefulSets: the Kubernetes API itself holds the cluster’s state.
PatroniOpen sourceA Python agent beside each Postgres server that elects one primary through etcd, Consul, ZooKeeper or Kubernetes, and fails over when it dies.
Percona OperatorsOpen sourceFour free Kubernetes operators from Percona that run its builds of MySQL, PostgreSQL and MongoDB, each using the engine’s own replication and backup tools.
PGO (Crunchy Postgres for Kubernetes)Open sourceCrunchy Data’s Postgres operator: Patroni in every pod for failover, pgBackRest for backups, and a declarative `PostgresCluster` resource on top.
ScramDBCommercialA brand-new, closed-source database that speaks the PostgreSQL protocol and promises transactions, analytics and vector search on one copy of the data; first builds shipped in summer 2026.How it fits with other technologies
What PlanetScale uses
Ship a schema change through a branch and a deploy request · bash
# a Vitess (MySQL-compatible) database in Frankfurt; deploy requests need safe migrations
pscale database create shop --engine mysql --region eu-central --cluster-size PS_10 --wait
pscale branch safe-migrations enable shop main
# change the schema on an isolated development branch, not on production
pscale branch create shop add-order-notes --from main --wait
pscale shell shop add-order-notes
# mysql> ALTER TABLE orders ADD COLUMN notes VARCHAR(500) NULL;
# open a deploy request, review the diff, then apply it online
pscale deploy-request create shop add-order-notes --into main --notes 'Add order notes'
pscale deploy-request diff shop 1
pscale deploy-request deploy shop 1
# changed your mind? revert within 30 minutes without losing new writes
pscale deploy-request revert shop 1Vitess, Postgres or Neki?#
One account can hold all three. Prices are monthly list prices in AWS us-east-1 from PlanetScale’s pricing page, checked 2026-10-06; other regions differ.
| Vitess | Postgres | Neki | |
|---|---|---|---|
| What runs | MySQL 8 behind VTGate proxies | One Postgres cluster with PgBouncer | Postgres shards behind Neki routers |
| Status | Generally available since 2021 | Generally available since September 2025 | Platform preview since September 2026 |
| Horizontal sharding | Yes: you pick a sharding key (vindex) per table | No: scale up, or move to Neki | Yes: you pick the shard key in a JSON data topology |
| Schema changes | Deploy requests, applied online, 30-minute revert | Plain DDL on each branch; no deploy requests | Built-in online workflows |
| Smallest production cluster | PS-10 with two replicas: $39 | PS-5 single node: $5; with two replicas: $15 | PS-10 arm64 shard with two replicas: $30, plus routers from $6 |
| Development branches | About 1,440 hours a month included, then about $0.014 an hour | $5 a month each | Billed as a new branch |
| Network-attached storage | 10 GB included, then $0.50 per GB per instance | 10 GB included, then $0.125 per GB per instance | 10 GB per instance included; rate varies by region |
| Metal from | $609 (M-160, 110 GiB) | $50 (M-10 arm64, 10 GiB) | $589 (M-160 arm64, 118 GiB per shard) |
- A highly available cluster has three instances, so storage beyond the included 10 GB costs three times the per-instance rate.
- Postgres includes 100 GB of egress a month per production branch; beyond that public egress costs $0.06 per GB in us-east-1, and backups beyond twice the disk size cost $0.023 per GB a month.
Network-attached storage or Metal?#
Both run a primary and two replicas across three availability zones. The difference is where each instance keeps its data.
| Network-attached | Metal | |
|---|---|---|
| Where data lives | Amazon EBS (gp3) or Google Persistent Disk | NVMe drives attached to the server |
| I/O | On AWS 3,000 IOPS and 125 MiB/s included; more is billed | Unlimited IOPS, no extra charge |
| Growing | Storage can autoscale | Pick a drive size up front, resize to a bigger drive; read-only at 6 GB free |
| Storage price | Billed per GB on top of the cluster | Included in the cluster price |
| Fits | Small or unpredictable data sizes | I/O-heavy or latency-sensitive workloads, large EBS bills |
See it in a real stack
No architecture uses PlanetScale yet. Drop it into the playground and wire it up yourself.Open playground →Worth exploring
Where it came from2010–2026
In 2010 YouTube’s MySQL primary was running out of room. Read replicas bought time, then writes outgrew one server, so the app itself learned which shard held each row. Vitess moved that routing out of the application into a proxy that sits between the app and MySQL. It has been part of YouTube’s database infrastructure since 2011, grew to tens of thousands of MySQL nodes, and was adopted by Slack, Square and GitHub. It joined the CNCF in 2018 and graduated in November 2019.
Vitess’s co-creators and maintainers founded PlanetScale in 2018. The cloud product launched in beta in May 2021 as “the database for developers”, promising schema changes as easy as deploying code, and became generally available that November with a $50 million Series C.
In March 2024 CEO Sam Lambert chose profitability: the company laid off staff, mainly in sales and marketing, and retired the free Hobby plan. Since then PlanetScale has moved down the stack and across engines, with local NVMe Metal clusters in 2025, managed Postgres the same year, and Neki, sharded Postgres built from scratch rather than forked from Vitess, in 2026.
Why it’s built this way
- Build on Vitess instead of a new engine
- The founders had already scaled MySQL at YouTube with Vitess, and sharding behind a proxy keeps real MySQL underneath while the app sees one database.
- Branches and deploy requests for schema changes
- Developers wanted a SQL database without being held back by managing its schema. Treating a schema change like code (a branch, a reviewed diff, a deploy, an undo) aims to make it feel as easy as deploying code.
- Online migrations through a ghost table
- Copying data into a new table in the background and swapping it in avoids locking the live table, and keeping the old table in sync for 30 minutes makes a revert possible.
- Local NVMe drives instead of network storage
- Every read and write on a network-attached volume crosses the network, and high IOPS cost extra. Local drives give lower latency and unlimited IOPS, at the price of choosing a drive size up front.
Timeline
- 2010
YouTube creates Vitess to scale its MySQL databases
- 2018
Vitess co-creators found PlanetScale; Vitess joins the CNCF
- 2019
Vitess graduates from the CNCF
- 2021
PlanetScale’s cloud database enters beta in May, generally available in November
- 2024
Layoffs and the end of the free Hobby plan (8 April)
- 2025
Metal (local NVMe) in March; PlanetScale for Postgres in September
- 2026
Neki, sharded Postgres, enters platform preview
- Vitess docs: History
- CNCF: Cloud Native Computing Foundation announces Vitess graduation (Nov 2019)
- PlanetScale: About (founded in 2018 by the co-creators of Vitess)
- PlanetScale blog: Announcing PlanetScale, the database for developers (May 2021)
- PlanetScale blog: PlanetScale is GA (Nov 2021)
- PlanetScale blog: PlanetScale forever (Mar 2024)
- PlanetScale blog: Announcing PlanetScale Metal (Mar 2025)
- PlanetScale blog: PlanetScale for Postgres is now GA (Sep 2025)
- PlanetScale blog: Introducing Neki (Sep 2026)
Sources29 · facts checked 6 October 2026
- PlanetScale: Pricing
- PlanetScale: Pricing catalog, AWS us-east-1 (pricing.md)
- PlanetScale: Pricing catalog, GCP us-central1
- PlanetScale docs: Plans (Base plan, storage, branches, size caps, no free plan)
- PlanetScale docs: Postgres pricing (storage, backups, egress)
- PlanetScale docs: Selecting a region
- PlanetScale docs: PlanetScale Metal
- PlanetScale blog: $50 PlanetScale Metal is GA for Postgres (Dec 2025)
- PlanetScale docs: Branching (Vitess)
- PlanetScale docs: Deploy requests
- PlanetScale docs: Safe migrations (ghost tables, schema revert)
- PlanetScale docs: Branching (Postgres)
- PlanetScale docs: MySQL compatibility
- PlanetScale docs: Foreign key constraints
- PlanetScale docs: Sharding with PlanetScale
- PlanetScale docs: Postgres extensions
- PlanetScale docs: TimescaleDB extension
- PlanetScale docs: Private connections via AWS PrivateLink
- PlanetScale docs: Terraform provider
- PlanetScale docs: CLI `database` command
- PlanetScale docs: CLI `branch` command
- PlanetScale docs: CLI `deploy-request` command
- PlanetScale docs: CLI `shell` command
- PlanetScale blog: Introducing Neki (Sep 2026)
- Vitess docs: VTGate
- Vitess docs: Tablet
- Vitess on GitHub (Apache 2.0)
- PlanetScale CLI on GitHub (Apache 2.0)
- CNCF: Vitess graduation (adopters: GitHub, Slack, Square, YouTube)