---
title: Publish and Subscribe to Realtime Data on Vercel
description: Learn how to upload and store files with Vercel
url: /kb/guide/publish-and-subscribe-to-realtime-data-on-vercel
canonical_url: "https://vercel.com/kb/guide/publish-and-subscribe-to-realtime-data-on-vercel"
last_updated: 2025-11-10
authors: Rich Haines
related:
  - /docs/concepts/functions/serverless-functions
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

Realtime communication allows events to be streamed directly to your application by maintaining a single connection. WebSockets enable online experiences like collaborative document editing, multiplayer games, and interactive chatrooms.

The two main approaches to apply this model to stateless serverless functions are:

- [Serverless Functions](https://vercel.com/docs/concepts/functions/serverless-functions) have maximum execution limits and should respond as quickly as possible. They should not subscribe to data events. Instead, we need a _client_ that **subscribes** to data events and a _serverless function_ that **publishes** new data. Consider using one of the providers below to implement this approach.
  
- Rather than pushing data, you can fetch realtime data on-demand. For example, the Vercel dashboard delivers realtime updates using [SWR](https://swr.vercel.app/).
  

## Providers

These providers can help you integrate realtime communication into your Vercel application using Serverless Functions.

- [Ably](https://ably.com/)
  
- [Convex](http://convex.dev/)
  
- [Liveblocks](https://liveblocks.io/)
  
- [Partykit](https://www.partykit.io/)
  
- [Pusher](https://vercel.com/guides/deploying-pusher-channels-with-vercel)
  
- [PubNub](https://www.pubnub.com/)
  
- [Firebase Realtime Database](https://firebase.google.com/docs/database)
  
- [TalkJS](https://talkjs.com/)
  
- [SendBird](https://sendbird.com/)
  
- [Supabase](https://supabase.com/realtime)