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