4 min read

Vercel Storage

Store key-value data, transactional data, large files, and more with Vercel's suite of storage products.
Table of Contents

Vercel offers a suite of managed, serverless storage products that integrate with your frontend framework.

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:

ProductReadsWritesUse CaseLimits
KVFastMillisecondsKey/value and JSON dataLearn more
PostgresFastMillisecondsStructured, relational dataLearn more
BlobFastMillisecondsLarge, content-addressable files ("blobs")Learn more
Edge ConfigUltra-fastSecondsRuntime configuration (e.g., feature flags)Learn more

Read our section on best practices to get the most out of our storage products.

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 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 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

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:

  1. Navigate to the dashboard and select the Storage tab
  2. Select Settings, then select Transfer Database or Transfer Store
  3. Select a destination account or team. If you're upgrading to Pro, select your new Pro team. If downgrading, select your Hobby account

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:

Last updated on May 22, 2024