Realtime
Keep pages up to date the moment data changes, and show who's here, who's typing and where their cursor is, without refreshing.
Floot Realtime keeps your app's screens up to date while people look at them. When someone changes something, everyone watching sees it, with no refresh button and no page asking the server again every few seconds. Every Floot project has it on every plan; ask your assistant for the behaviour you want and it gets wired in.
| What you want | What it does | Example |
|---|---|---|
| A list or page that stays up to date | When the data behind a list or page changes, every screen showing it updates by itself. | A scoreboard, an order queue, a shared task board, a class quiz the teacher watches |
| Shared moment-to-moment state | Small things people do right now, shown to the others on the same page and never saved. | "Sam is typing…", live cursors, who has pressed Ready, which item someone has selected |
| Who's here | The people online in a room, document or team, updated as they come and go. | Avatars at the top of a shared document, "12 visitors online" |
| Messages and events | Messages pushed to the people who should see them. | Chat, notifications, an AI reply appearing as it is written |
How to use it
Describe what should update and who should see it. You don't need to name the feature.
When anyone on a team edits their board, update it right away for that team and for the facilitator, without reloading.In the chat, show "… is typing" under the message box while the other person types.Show the avatars of everyone who has this document open.Test it with the preview open in two browser windows, or on your computer and your phone, signed in as two different people.
Live lists and pages instead of refreshing
A page that asks the server for fresh data every few seconds costs you even when nothing has changed: each request runs your backend and reads the database, and the database never gets the minute of quiet it needs to go to sleep, so it is billed for as long as anyone has that page open. See Database. Asking less often does not fix this: asking every 30 seconds still keeps it awake.
A live list or page loads its data once. When your backend saves a change, it sends the new data to the screens showing it, or tells them to load it again. Nothing runs while nothing changes. If a page of yours asks for fresh data on a timer and its data changes while people watch, ask your assistant:
This page refreshes every few seconds. Make it a live query that updates when the data changes, and remove the timer.Typing, cursors and who's ready
Shared state is for things that matter only while they are happening. Each person's screen sends its value only when it changes, not on every keystroke, and only the screens that show it receive it: a Ready flag the teacher watches is not sent to every student. Nothing is saved. When someone clears their value it disappears for the others at once; when they close the page or lose their connection, it disappears within about a minute.
Who receives what
Your app decides who may receive each update, from who is signed in. In a shared game, or a document opened by link, everyone in it can see everyone else. An app with private data, such as a support desk or a dashboard per customer, sends each person only their own updates. Tell your assistant who should see what, and check it in two windows signed in as different people.
Projects that used Realtime before 19 October 2026
Live lists and shared state came to Floot Realtime on 19 October 2026, together with a client that reconnects without flooding your backend after a dropped connection and that bundles messages sent close together into one request. A project that already had Realtime before then keeps its older copy until it is upgraded. Your assistant upgrades it when it next works on realtime in that project, or straight away if you ask:
Upgrade this project's realtime client to the latest version.The upgrade changes your project's code, so publish afterwards for it to reach your published app.
What it costs
Realtime is metered as hosting usage, billed to the project owner: each message delivered to a screen, the time screens stay connected, and each new connection. A message sent to many people counts once for each person who receives it, so send updates only to the people whose screen changes. See Reliability and limits for how hosting is billed, and the hosting dashboard for what each app uses.
Limits
- Large data is reloaded, not sent. When a live list's new data is over 100 KB, screens are told to load it again instead of receiving it.
- A screen reloads a live list at most about once a second, however many changes arrive in that second.
- Messages are not kept for screens that are offline. A screen that reconnects loads its live lists again, so it catches up, but messages sent while it was away are not replayed. Save anything that matters to your database.
- It is not a game server. For fast multiplayer action with many updates a second, your assistant connects the players directly and uses Realtime only to set that up.