diff --git a/docs/pages/platform/limits.mdx b/docs/pages/platform/limits.mdx
index 1a543aded65..8daaa62b82f 100644
--- a/docs/pages/platform/limits.mdx
+++ b/docs/pages/platform/limits.mdx
@@ -8,70 +8,67 @@ meta:
## General limits
-To prevent abuse of our platform, we apply the following limits to all accounts.
-
-| | Starter | Pro | Enterprise |
-| -------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------ | ---------- |
-| Monthly active users | | | Custom |
-| Projects | | | Unlimited |
-| Average connections per MAU | Up to | Up to | Custom |
-| Maximum data stored size per room | Up to | Up to | Custom |
-| Simultaneous connections per room | Up to | Up to | Custom |
-| Simultaneous connections per project | Up to | Up to | Custom |
-| Team members per account | | | Custom |
-| Monthly public key connections | | | Custom |
-| [`yDocUpdated`](/docs/platform/webhooks#YDocUpdatedEvent) webhook event throttle | | | Custom |
-| [`storageUpdated`](/docs/platform/webhooks#StorageUpdatedEvent) webhook event throttle | | | Custom |
-
-#### Comments
-
-{/* prettier-ignore */}
-Comments is free up to monthly active users and comments per month. You can get higher limits for an additional .
-
-| Comments | Included | Paid add-on |
-| -------------------- | ----------------------------- | ------------------------- |
-| Monthly active users | | |
-| Monthly comments | | |
-
-#### Notifications
-
-{/* prettier-ignore */}
-Notifications is free up to monthly active users and notifications per month. You can get higher limits for an additional .
-
-| Notifications | Included | Paid add-on |
-| --------------------- | ---------------------------------- | ------------------------------ |
-| Monthly active users | | |
-| Monthly notifications | | |
-
-#### Text editor
-
-{/* prettier-ignore */}
-Text editor is free up to monthly active users and data stored. You can get higher limits for an additional .
-
-| Text editor | Included | Paid add-on |
-| -------------------- | --------------------------------------- | ----------------------------------- |
-| Monthly active users | | |
-| Total GB stored | | |
-
-#### Sync Datastore
-
-{/* prettier-ignore */}
-Sync Datastore is free up to monthly active users and data stored. You can get higher limits for an additional .
-
-| Sync Datastore | Included | Paid add-on |
-| -------------------- | -------------------------------------- | ---------------------------------- |
-| Monthly active users | | |
-| Total GB stored | | |
-
-### Monthly active users
-
-Learn more about how monthly active users are calculated for each plan on our
-[plans page](/docs/platform/plans).
-
-### Simultaneous connections per room
-
-Learn more about handling simultaneous room connection limits in our guide about
-[joining rooms at maximum capacity](/docs/guides/what-happens-when-a-user-joins-a-room-at-maximum-capacity).
+There are two Liveblocks plans, and each has its own set of limits.
+
+| | Pro | Enterprise |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Monthly active users How is this calculated? | free, then pay per MAU | Up to |
+| Projects Learn more | | |
+| Team members per account Learn more | | Up to |
+| Average connections per MAU What's a connection? | | Up to |
+| Maximum data stored size per room What's a room? | | Up to , depending on usage |
+| Simultaneous connections per room What is this? | | Up to , depending on usage |
+| Simultaneous connections per project What is this? | | |
+| Monthly public key connections Public key only recommended for prototyping. Set up authentication. | | Up to |
+| Monthly comments\* Applies when Comments add-on is purchased. | | Up to |
+| Monthly notifications\* Applies when Notifications add-on is purchased. | | Up to |
+| Total text editor data\* Applies when Multiplayer Editing add-on is purchased. Data for Tiptap, Lexical, and BlockNote. How is this calculated? | | Up to |
+| Total sync engine data\* Applies when Multiplayer Editing add-on is purchased. Data for Yjs and Storage. How is this calculated? | | Up to |
+| `yDocUpdated` webhook event throttle Learn more | | Down to |
+| `storageUpdated` webhook event throttle Learn more | | Down to |
+
+
+
+\* Requires add-on purchase.
+
+
+
+### First day free policy [#first-day-free-highlight]
+
+Both plans include our first day free policy, meaning you’ll only be charged for
+users who come back after their first visit.
+[Learn more](#first-day-free-policy).
+
+## Free development environment limits
+
+The Pro plan comes with a free, fully-featured, development environment,
+allowing you to prototype Liveblocks applications before making a purchase.
+There are usage limits.
+
+| | Free development environment |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
+| Monthly active users How is this calculated? | |
+| Projects Learn more | |
+| Team members per account Learn more | |
+| Average connections per MAU What's a connection? | |
+| Maximum data stored size per room What's a room? | |
+| Simultaneous connections per room What is this? | |
+| Simultaneous connections per project What is this? | |
+| Monthly public key connections Public key only recommended for prototyping. Set up authentication. | |
+| Monthly comments | |
+| Monthly notifications | |
+| Total GB stored (text editors) How is this calculated? | |
+| Total GB stored (sync datastores) How is this calculated? | |
+| `yDocUpdated` webhook event throttle Learn more | |
+| `storageUpdated` webhook event throttle Learn more | |
+
+### Commercial usage
+
+The Pro plan’s free development environment is restricted to non-commercial use
+only. All commercial usage of the platform requires a paid Pro or Enterprise
+plan. Commercial usage refers to any usage of the Liveblocks platform in
+projects where financial gain is being sought by any party involved in the
+production, including paid employees or consultants.
## Other limits
@@ -81,7 +78,8 @@ A `roomId` cannot exceed 128 characters.
### `userId` limit
-A `userId` cannot exceed 128 characters.
+A `userId` cannot exceed 128 characters. Each `userId` must be used to represent
+a single user.
### `userInfo` limit
@@ -106,3 +104,98 @@ count towards the limit. Only the JSON leaves of your data structure count
towards the limit. For example, if a `LiveList` is nested inside a `LiveObject`,
the `LiveList` and its contents do not count towards the `LiveObject`’s data
limit.
+
+## FAQs
+
+### What is a monthly active user (MAU)?
+
+Monthly active users (MAU) represents the number of users that have used any
+Liveblocks features within a given month, with the exception of users that only
+connect one time, as they are [always free](#first-day-free-policy). Users are
+identified by the `userId` property provided in your
+[authentication endpoint](/docs/authentication). This `userId` generally comes
+from your database or your authentication provider.
+
+One unique `userId` corresponds to one user, no matter how long they connect
+for. For example, a user that connects for 5 minutes on 2 different days is
+counted as 1 MAU, and a user that connects 8 hours a day for a month is also
+counted as 1 MAU. This applies so long as usage falls under our
+[Fair Use Policy](/docs/platform/limits/fair-use-policy).
+
+### First day free policy [#first-day-free-policy]
+
+Both plans include our first day free policy, meaning you only pay for returning
+users. In concrete terms, when a `userId` connects for the first time, they do
+not count towards your MAU limit. They are only counted when they connect to
+Liveblocks _again_ on another calendar day. For all users, days start at 00:00
+UTC and end at 23:59:59 UTC.
+
+### What’s a connection?
+
+A connection occurs when a user opens a web page containing a Liveblocks room.
+Each tab counts as one connection, which means that a user with two open tabs
+has two connections. A room is joined when using{" "}
+[`RoomProvider`](/docs/api-reference/liveblocks-react#RoomProvider) in React or
+[`enterRoom`](/docs/api-reference/liveblocks-client#Client.enterRoom) in
+JavaScript. Liveblocks connections are analogous to WebSocket connections,
+representing a realtime link to our server.
+
+### What’s a room?
+
+A room is the virtual space where people collaborate. For most products, a room
+corresponds to a document.
+
+### What’s a simultaneous connection per room?
+
+A simultaneous connection per room is when a user or multiple users are
+connected to the same Liveblocks room at the same time. Learn more about
+handling simultaneous room connection limits in our guide about
+[joining rooms at maximum capacity](/docs/guides/what-happens-when-a-user-joins-a-room-at-maximum-capacity).
+
+### What’s a simultaneous connection per project?
+
+A simultaneous connection per project is when a user or multiple users are
+connected to the same project at the same time.
+
+### How is data storage calculated?
+
+Storage for Text Editor and Sync Datastore is a cumulative calculation that
+represents all data that is currently stored. It does not reset monthly, and the
+total usage will continue to accrue over time as you add more content and data.
+You can monitor your usage at any time in the [dashboard](/dashboard).
+
+### What happens when limits are reached?
+
+Liveblocks returns a different error for each limit that a user might reach.
+That way, you can decide how to best handle those cases in your product.
+[Learn more about limits](/docs/platform/limits).
+
+### Do you count monthly active users during testing?
+
+If you connect to rooms and call the Liveblocks API during any automated
+testing, you may want to provide a static `userId` to avoid hitting limits.
+
+For example, you could do this by setting an environment variable and checking
+the process when you call `authorize` from `@liveblocks/node`.
+
+```dotenv file=".env.test"
+ TEST_USERID="machine"
+```
+
+```ts file="liveblocks.config.ts"
+export default async function auth(req, res) {
+ const room = req.body.room;
+ const response = await authorize({
+ room,
+ secret,
+ userId:
+ process.env.NODE_ENV === "test" ? process.env.TEST_USERID : "user123",
+ });
+ return res.status(response.status).end(response.body);
+}
+```
+
+### Learn more
+
+For further information regarding acceptable use of our Services, please refer
+to our [Terms of Service](/terms) or your Enterprise Service Agreement.
diff --git a/docs/pages/platform/limits/fair-use-policy.mdx b/docs/pages/platform/limits/fair-use-policy.mdx
deleted file mode 100644
index 2eccc9dc474..00000000000
--- a/docs/pages/platform/limits/fair-use-policy.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
----
-meta:
- title: "Fair Use Policy"
- parentTitle: "Limits"
- description: "Fair Use Policy for all Liveblocks plans."
----
-
-All Liveblocks subscription plans are subject to this Fair Use Policy.
-
-## Usage guidelines
-
-We have established guidelines for our community’s usage of our plans. Most
-users should fall within the specified ranges, however, if usage is excessive,
-we will notify you and work to address the issue. Our aim is to be accommodating
-while maintaining the stability of our infrastructure.
-
-### Typical usage guidelines
-
-| | Starter | Pro | Enterprise |
-| ------------------------------------ | ------------------------------------------------ | -------------------------------------------- | ---------- |
-| Monthly active users | | | Custom |
-| Projects | | | Unlimited |
-| Average connections per MAU | Up to | Up to | Custom |
-| Maximum data stored size per room | Up to | Up to | Custom |
-| Simultaneous connections per room | Up to | Up to | Custom |
-| Simultaneous connections per project | Up to | Up to | Custom |
-| Team members per account | | | Custom |
-| Monthly public key connections | | | Custom |
-
-To learn more about how monthly active users are calculated for each plan, take
-a look at the [plans](/docs/platform/plans) docs.
-
-### Other guidelines
-
-The `userId` must be used to represent a single user.
-
-### Commercial usage
-
-**Starter accounts** are restricted to non-commercial use only. All commercial
-usage of the platform requires either a Pro or Enterprise plan.
-
-Commercial usage refers to any usage of the Liveblocks platform in projects
-where financial gain is being sought by any party involved in the production,
-including paid employees or consultants.
-
-### General limits
-
-[Take a look at our limits guide](/docs/platform/limits) to learn more about the
-limits we apply to all accounts.
-
-### Learn more
-
-For further information regarding this policy and acceptable use of our
-Services, please refer to our [Terms of Service](/terms) or your Enterprise
-Service Agreement.
diff --git a/docs/pages/platform/plans.mdx b/docs/pages/platform/plans.mdx
index db33509ac3d..a37335a917c 100644
--- a/docs/pages/platform/plans.mdx
+++ b/docs/pages/platform/plans.mdx
@@ -5,228 +5,66 @@ meta:
description: "Learn about the different plans available on Liveblocks."
---
-Liveblocks offers three plans: Starter, Pro, and Enterprise. The Starter plan is
-free and includes all the features you need to get started, while the Pro and
-Enterprise plans offer higher limits, enhanced features and resources. All plans
-include our [first day free policy](#first-day-free-policy), meaning you only
-pay for returning users.
+Liveblocks offers two plans: Pro, and Enterprise. The Pro plans comes with a
+free sandbox environment, allowing you to prototype with Liveblocks before
+putting it into production. The Enterprise plan offers higher limits, enhanced
+features, and resources. Both plans include our
+[first day free policy](#first-day-free-policy), meaning you only pay for
+returning users.
-## Starter plan
+## Pro plan
-The Starter plan is **free** and designed for developers getting started with
-Liveblocks. Key features include:
+The Pro plan is designed for companies putting AI and collaboration into
+production. It allows you to purchase each of our ready-made features
+separately, meaning you only pay for what you use. Start with a single product
+and scale up as you need.
+
+- [AI Copilots](/docs/ready-made-features/ai-copilots): Easily embed advanced AI
+ chats and copilots into your product.
+- [Comments](/docs/ready-made-features/comments): Integrate pre-built commenting
+ into your app, enhancing collaboration.
+- [Notifications](/docs/ready-made-features/notifications): Add an inbox into
+ your app, updating users about unread comments and more.
+- [Multiplayer Editing](/docs/ready-made-features/multiplayer-editing): Let
+ users collaborate in realtime within text editors, custom apps, and more.
+- [Presence](/docs/ready-made-features/presence): Create live presence
+ indicators such as cursors and avatar stacks.
+
+Typical range is around **$180–$1,680 per month** depending on usage and
+features activated. The Pro plan comes with:
-- Up to monthly active users, with
- [first day free](#first-day-free-policy)
-- Up to simultaneous connections per
- room
- Pre-built components
- Realtime infrastructure
-- team members per account
-- Community support
-
-{/* This file is ignoring prettier at some points because it's splitting paragraphs in two */}
-
-### Comments
-
-{/* prettier-ignore */}
-Comments is free up to monthly active users and comments per month.
-
-| Comments | Included |
-| -------------------- | ----------------------------- |
-| Monthly active users | |
-| MAU overage rate | — |
-| Monthly comments | |
-
-### Notifications
-
-{/* prettier-ignore */}
-Notifications is free up to monthly active users and comments per month.
-
-| Notifications | Included |
-| --------------------- | ---------------------------------- |
-| Monthly active users | |
-| MAU overage rate | — |
-| Monthly notifications | |
-
-### Text Editor
-
-{/* prettier-ignore */}
-Text Editor is free up to monthly active users and data stored.
-
-| Text Editor | Included |
-| -------------------- | --------------------------------------- |
-| Monthly active users | |
-| MAU overage rate | — |
-| Total GB stored | |
-
-### Sync Datastore
-
-{/* prettier-ignore */}
-Sync Datastore is free up to monthly active users and data stored.
-
-| Sync Datastore | Included |
-| -------------------- | -------------------------------------- |
-| Monthly active users | |
-| MAU overage rate | — |
-| Total GB stored | |
-
-## Pro plan
-
-The Pro plan starts at **** and is designed for
-companies adding collaboration in production. Key features include:
-
-- Up to monthly active users, with
- [first day free](#first-day-free-policy)
-- Up to simultaneous connections per room
-- team members per account
-- More simultaneous connections
-- Products priced separately
+- SOC 2 Type 2
+- Multi-factor auth
- Email support
-### Comments
-
-{/* prettier-ignore */}
-Comments is free up to monthly active users and comments per month. You can get higher limits with a paid add-on.
-
-| Comments | Included | Paid add-on |
-| -------------------- | ----------------------------- | ------------------------- |
-| Monthly active users | | |
-| Monthly comments | | |
-
-### Notifications
-
-{/* prettier-ignore */}
-Notifications is free up to monthly active users and notifications per month. You can get higher limits with a paid add-on.
-
-| Notifications | Included | Paid add-on |
-| --------------------- | ---------------------------------- | ------------------------------ |
-| Monthly active users | | |
-| Monthly notifications | | |
-
-### Text Editor
-
-{/* prettier-ignore */}
-Text Editor is free up to monthly active users and data stored. You can get higher limits with a paid add-on.
-
-| Text Editor | Included | Paid add-on |
-| -------------------- | --------------------------------------- | ----------------------------------- |
-| Monthly active users | | |
-| Total GB stored | | |
+
-### Sync Datastore
+The Pro plan comes with a free development environment, allowing you to
+prototype with Liveblocks before putting it into production. All Liveblocks
+features are available in the sandbox environment, at a
+[lower limit](/docs/platform/limits#Sandbox-limits).
-{/* prettier-ignore */}
-Sync Datastore is free up to monthly active users and data stored. You can get higher limits with a paid add-on.
-
-| Sync Datastore | Included | Paid add-on |
-| -------------------- | -------------------------------------- | ---------------------------------- |
-| Monthly active users | | |
-| Total GB stored | | |
+
## Enterprise plan
The Enterprise plan is tailored for organizations with custom needs and advanced
-security. Key features include:
+security. In addition to all features listed above, it also includes:
-- Up to 100M monthly active users, with [first day free](#first-day-free-policy)
-- Multi-region hosting (US/EU)
- Tiered usage pricing
-- 99.9% Uptime SLA
-- SOC 2 Type 2 report
+- Volume discounts
+- Multi-region hosting
+- Multi-tenant support
+- Custom security reviews and DPA
- HIPAA compliance with BAA
-- Private Slack channel
-- Implementation support
-
-### Comments
-
-Comments can be included in the enterprise plan.
-
-| Comments | |
-| -------------------- | ------ |
-| Monthly active users | Custom |
-| Monthly comments | Custom |
-
-### Notifications
-
-Notifications can be included in the enterprise plan.
-
-| Notifications | |
-| --------------------- | ------ |
-| Monthly active users | Custom |
-| Monthly notifications | Custom |
-
-### Text Editor
-
-Text Editor can be included in the enterprise plan.
-
-| Text Editor | |
-| -------------------- | ------ |
-| Monthly active users | Custom |
-| Total GB stored | Custom |
-
-### Sync Datastore
-
-Sync Datastore can be included in the enterprise plan.
-
-| Sync Datastore | |
-| -------------------- | ------ |
-| Monthly active users | Custom |
-| Total GB stored | Custom |
-
-## General billing information
-
-### What is a monthly active user (MAU)?
-
-Monthly active users (MAU) represents the number of users that have used any
-Liveblocks features within a given month, with the exception of users that only
-connect one time, as they are [always free](#first-day-free-policy). Users are
-identified by the `userId` property provided in your
-[authentication endpoint](/docs/authentication). This `userId` generally comes
-from your database or your authentication provider.
-
-One unique `userId` corresponds to one user, no matter how long they connect
-for. For example, a user that connects for 5 minutes on 2 different days is
-counted as 1 MAU, and a user that connects 8 hours a day for a month is also
-counted as 1 MAU. This applies so long as usage falls under our
-[Fair Use Policy](/docs/platform/limits/fair-use-policy).
-
-### First day free policy [#first-day-free-policy]
-
-All plans include our first day free policy, meaning you only pay for returning
-users. In concrete terms, when a `userId` connects for the first time, they do
-not count towards your MAU limit. They are only counted when they connect to
-Liveblocks _again_ on another calendar day. For all users, days start at 00:00
-UTC and end at 23:59:59 UTC.
-
-### How is data storage calculated?
-
-Storage for Text Editor and Sync Datastore is a cumulative calculation that
-represents all data that is currently stored. It does not reset monthly, and the
-total usage will continue to accrue over time as you add more content and data.
-You can monitor your usage at any time in the [dashboard](/dashboard).
-
-### Do you count monthly active users during testing?
-
-If you connect to rooms and call the Liveblocks API during any automated
-testing, you may want to provide a static `userId` to avoid hitting limits.
-
-For example, you could do this by setting an environment variable and checking
-the process when you call `authorize` from `@liveblocks/node`.
+- SAML SSO and directory sync
+- Dedicated technical & design support
+- Support SLA
+- 99.9% Uptime SLA
-```dotenv file=".env.test"
- TEST_USERID="machine"
-```
+## Limits
-```ts file="liveblocks.config.ts"
-export default async function auth(req, res) {
- const room = req.body.room;
- const response = await authorize({
- room,
- secret,
- userId:
- process.env.NODE_ENV === "test" ? process.env.TEST_USERID : "user123",
- });
- return res.status(response.status).end(response.body);
-}
-```
+To learn more about each plan’s technical limits, visit the
+[Limits](/docs/platform/limits) page.
diff --git a/docs/routes.json b/docs/routes.json
index 29e84fb514b..4fecfb5584c 100644
--- a/docs/routes.json
+++ b/docs/routes.json
@@ -663,13 +663,7 @@
},
{
"title": "Limits",
- "path": "/platform/limits",
- "routes": [
- {
- "title": "Fair Use Policy",
- "path": "/platform/limits/fair-use-policy"
- }
- ]
+ "path": "/platform/limits"
},
{
"title": "Upgrading",