Comparing Popular Cloud Databases - Neon, Supabase, PlanetScale
A few weeks ago, I wrote a post looking into the database branching feature of the Neon database, and it got the attention of other database solutions in the space. The conversations that followed led to this post. Here, I want to take a more holistic view and compare the general offerings of the other solutions in this space.
The goal is not to declare a winner but to give you a broader perspective on these offerings to make a more informed decision when selecting a database for your next project. There are several serverless database providers out there, but for this post, we’ll be looking at Neon, Supabase, and PlanetScale.
First, we’ll look at these tools individually to give you a better understanding of their features and the problems they solve, starting with Neon.
Neon
In the previous post, we looked at Neon in more detail, covering what it is, how it works, and the branching features it offers. If you haven’t read that yet, here’s a primer on Neon.
Neon is a serverless Postgres database built with a focus on providing a good developer experience and scalability. It separates storage and compute to allow developers scale resources independently, which makes it easier to manage surges and traffic spikes, amongst other things.
Offerings:
Separation of storage and compute
Scalable architecture and ease of use
Postgres ecosystem
Database branching
Growing community and active support
Supabase
Supabase has positioned itself as the open-source alternative to Firebase. Like Neon, its database offering is built on PostgreSQL and offers a comprehensive suite of tools and services that extend beyond just the database layer.
Supabase offers features like built-in user authentication, real-time functionalities, and file storage. These added features make Supabase a strong solution for users that don’t already have authentication and backend APIs handled elsewhere.
Offerings:
Integrated backend features
Developer experience and ease of use
Active community and support
Open-source foundation
Collaborative features
PlanetScale
PlanetScale is a database solution built on MySQL and is heavily focused on scaling and high availability.
It features automatic sharding, branching, and global database deployments for geographically distributed data. This makes it particularly appealing for applications that require minimal downtime and the ability to handle large volumes of data across multiple locations.
Offerings
Focus on scalability and high availability
Compatibility with the MySQL ecosystem
Branching and version control
Global deployments and distribution
Head-to-head comparison
This table compares the features and offerings of the technologies in this post to help you better understand their capabilities.
Feature | Neon | Supabase | PlanetScale |
Database Engine | PostgreSQL | PostgreSQL | MySQL |
Deployment Model | Serverless | Managed Service | Managed Service |
Ease of Use | High | High | Moderate |
Scalability | Automatic (CPU, RAM, Storage) | Manual (Storage only) | Manual (Storage only) |
High Availability | Supported | Supported | Supported |
Pricing Model | Free tier with paid plans | Free tier with paid plans | Only paid plans |
Additional Features | Split compute and storage | Authentication, Storage, Real-time | Global deployments |
Open Source? | Yes | Yes | Partial |
Community Support | Growing | Active | Active |
Best suited for | Scalable web applications | Full-stack development | High-availability & geographically distributed data |
Although the features in the table above are all important, I’d like to dive deeper and look at how the technologies compare with the premise of this post (database branching) and deployment models.
Database branching
Neon branching works as it does in Git: You can create a complete (schema + data) branch of your database from any point in history. There are GitHub Actions templates to automatically create a branch for every PR. Neon doesn’t support merging branches, so production deployments are still handled by a migration tool like Prisma or Drizzle. Branches are available on the free tier, and on paid plans they’re billed at $0.04 per hour active and automatically scale to zero when idle.
Supabase announced its database branching feature in December of 2023. The feature is still developing, but currently, branches are independent databases with the same schema and seed data that are automatically created for each code branch. Supabase also doesn’t support merging. Branches are billed at 10 USD/month.
PlanetScale has two types of branches: Development branches are schema-only copies, and the more advanced Data Branching feature allows you to pre-load a development branch with data from a recent backup. Planetscale also has a deploy request feature that helps merge schema diffs across branches. Branches are billed at $0.014 per hour.
Neon and PlanetScale offer the most comprehensive database branching features. They support granular branching controls that allow for efficient development and testing workflows. Supabase has database branching functionalities but it is not yet as mature as that of the other providers.
Deployment model
The deployment model dictates how the database is set up, managed, and how resources are scaled.
Here are the main types relevant to this comparison:
Serverless: A fully managed service where you don't need to worry about servers or manually configuring scaling. The database provider automatically handles infrastructure, and resources scale up or down easily based on your application's usage. It offers flexibility and reduces operational overhead.
Managed Service: A partially managed approach where the service provider handles some of the infrastructure and management tasks. This lessens your burden compared to traditional databases but may involve some level of abstraction compared to pure serverless options.
Cloud-based: A database solution hosted on a cloud provider's infrastructure. While offering flexibility and scalability, it typically requires you to choose virtual machine sizes or similar resource configurations and pay for those resources rather than being based purely on usage.
Database | Deployment Model | Description |
Neon | Serverless | Neon offers a fully managed serverless service that automatically scales resources based on usage, including scaling to zero on idle. |
Supabase | Managed Service | Supabase offers a managed service with auto-scaling disk storage on paid plans, but CPU and memory must be manually configured. |
PlanetScale | Managed Service | Planetscale is similar to Supabase, with manually configured CPU and Memory and autoscaling storage. |
Only Neon is truly serverless, meaning users don't need to manage servers or configure scaling. Supabase and Planetscale offer managed services that abstract away the server management tasks, but it's not purely a serverless solution.
Recommendations
A ton of consideration goes into deciding on a database solution and there’s no one-size-fits-all solution. These technologies are all good products and are well-suited for different use cases. As such, the decision on which to choose will depend primarily on your project requirements. Here are some questions you can try to answer to understand your project needs:
What Database Engine do you want? Do you require PostgreSQL, or are you open to other options like MySQL or a custom data warehouse engine?
Are scalability and availability important to you? How critical are automatic scaling and high availability for your application?
Ease of use? How important is a user-friendly interface and simple setup for your development team?
Additional Features: Do you need built-in functionalities like authentication, storage, search, or analytics?
Budget: What is your budget for database costs, considering pricing models and potential usage patterns?
Once you have answers to these questions, the next step is to evaluate how your options align with your needs. For instance:
Neon is ideal for scalable web applications that require ease of use, efficient cost management, database branching features, and PostgreSQL compatibility.
Supabase provides useful features like authentication, API and real-time functionality on top of a managed PostgreSQL database, making it a great all-in-one backend.
PlanetScale is an excellent choice for scaling existing MySQL applications or building highly available applications with global data distribution, but costs start higher than the others. If database branching is an important feature, PlanetScale also has it covered.
Conclusion
While this post hopes to give you the data you need to make the right decisions when choosing your next database solution, remember that they are just general recommendations. Assess each platform to make a suitable decision for your project.
Subscribe to my newsletter
Read articles from Ekene Eze directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Ekene Eze
Ekene Eze
Hey, I'm Kenny! I teach web development, Open Source and Web3 technologies