Vercel Storage
Store key-value data, transactional data, large files, and more with Vercel's suite of storage products.The creation of new Vercel Postgres and Vercel KV stores has been transitioned to the Vercel Marketplace with Neon Postgres and Upstash KV. For alternative KV and Postgres storage solutions, you can explore Marketplace integrations. If you have existing Vercel KV and Vercel Postgres stores, the transition will happen automatically with no downtime and no action required on your end, starting the first week of December 2024, and expected to be completed by the end of January 2025.
Vercel offers a suite of managed, serverless storage products that integrate with your frontend framework.
- Vercel KV: Durable Redis
- Vercel Postgres: Serverless SQL
- Vercel Blob: Large file storage
- Vercel Edge Config: Global, low-latency data store
This page will help you choose the right storage product for your use case.
Choosing the correct storage solution depends on your needs for latency, durability, and consistency, among many other considerations.
To help you choose, we've created a table below to summarize the benefits of each storage option in relation to each other:
Product | Reads | Writes | Use Case | Limits | Plans |
---|---|---|---|---|---|
KV | Fast | Milliseconds | Key/value and JSON data | Learn more | Hobby, Pro |
Postgres | Fast | Milliseconds | Structured, relational data | Learn more | Hobby, Pro |
Blob | Fast | Milliseconds | Large, content-addressable files ("blobs") | Learn more | Hobby, Pro |
Edge Config | Ultra-fast | Seconds | Runtime configuration (e.g., feature flags) | Learn more | Hobby, Pro, Enterprise |
Read our section on best practices to get the most out of our storage products.
Vercel KV is available on Hobby and Pro plans
Vercel KV provides durable, serverless Redis storage. You should use Vercel KV if you want to:
- Use the familiar Redis API: Take advantage of one of the most popular data stores, built on the open Redis standard.
- Access fast key-value data: For example, reading and writing user sessions.
- Ensure multi-region storage: Vercel KV data can be replicated to multiple regions.
Vercel Postgres is available on Hobby and Pro plans
Vercel Postgres is a serverless PostgresSQL database, designed to integrate with Vercel Functions and your frontend framework.
You should use Vercel Postgres if you need to:
- Manage complex, transactional data: Ideal for storing financial transactions, inventory records, or other critical data. Postgres ensures high consistency and concurrency, making it well-suited for applications that require reliable, real-time data management.
- Rich data types and extensibility: Choose Postgres for handling diverse data formats or custom data types, such as JSON, arrays, or user-generated content.
Vercel Blob is available in Beta on Hobby and Pro plans
Those with the owner, member, developer role can access this feature
Vercel Blob offers optimized storage for images, videos, and other files.
You should use Vercel Blob if you need to:
- Store images: For example, storing user avatars or product images
- Store videos: For example, storing user-generated video content
Edge Config is available on all plans
An Edge Config is a global data store that enables you to read data at the edge without querying an external database or hitting upstream servers. Most lookups return in less than 1ms, and 99% of reads will return under 10ms.
You should use Edge Config if you need to:
- Fetch data at ultra-low latency: For example, you should store feature flags in an Edge Config store.
- Store data that is read often but changes rarely: For example, you should store critical redirect URLs in an Edge Config store.
- Read data in every region: Edge Config data is actively replicated to all regions in the Vercel Edge Network.
When choosing a storage option, we recommend considering these best practices:
To ensure low-latency responses, it's crucial to have compute close to your databases. Always deploy your databases in regions closest to your Functions to avoid long network roundtrips.
- Serverless Functions: Defaults to
iad1
, but can be deployed to any region- If using Vercel Postgres, ensure your database is in the same region as your Function
- If using Vercel KV and replicated regions, place your stores in the same regions as your Functions
- Edge Functions: Global by default, opt-into single-region
- If using Vercel Postgres, ensure your database is in the same region as your Function
- If using Vercel KV and replicated regions, place your stores in the same regions as your Functions
- Edge Middleware: Global only; always executed in the region nearest the user
- Since Edge Middleware as part of request processing, it is best suited for extremely fast and globally replicated data like Edge Config
Vercel's Edge Network provides caching in every region globally. To ensure the fastest response times, ensure data fetched from your data store is properly cached at the Edge.
Incremental Static Regeneration automates properly setting up caching headers and globally storing generated assets for you. This ensures the highest availability for your traffic and prevents accidental misconfiguration of cache-control headers.
You can manually configure cache-control headers when using Vercel Functions to cache the response data in every Edge region. Edge Middleware runs before the Edge Network cache layer and cannot use cache-control headers.
You can bring your KV or Postgres Database along with your account as you upgrade from Hobby to Pro, or downgrade from Pro to Hobby. To do so:
- Navigate to the dashboard and select the Storage tab
- Select Settings, then select Transfer Database or Transfer Store
- Select a destination account or team. If you're upgrading to Pro, select your new Pro team. If downgrading, select your Hobby team
When successful, you'll be taken to the Storage tab of the account or team you transferred the database or store to.
Your pricing and available features will change based on the plan your database is under. See the pricing docs for your preferred option to learn more:
Was this helpful?