diff --git a/src/data/nav/platform.ts b/src/data/nav/platform.ts
index 020bb3ed24..be00228b01 100644
--- a/src/data/nav/platform.ts
+++ b/src/data/nav/platform.ts
@@ -238,7 +238,7 @@ export default {
pages: [
{
name: 'Overview',
- link: '/docs/account',
+ link: '/docs/platform/account',
index: true,
},
{
diff --git a/src/pages/docs/api/index.mdx b/src/pages/docs/api/index.mdx
index 37c6332da9..5a5282e0a1 100644
--- a/src/pages/docs/api/index.mdx
+++ b/src/pages/docs/api/index.mdx
@@ -1,11 +1,10 @@
---
title: API Reference
+intro: "This section of the documentation contains the API references for Ably."
meta_description: "API reference section of the Ably developer documentation."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, REST SDK, REST API, SSE API, Control API"
---
-This section of the documentation contains the API references for Ably.
-
The following API references are available:
* [Client library Realtime SDK](/docs/api/realtime-sdk)
diff --git a/src/pages/docs/api/realtime-sdk.mdx b/src/pages/docs/api/realtime-sdk.mdx
index 0c12de70ef..01e5f4dbce 100644
--- a/src/pages/docs/api/realtime-sdk.mdx
+++ b/src/pages/docs/api/realtime-sdk.mdx
@@ -1,5 +1,6 @@
---
title: Constructor
+intro: "The realtime interface of Ably SDKs establishes and maintains a persistent connection the Ably service. You can publish and subscribe to messages on channels over this connection."
meta_description: "Realtime Client Library SDK API reference section for the constructor object."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, constructor, instantiate"
redirect_from:
diff --git a/src/pages/docs/api/realtime-sdk/authentication.mdx b/src/pages/docs/api/realtime-sdk/authentication.mdx
index 54764aa625..d6bdd6bcd7 100644
--- a/src/pages/docs/api/realtime-sdk/authentication.mdx
+++ b/src/pages/docs/api/realtime-sdk/authentication.mdx
@@ -1,28 +1,14 @@
---
title: Authentication
+intro: "Authenticate with Ably using API keys, JWTs, or tokens."
meta_description: "Realtime Client Library SDK API reference section for authentication."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, auth, authentication, token, JWT, basic auth"
-jump_to:
- Help with:
- - Tokens#tokens
- - Auth object#auth-object
- Auth API properties:
- - clientId#client-id
- Auth API methods:
- - authorize
- - createTokenRequest#create-token-request
- - requestToken#request-token
- - revokeTokens#revoke-tokens
- Types:
- - Related Types#related-types
redirect_from:
- /docs/api/versions/v1.1/realtime-sdk/authentication
- /docs/api/versions/v1.0/realtime-sdk/authentication
- /docs/api/versions/v0.8/realtime-sdk/authentication
---
-This is the Authentication API Reference.
-
## Tokens
In the documentation, references to Ably-compatible tokens typically refer either to an Ably Token, or an [Ably JWT](#ably-jwt). For Ably Tokens, this can either be referring to the `TokenDetails` object that contain the `token` string or the token string itself. `TokenDetails` objects are obtained when [requesting an Ably Token](#request-token) from the Ably service and contain not only the `token` string in the `token` attribute, but also contain attributes describing the properties of the Ably Token. For [Ably JWT](#ably-jwt), this will be simply referring to a JWT which has been signed by an Ably private API key.
diff --git a/src/pages/docs/api/realtime-sdk/channel-metadata.mdx b/src/pages/docs/api/realtime-sdk/channel-metadata.mdx
index 21b1c418a9..a9247baf04 100644
--- a/src/pages/docs/api/realtime-sdk/channel-metadata.mdx
+++ b/src/pages/docs/api/realtime-sdk/channel-metadata.mdx
@@ -1,5 +1,6 @@
---
title: Channel Metadata
+intro: "Channel metadata provides information about the state and occupancy of channels."
meta_description: "Realtime Client Library SDK API reference section for channel metadata."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, channel, metadata, channel metadata, occupancy"
redirect_from:
diff --git a/src/pages/docs/api/realtime-sdk/channels.mdx b/src/pages/docs/api/realtime-sdk/channels.mdx
index 2160157d91..7f49debb3a 100644
--- a/src/pages/docs/api/realtime-sdk/channels.mdx
+++ b/src/pages/docs/api/realtime-sdk/channels.mdx
@@ -1,5 +1,6 @@
---
title: Channels
+intro: "Use the Channels object and Channel objects to interact with Ably channels."
meta_description: "Realtime Client Library SDK API reference section for the channels and channel objects."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, channel, channel, channels, publish, subscribe"
redirect_from:
diff --git a/src/pages/docs/api/realtime-sdk/connection.mdx b/src/pages/docs/api/realtime-sdk/connection.mdx
index 249b58eb45..2ac44af1eb 100644
--- a/src/pages/docs/api/realtime-sdk/connection.mdx
+++ b/src/pages/docs/api/realtime-sdk/connection.mdx
@@ -1,5 +1,6 @@
---
title: Connection
+intro: "Use the Connection object to manage persistent connections to the Ably service."
meta_description: "Realtime Client Library SDK API reference section for the connection object."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, connect, connection"
redirect_from:
diff --git a/src/pages/docs/api/realtime-sdk/encryption.mdx b/src/pages/docs/api/realtime-sdk/encryption.mdx
index 5868b60e90..16f5ae5ffd 100644
--- a/src/pages/docs/api/realtime-sdk/encryption.mdx
+++ b/src/pages/docs/api/realtime-sdk/encryption.mdx
@@ -1,14 +1,8 @@
---
title: Encryption
+intro: "Use the Crypto object to encrypt and decrypt messages."
meta_description: "Realtime Client Library SDK API reference section for the crypto object."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, encryption, crypto"
-jump_to:
- API Reference:
- - getDefaultParams#get-default-params
- - generateRandomKey#generate-random-key
- Related types:
- - Channel Options
- - CipherParams#cipher-params
redirect_from:
- /docs/api/versions/v1.1/realtime-sdk/encryption
- /docs/api/versions/v1.0/realtime-sdk/encryption
diff --git a/src/pages/docs/api/realtime-sdk/history.mdx b/src/pages/docs/api/realtime-sdk/history.mdx
index c306dc3303..ae7ca5e4ad 100644
--- a/src/pages/docs/api/realtime-sdk/history.mdx
+++ b/src/pages/docs/api/realtime-sdk/history.mdx
@@ -1,13 +1,8 @@
---
title: History
+intro: "Use the history method to retrieve previously sent messages and presence events from a channel."
meta_description: "Realtime Client Library SDK API reference section for the history methods."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, history, message, presence"
-jump_to:
- API reference:
- - Message history#channel-history
- - Presence history#presence-history
- Types:
- - Related Types#related-types
redirect_from:
- /docs/api/versions/v1.1/realtime-sdk/history
- /docs/api/versions/v1.0/realtime-sdk/history
diff --git a/src/pages/docs/api/realtime-sdk/messages.mdx b/src/pages/docs/api/realtime-sdk/messages.mdx
index 7118cd20df..b080e30494 100644
--- a/src/pages/docs/api/realtime-sdk/messages.mdx
+++ b/src/pages/docs/api/realtime-sdk/messages.mdx
@@ -1,5 +1,6 @@
---
title: Messages
+intro: "A Message represents an individual message that is sent to or received from Ably."
meta_description: "Realtime Client Library SDK API reference section for the message object."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, message, messages"
redirect_from:
@@ -10,8 +11,6 @@ redirect_from:
## PropertiesAttributesMembers
-A `Message` represents an individual message that is sent to or received from Ably.
-
### nameName
The event name, if provided. _Type: `String`_
diff --git a/src/pages/docs/api/realtime-sdk/presence.mdx b/src/pages/docs/api/realtime-sdk/presence.mdx
index 5e04e9ac8f..e748da9b2c 100644
--- a/src/pages/docs/api/realtime-sdk/presence.mdx
+++ b/src/pages/docs/api/realtime-sdk/presence.mdx
@@ -1,23 +1,8 @@
---
title: Presence
+intro: "Use the Presence object to manage and interact with presence on Ably channels."
meta_description: "Realtime Client Library SDK API reference section for the presence object."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, presence"
-jump_to:
- Presence API properties:
- - syncComplete#sync-complete
- Presence API methods:
- - enter
- - leave
- - update
- - get
- - history
- - subscribe
- - unsubscribe
- - enterClient#enter-client
- - leaveClient#leave-client
- - updateClient#update-client
- Types:
- - Related Types#related-types
redirect_from:
- /docs/api/versions/v1.1/realtime-sdk/presence
- /docs/api/versions/v1.0/realtime-sdk/presence
diff --git a/src/pages/docs/api/realtime-sdk/push-admin.mdx b/src/pages/docs/api/realtime-sdk/push-admin.mdx
index 53b8b171dd..3e863ea29c 100644
--- a/src/pages/docs/api/realtime-sdk/push-admin.mdx
+++ b/src/pages/docs/api/realtime-sdk/push-admin.mdx
@@ -1,14 +1,8 @@
---
title: Push Notifications - Admin
+intro: "Use the Push.Admin object to manage push notifications, including device registrations and channel subscriptions."
meta_description: "Realtime Client Library SDK API reference section for push notifications admin."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, push, push notification, notification, push notifications, notifications, admin, push admin"
-jump_to:
- API reference:
- - publish#publish
- - DeviceRegistrations#device-registrations-object
- - PushChannelSubscriptions#push-channel-subscriptions
- Types:
- - Related Types#related-types
redirect_from:
- /docs/api/versions/v1.1/realtime-sdk/push-admin
---
diff --git a/src/pages/docs/api/realtime-sdk/push.mdx b/src/pages/docs/api/realtime-sdk/push.mdx
index 89196da0e7..2f81ab6b82 100644
--- a/src/pages/docs/api/realtime-sdk/push.mdx
+++ b/src/pages/docs/api/realtime-sdk/push.mdx
@@ -1,13 +1,8 @@
---
title: Push Notifications - Device Activation and Subscription
+intro: "Use the Push object to activate push notification devices and manage push channel subscriptions."
meta_description: "Realtime Client Library SDK API reference section for push notification device subscription."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, push, push notification, notification, push notifications, notifications, device subscription, activate device"
-jump_to:
- API reference:
- - activate#activate
- - deactivate#deactivate
- Types:
- - Related Types#related-types
redirect_from:
- /docs/api/versions/v1.1/realtime-sdk/push
---
diff --git a/src/pages/docs/api/realtime-sdk/statistics.mdx b/src/pages/docs/api/realtime-sdk/statistics.mdx
index 13767ea322..37e3add120 100644
--- a/src/pages/docs/api/realtime-sdk/statistics.mdx
+++ b/src/pages/docs/api/realtime-sdk/statistics.mdx
@@ -1,5 +1,6 @@
---
title: Statistics
+intro: "Use the stats method to retrieve your application's usage statistics."
meta_description: "Realtime Client Library SDK API reference section for the stats object."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, stats, statistics"
redirect_from:
diff --git a/src/pages/docs/api/realtime-sdk/types.mdx b/src/pages/docs/api/realtime-sdk/types.mdx
index d588159d4e..74ca5b67b6 100644
--- a/src/pages/docs/api/realtime-sdk/types.mdx
+++ b/src/pages/docs/api/realtime-sdk/types.mdx
@@ -1,5 +1,6 @@
---
title: Types
+intro: "Ably SDKs define both data types and option types. Data types are used to represent object such as messages. Option types are used in method arguments."
meta_description: "Realtime Client Library SDK API reference section for types."
meta_keywords: "Ably, Ably realtime, API Reference, Realtime SDK, types, objects, options"
redirect_from:
@@ -12,9 +13,7 @@ redirect_from:
- /docs/realtime/versions/v0.8/types
---
-The Ably client library defines both data types and option types. Data types are used to represent object such as messages. Option types are used in method arguments.
-
-Where client libraries support both Realtime and REST APIs, the types are shared between both clients.
+Where SDKs support both Realtime and REST interfaces, types are shared between both clients.
All types are always classes or their respective equivalent for each language implementation. Options on the other hand, may often support both typed option classes or more flexible key value objects such as a Hash or plain JavaScript object.
diff --git a/src/pages/docs/api/rest-api.mdx b/src/pages/docs/api/rest-api.mdx
index 455091a272..7aa7f8f92c 100644
--- a/src/pages/docs/api/rest-api.mdx
+++ b/src/pages/docs/api/rest-api.mdx
@@ -1,47 +1,8 @@
---
title: REST API Reference
+intro: "The Ably REST API provides a way for a wide range of server and client devices to communicate with the Ably service over REST."
meta_description: "Ably provides the raw REST API for situations where an Ably client library SDK is not available on the platform of choice, or due to resource constraints."
meta_keywords: "REST API, REST, protocol, resource constraints"
-jump_to:
- Intro:
- - Common API behavior#common
- Authentication:
- - Authentication
- - Basic Authentication
- - Token Authentication
- Channel API:
- - publish
- - message history#message-history
- - get message#get-message
- - update message#update-message
- - delete message#delete-message
- - message versions#message-versions
- - presence
- - presence history
- Push API:
- - register device#post-device-registration
- - update a device registration#update-device-registration
- - get registered device#get-device-registration
- - list registered devices#list-device-registrations
- - reset a device's update token#reset-update-token
- - unregister device#delete-device-registration
- - unregister devices#delete-device-registrations
- - subscribe to a channel#post-channel-subscription
- - unsubscribe from channels#delete-channel-subscription
- - list channel subscriptions#list-channel-subscriptions
- - list channels#list-channels
- - publish directly to device#push-publish
- - publish via batch push API#push-publish-batch
- Authentication API:
- - requestToken#request-token
- - revokeTokens#revoke-tokens
- Application API:
- - stats
- Batch API:
- - batch publish#batch-publish
- - batch presence#batch-presence
- Utilities API:
- - time
redirect_from:
- /docs/api/versions/v1.1/rest-api
- /docs/api/versions/v1.0/rest-api
@@ -54,9 +15,7 @@ redirect_from:
- /docs/rest-api/versions/v1.1/beta
---
-Welcome to the Ably REST API Reference documentation.
-
-The Ably REST API provides a way for a wide range of server and client devices to communicate with the Ably service over [REST](https://en.wikipedia.org/wiki/Representational_State_Transfer). The REST API does not provide a realtime long-lived connection to Ably, but in all other respects is a simple subset of the full [realtime messaging API](/docs/api/realtime-sdk).
+The REST API does not provide a realtime long-lived connection to Ably, but in all other respects is a simple subset of the full [realtime messaging API](/docs/api/realtime-sdk).
The primary use-case for the REST API is for servers that are part of the back-end of an application such as a web application, that publish messages, issue access tokens (temporary and client-specific) for its various clients, obtain message and presence history, and retrieve statistics.
diff --git a/src/pages/docs/api/rest-sdk.mdx b/src/pages/docs/api/rest-sdk.mdx
index 0967d0235c..550d2a48f1 100644
--- a/src/pages/docs/api/rest-sdk.mdx
+++ b/src/pages/docs/api/rest-sdk.mdx
@@ -1,5 +1,6 @@
---
title: Constructor
+intro: "The REST interface of Ably SDKS provides a simple way to interact with the Ably service over standard HTTP methods. You can publish and retrieve messages, but you cannot subscribe to them."
meta_description: "Client Library SDK REST API Reference constructor documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, constructor"
redirect_from:
diff --git a/src/pages/docs/api/rest-sdk/authentication.mdx b/src/pages/docs/api/rest-sdk/authentication.mdx
index 97023b4331..62bbe031b7 100644
--- a/src/pages/docs/api/rest-sdk/authentication.mdx
+++ b/src/pages/docs/api/rest-sdk/authentication.mdx
@@ -1,20 +1,8 @@
---
title: Authentication
+intro: "Authenticate with Ably using API keys, JWTs, or tokens."
meta_description: "Client Library SDK REST API Reference Authentication documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, Authentication"
-jump_to:
- Help with:
- - Tokens#tokens
- - Auth object#auth-object
- Auth API properties:
- - clientId#client-id
- Auth API methods:
- - authorize
- - createTokenRequest#create-token-request
- - requestToken#request-token
- - revokeTokens#revoke-tokens
- Types:
- - Related Types#related-types
redirect_from:
- /docs/api/versions/v1.1/rest-sdk/authentication
- /docs/api/versions/v1.0/rest-sdk/authentication
diff --git a/src/pages/docs/api/rest-sdk/channel-status.mdx b/src/pages/docs/api/rest-sdk/channel-status.mdx
index e085e623b7..f91cbb7c29 100644
--- a/src/pages/docs/api/rest-sdk/channel-status.mdx
+++ b/src/pages/docs/api/rest-sdk/channel-status.mdx
@@ -1,14 +1,8 @@
---
title: Channel Status
+intro: "Channel status provides information about the state and occupancy of channels."
meta_description: "Client Library SDK REST API Reference Channel Status documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, Channel Status"
-section: api
-index: 30
-jump_to:
- Channel API Types:
- - ChannelDetails#channel-details
- - ChannelStatus#channel-status
- - Occupancy#occupancy
redirect_from:
- /docs/api/versions/v1.1/rest-sdk/channel-status
- /docs/api/versions/v1.0/rest-sdk/channel-status
diff --git a/src/pages/docs/api/rest-sdk/channels.mdx b/src/pages/docs/api/rest-sdk/channels.mdx
index f57747d395..baa82b4ef5 100644
--- a/src/pages/docs/api/rest-sdk/channels.mdx
+++ b/src/pages/docs/api/rest-sdk/channels.mdx
@@ -1,5 +1,6 @@
---
title: Channels
+intro: "The Channels object and Channel objects are used to interact with Ably channels."
meta_description: "Client Library SDK REST API Reference Channels documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, Channels"
redirect_from:
diff --git a/src/pages/docs/api/rest-sdk/encryption.mdx b/src/pages/docs/api/rest-sdk/encryption.mdx
index 98898c9828..b30e6f3ccc 100644
--- a/src/pages/docs/api/rest-sdk/encryption.mdx
+++ b/src/pages/docs/api/rest-sdk/encryption.mdx
@@ -1,14 +1,8 @@
---
title: Encryption
+intro: "Use the Crypto object to encrypt and decrypt messages."
meta_description: "Client Library SDK REST API Reference Crypto documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, Encryption, Crypto"
-jump_to:
- API Reference:
- - getDefaultParams#get-default-params
- - generateRandomKey#generate-random-key
- Related types:
- - Channel Options
- - CipherParams#cipher-params
redirect_from:
- /docs/api/versions/v1.1/rest-sdk/encryption
- /docs/api/versions/v1.0/rest-sdk/encryption
diff --git a/src/pages/docs/api/rest-sdk/history.mdx b/src/pages/docs/api/rest-sdk/history.mdx
index 5fc8773130..0b8fcaba9a 100644
--- a/src/pages/docs/api/rest-sdk/history.mdx
+++ b/src/pages/docs/api/rest-sdk/history.mdx
@@ -1,13 +1,8 @@
---
title: History
+intro: "Use the history method to retrieve previously sent messages and presence events from a channel."
meta_description: "Client Library SDK REST API Reference History documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, History"
-jump_to:
- API reference:
- - Message history#channel-history
- - Presence history#presence-history
- Types:
- - Related Types#related-types
redirect_from:
- /docs/api/versions/v1.1/rest-sdk/history
- /docs/api/versions/v1.0/rest-sdk/history
diff --git a/src/pages/docs/api/rest-sdk/messages.mdx b/src/pages/docs/api/rest-sdk/messages.mdx
index 3312386224..e14c7ed46e 100644
--- a/src/pages/docs/api/rest-sdk/messages.mdx
+++ b/src/pages/docs/api/rest-sdk/messages.mdx
@@ -1,5 +1,6 @@
---
title: Messages
+intro: "A Message represents an individual message that is sent to or received from Ably."
meta_description: "Client Library SDK REST API Reference Message documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, Message"
redirect_from:
@@ -8,8 +9,6 @@ redirect_from:
- /docs/api/versions/v0.8/rest-sdk/messages
---
-A `Message` represents an individual message that is sent to or received from Ably.
-
### name
The event name, if provided. _Type: `String`_
diff --git a/src/pages/docs/api/rest-sdk/presence.mdx b/src/pages/docs/api/rest-sdk/presence.mdx
index 27114807d3..1ad182c8d4 100644
--- a/src/pages/docs/api/rest-sdk/presence.mdx
+++ b/src/pages/docs/api/rest-sdk/presence.mdx
@@ -1,13 +1,8 @@
---
title: Presence
+intro: "Use the Presence object to retrieve information about the presence set of on Ably channel."
meta_description: "Presence events provide clients with information about the status of other clients 'present' on a channel"
meta_keywords: "Ably, presence, presence events, channel members, presence history."
-jump_to:
- Presence API reference:
- - get
- - history
- Types:
- - Related Types#related-types
redirect_from:
- /docs/api/versions/v1.1/rest-sdk/presence
- /docs/api/versions/v1.0/rest-sdk/presence
diff --git a/src/pages/docs/api/rest-sdk/push-admin.mdx b/src/pages/docs/api/rest-sdk/push-admin.mdx
index 097fb57e21..c20bbfa0b1 100644
--- a/src/pages/docs/api/rest-sdk/push-admin.mdx
+++ b/src/pages/docs/api/rest-sdk/push-admin.mdx
@@ -1,15 +1,8 @@
---
title: Push Notifications - Admin
+intro: "Use the Push.Admin object to manage push notifications, including device registrations and channel subscriptions."
meta_description: "Client Library SDK REST API Reference Push documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, Push"
-jump_to:
- Push Admin API properties:
- - deviceRegistrations#device-registrations
- - channelSubscriptions#channel-subscriptions
- Push Admin API methods:
- - publish
- Types:
- - Related Types#related-types
redirect_from:
- /docs/api/rest-sdk/push
- /docs/api/versions/v1.1/rest-sdk/push-admin
diff --git a/src/pages/docs/api/rest-sdk/statistics.mdx b/src/pages/docs/api/rest-sdk/statistics.mdx
index 31379c5c57..5e0b64582a 100644
--- a/src/pages/docs/api/rest-sdk/statistics.mdx
+++ b/src/pages/docs/api/rest-sdk/statistics.mdx
@@ -1,5 +1,6 @@
---
title: Statistics
+intro: "Use the stats method to retrieve your application's usage statistics."
meta_description: "Client Library SDK REST API Reference Statistics documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, Statistics"
redirect_from:
diff --git a/src/pages/docs/api/rest-sdk/types.mdx b/src/pages/docs/api/rest-sdk/types.mdx
index 0f7a7b0e5d..5ba37ea3bf 100644
--- a/src/pages/docs/api/rest-sdk/types.mdx
+++ b/src/pages/docs/api/rest-sdk/types.mdx
@@ -1,5 +1,6 @@
---
title: Types
+intro: "Ably SDKs define both data types and option types. Data types are used to represent object such as messages. Option types are used in method arguments."
meta_description: "Client Library SDK REST API Reference Types documentation."
meta_keywords: "Ably, Ably REST, API Reference, REST SDK, REST interface, REST API, Types"
redirect_from:
@@ -9,9 +10,7 @@ redirect_from:
- /docs/rest/types
---
-The Ably REST client library defines both data types and option types. Data types are used to represent object such as messages; Option types are used in method arguments.
-
-Where client libraries support both Realtime and REST APIs, the types are shared between both clients.
+Where SDKs support both Realtime and REST interfaces, types are shared between both clients.
All types are always classes or their respective equivalent for each language implementation. Options on the other hand, may often support both typed option classes or more flexible key value objects such as a Hash or plain JavaScript object.
diff --git a/src/pages/docs/api/sse.mdx b/src/pages/docs/api/sse.mdx
index 7ab31c7bb3..b5ed141f3c 100644
--- a/src/pages/docs/api/sse.mdx
+++ b/src/pages/docs/api/sse.mdx
@@ -1,11 +1,8 @@
---
title: SSE and Raw HTTP Streaming API
+intro: "Use Server-Sent Events (SSE) to stream messages from Ably to browser clients that don't need the support or resources of a full Ably SDK."
meta_description: "Ably provides support for Server-Sent Events (SSE). This is useful for where browser clients support SSE, and the use case does not require or support the resources used by the Ably client library SDK."
meta_keywords: "Server-Sent Events, SSE, browser clients"
-jump_to:
- API Routes:
- - Server-sent events#sse
- - Plain event stream#event-stream
redirect_from:
- /docs/api/versions/v1.1/sse
---
diff --git a/src/pages/docs/auth/basic.mdx b/src/pages/docs/auth/basic.mdx
index 285977d8ae..27cba2e2ff 100644
--- a/src/pages/docs/auth/basic.mdx
+++ b/src/pages/docs/auth/basic.mdx
@@ -1,13 +1,10 @@
---
title: Basic auth
+intro: "Basic authentication is the simplest way to authenticate with Ably."
meta_description: "Basic authentication allows you to authenticate a secure server using an Ably API key and secret."
---
-Basic authentication is the simplest way to authenticate with Ably. It requires passing an [API key](/docs/auth#api-key) when instancing an SDK.
-
-
+Basic authentication requires you to pass an [API key](/docs/auth#api-key) when instancing an SDK.
The following is an example of using basic authentication:
@@ -111,6 +108,10 @@ $rest = new Ably\AblyRest(['key' => '{{API_KEY}}']);
```
+
+
## Basic auth architecture
The process used by Ably SDKs to authenticate with Ably using basic authentication is illustrated in the following diagram:
diff --git a/src/pages/docs/auth/capabilities.mdx b/src/pages/docs/auth/capabilities.mdx
index 34a9d2f663..0ebdfbb24d 100644
--- a/src/pages/docs/auth/capabilities.mdx
+++ b/src/pages/docs/auth/capabilities.mdx
@@ -1,10 +1,9 @@
---
title: Capabilities
+intro: "API keys and Ably-compatible tokens, have a set of capabilities assigned to them that specify which operations (such as subscribe or publish) can be performed on which channels."
meta_description: "Capabilities define which operations can be carried out on which channels by a client."
---
-API keys and Ably-compatible tokens, have a set of capabilities assigned to them that specify which operations (such as subscribe or publish) can be performed on which channels.
-
API keys are long-lived, secret and typically not shared with clients. API key capabilities are configured using the [dashboard](https://ably.com/dashboard), or using the [Control API](/docs/platform/account/control-api).
Ably-compatible tokens are designed to be shared with untrusted clients, are short-lived, and can be configured and issued programmatically. For restricting client access to channels, tokens provide far more flexibility and security than API key capabilities. See [selecting an authentication mechanism](/docs/auth#selecting-auth) to understand why token authentication is the preferred option in most scenarios.
diff --git a/src/pages/docs/auth/identified-clients.mdx b/src/pages/docs/auth/identified-clients.mdx
index e4754fa566..26d7d7f16f 100644
--- a/src/pages/docs/auth/identified-clients.mdx
+++ b/src/pages/docs/auth/identified-clients.mdx
@@ -1,9 +1,10 @@
---
title: Identified clients
+intro: "When a client is authenticated and connected to Ably, it is considered to be an authenticated client."
meta_description: "Clients can be allocated a client ID to help control their operations and interactions with Ably channels."
---
-When a client is authenticated and connected to Ably, it is considered to be an authenticated client. While an authenticated client has a means to authenticate with Ably, they do not necessarily have an identity.
+While an authenticated client has a means to authenticate with Ably, they do not necessarily have an identity.
When a client is assigned a trusted identity, that is, a `clientId`, then they are considered to be an identified client. For all operations that client performs with the Ably service, their `clientId` field will be automatically populated and can be trusted by other clients.
diff --git a/src/pages/docs/auth/index.mdx b/src/pages/docs/auth/index.mdx
index 51949e95e5..faa08dbaae 100644
--- a/src/pages/docs/auth/index.mdx
+++ b/src/pages/docs/auth/index.mdx
@@ -1,5 +1,6 @@
---
title: Authentication overview
+intro: "Before a client or server can issue requests to Ably, such as subscribe to channels, or publish messages, it must authenticate with Ably. Authentication requires an Ably API key."
meta_description: "Ably supports two main authentication schemes: basic authentication and token authentication. Token authentication can be implemented using JWTs, Ably tokens, and Ably token requests."
redirect_from:
- /docs/rest/authentication
@@ -20,8 +21,6 @@ redirect_from:
- /docs/ids-and-keys
---
-Before a client or server can issue requests to Ably, such as subscribe to channels, or publish messages, it must authenticate with Ably. Authentication requires an Ably API key.
-
## Authentication terminology
The following terminology helps explain authentication, authorization, and identification in the context of the Ably service:
diff --git a/src/pages/docs/auth/revocation.mdx b/src/pages/docs/auth/revocation.mdx
index dad67730ee..6330be6dd0 100644
--- a/src/pages/docs/auth/revocation.mdx
+++ b/src/pages/docs/auth/revocation.mdx
@@ -1,9 +1,10 @@
---
title: Token revocation
+intro: "Token revocation is a mechanism that enables an app to invalidate authentication tokens."
meta_description: "Token revocation is a mechanism that enables an app to invalidate authentication tokens."
---
-Token revocation is a mechanism that enables an app to invalidate authentication tokens. This invalidation can be used to force specified clients to re-obtain a token, and subsequently enables the app to modify the rights granted to clients, or to decline to re-issue a token. Token revocation can be enforced immediately or postponed by 30 seconds, allowing the client the opportunity to request a new token (see `allowReauthMargin` under [Revoke a token](#revoke)). By default `allowReauthMargin` is set to false, meaning token revocation is near immediate. Setting this value to true would postpone the revocation by 30 seconds.
+Authentication token invalidation can be used to force specified clients to re-obtain a token, and subsequently enables the app to modify the rights granted to clients, or to decline to re-issue a token. Token revocation can be enforced immediately or postponed by 30 seconds, allowing the client the opportunity to request a new token (see `allowReauthMargin` under [Revoke a token](#revoke)). By default `allowReauthMargin` is set to false, meaning token revocation is near immediate. Setting this value to true would postpone the revocation by 30 seconds.
The main use case of token revocation is as a method to combat malicious clients. In cases where the client behaves safely, you don't need token revocation - your code can instruct the connection to Ably to close, or detach from a channel it shouldn't have access to. But if you want to prevent any chance of a user obtaining the token before it is disconnected, and using it in their own custom client to gain access to Ably, then token revocation can be used.
diff --git a/src/pages/docs/auth/token.mdx b/src/pages/docs/auth/token.mdx
index 912d469dfe..37d4c967ac 100644
--- a/src/pages/docs/auth/token.mdx
+++ b/src/pages/docs/auth/token.mdx
@@ -1,9 +1,10 @@
---
title: "Token auth"
+intro: "Token authentication uses a trusted device with an API key to issue time-limited tokens to untrusted clients."
meta_description: "Token authentication allows clients to authenticate with Ably, without exposing the Ably API key and secret."
---
-Token authentication uses a trusted device with an [API key](/docs/auth#api-key) to issue time-limited tokens to untrusted clients. Tokens have a limited set of access rights, known as [capabilities](/docs/auth/capabilities), and can have a specific [identity](/docs/auth/identified-clients) using a `clientId`.
+Tokens have a limited set of access rights, known as [capabilities](/docs/auth/capabilities), and can have a specific [identity](/docs/auth/identified-clients) using a `clientId`.
Token authentication is the recommended authentication method to use client-side as it provides more fine-grained access control and limits the risk of credentials being exposed.
diff --git a/src/pages/docs/basics/index.mdx b/src/pages/docs/basics/index.mdx
index 7700fb73cd..3f3f38e546 100644
--- a/src/pages/docs/basics/index.mdx
+++ b/src/pages/docs/basics/index.mdx
@@ -1,5 +1,6 @@
---
title: About Pub/Sub
+intro: "Ably Pub/Sub is Ably's core product. Its flexible APIs are powerful building blocks that you can use to create any realtime experience with."
meta_description: "Learn more about what Ably Pub/Sub is and how you can use it to build powerful realtime applications."
redirect_from:
- /docs/products/channels
@@ -15,8 +16,6 @@ redirect_from:
- /docs/realtime/versions/v0.8
---
-Ably Pub/Sub is Ably's core product. It's flexible APIs are powerful building blocks that you can use to create any realtime experience with.
-
## Features
The following features are some of the basics that you need to develop realtime applications:
diff --git a/src/pages/docs/channels/index.mdx b/src/pages/docs/channels/index.mdx
index 908607717f..a8dc7d666c 100644
--- a/src/pages/docs/channels/index.mdx
+++ b/src/pages/docs/channels/index.mdx
@@ -1,5 +1,6 @@
---
title: Channel concepts
+intro: "Channels are used to separate messages into different topics."
meta_description: "Channels are used to organize message traffic within Ably."
redirect_from:
- /docs/rest/channels
@@ -26,7 +27,7 @@ redirect_from:
- /docs/general/versions/v0.8/channel-rules-namespaces
---
-Channels are used to separate messages into different topics. They are the building block of creating a realtime application using the publish-subscribe pattern. Channels are also the unit of security and scalability. Clients should only ever be provided the [capabilities](/docs/auth/capabilities) for channels that they should have access to.
+Channels are the building block of creating a realtime application using the publish-subscribe pattern. Channels are also the unit of security and scalability. Clients should only ever be provided the [capabilities](/docs/auth/capabilities) for channels that they should have access to.
[Messages](/docs/channels/messages) contain the data that a client is communicating, such as the contents of an individual chat message, or an event that has occurred, such as updated financial information.
diff --git a/src/pages/docs/channels/options/deltas.mdx b/src/pages/docs/channels/options/deltas.mdx
index 7e6ef52956..b6bdbdf55d 100644
--- a/src/pages/docs/channels/options/deltas.mdx
+++ b/src/pages/docs/channels/options/deltas.mdx
@@ -1,13 +1,12 @@
---
title: Deltas
+intro: "The delta channel option enables delta compression."
meta_description: "The delta channel option enables clients to subscribe to a channel and only receive the difference between the present and previous message."
redirect_from:
- /docs/realtime/channels/channel-parameters/deltas
---
-The `delta` channel option enables delta compression. It is applied on the channel you are subscribing to, enabling delta mode.
-
-Delta mode is a way for a client to subscribe to a channel so that message payloads sent contain only the difference between the present message and the previous message sent on the channel.
+Delta compression is a way for a client to subscribe to a channel so that message payloads sent contain only the difference between the present message and the previous message sent on the channel.
As `delta` only applies to channel subscriptions, it is only available when using the realtime interface of an Ably SDK, or when using [SSE](/docs/protocols/sse) or [MQTT](/docs/protocols/mqtt).
diff --git a/src/pages/docs/channels/options/encryption.mdx b/src/pages/docs/channels/options/encryption.mdx
index 554150a58d..5516629303 100644
--- a/src/pages/docs/channels/options/encryption.mdx
+++ b/src/pages/docs/channels/options/encryption.mdx
@@ -1,6 +1,7 @@
---
title: Encryption
-meta_description: "Encrypt message payloads using the cipher channel option."
+intro: "Transport Layer Security (TLS) is enabled by default in Ably SDKs so that data is securely sent to, and received from, Ably."
+meta_description: "Encrypt message payloads using the cipher channel option. However, messages are not encrypted within the Ably system. Use the encryption channel option to ensure that message payloads are opaque, that they can't be decrypted by Ably, and can only be decrypted by other clients that share your secret key."
redirect_from:
- /docs/rest/encryption
- /docs/rest/versions/v1.1/encryption
@@ -12,8 +13,6 @@ redirect_from:
- /docs/realtime/versions/v0.8/encryption
---
-[Transport Layer Security (TLS)](https://en.wikipedia.org/wiki/Transport_Layer_Security) is enabled by default in Ably SDKs so that data is securely sent to, and received from, Ably. However, messages are not encrypted within the Ably system. Use the encryption channel option to ensure that message payloads are opaque, that they can't be decrypted by Ably, and can only be decrypted by other clients that share your secret key.
-
## TLS transport security
All Ably client libraries use TLS by default when communicating with Ably over REST or via realtime transports such as WebSockets. This provides a secure transport for communication with Ably, ensuring that messages in transit cannot be intercepted, inspected, or tampered with.
diff --git a/src/pages/docs/channels/options/index.mdx b/src/pages/docs/channels/options/index.mdx
index 7f08fe1c02..3356c46570 100644
--- a/src/pages/docs/channels/options/index.mdx
+++ b/src/pages/docs/channels/options/index.mdx
@@ -1,5 +1,6 @@
---
title: Channel options overview
+intro: "Channel options can be used to customize the functionality of channels."
meta_description: "Channel options customize the functionality of channels."
redirect_from:
- /docs/realtime/channels/channel-parameters/overview
@@ -7,7 +8,7 @@ redirect_from:
- /docs/realtime/versions/v1.1/channel-params
---
-Channel options can be used to customize the functionality of channels. This includes enabling features such as [encryption](/docs/channels/options/encryption) and [deltas](/docs/channels/options/deltas), or for a client to retrieve messages published prior to it attaching to a channel using [rewind](/docs/channels/options/rewind).
+Channel options enable features such as [encryption](/docs/channels/options/encryption) and [deltas](/docs/channels/options/deltas), or for a client to retrieve messages published prior to it attaching to a channel using [rewind](/docs/channels/options/rewind).
Channel options are set under the following properties:
diff --git a/src/pages/docs/channels/options/rewind.mdx b/src/pages/docs/channels/options/rewind.mdx
index 91f4326318..46b0debc1c 100644
--- a/src/pages/docs/channels/options/rewind.mdx
+++ b/src/pages/docs/channels/options/rewind.mdx
@@ -1,11 +1,12 @@
---
title: Rewind
+intro: "The rewind channel option enables a client to specify where to start an attachment from, when attaching to a channel."
meta_description: "The rewind channel option enables clients to attach to a channel and receive messages previously published on it."
redirect_from:
- /docs/realtime/channels/channel-parameters/rewind
---
-The `rewind` channel option enables a client to specify where to start an attachment from, when attaching to a channel. Rewind can provide context to clients attaching to a channel by passing them previously published messages, such as in the example of a joining a chat room.
+Rewind can provide context to clients attaching to a channel by passing them previously published messages, such as in the example of a joining a chat room.
Clients can rewind to a point in time in the past, or for a given number of messages.
diff --git a/src/pages/docs/channels/states.mdx b/src/pages/docs/channels/states.mdx
index aa16f0f15e..318abf4ef2 100644
--- a/src/pages/docs/channels/states.mdx
+++ b/src/pages/docs/channels/states.mdx
@@ -1,10 +1,9 @@
---
title: Channel states
+intro: "Channels transition through multiple states throughout their lifecycle. Understanding under which conditions the state of a channel changes, and managing those changes, is important to ensure that your applications behave as expected."
meta_description: "Channels transition through multiple states."
---
-Channels transition through multiple states throughout their lifecycle. Understanding under which conditions the state of a channel changes, and managing those changes, is important to ensure that your applications behave as expected.
-
## States
A channel can exist in any of the following states:
diff --git a/src/pages/docs/chat/api/index.mdx b/src/pages/docs/chat/api/index.mdx
index 72130d85b7..5b0cfe2e1c 100644
--- a/src/pages/docs/chat/api/index.mdx
+++ b/src/pages/docs/chat/api/index.mdx
@@ -1,11 +1,10 @@
---
title: Ably Chat API Reference
+intro: "This section of the documentation contains the API references for Ably Chat."
meta_description: "API reference section of the Ably Chat developer documentation."
meta_keywords: "Ably, API Reference, Chat SDK, Ably Chat, Chat REST API"
---
-This section of the documentation contains the API references for Ably Chat.
-
## Chat SDKs
The following API references are available. They are automatically generated from source code:
diff --git a/src/pages/docs/chat/connect.mdx b/src/pages/docs/chat/connect.mdx
index 14739608ce..b7a1bf24b8 100644
--- a/src/pages/docs/chat/connect.mdx
+++ b/src/pages/docs/chat/connect.mdx
@@ -1,12 +1,13 @@
---
title: Connections
+intro: "When you instantiate a client, a realtime connection is established and maintained with Ably."
meta_description: "Manage the realtime connections to Ably."
---
-When you [instantiate](/docs/chat/setup#instantiate) a client, a realtime connection is established and maintained with Ably. You can interact with the connection using the `ChatClient.connection` object in order to monitor a client's connection status.
-
## Connection statuses
+You can interact with the connection using the `ChatClient.connection` object in order to monitor a client's connection status.
+
A connection can have any of the following statuses:
| Status | Description |
diff --git a/src/pages/docs/chat/getting-started/android.mdx b/src/pages/docs/chat/getting-started/android.mdx
index 7a63016ceb..3c908e2c8b 100644
--- a/src/pages/docs/chat/getting-started/android.mdx
+++ b/src/pages/docs/chat/getting-started/android.mdx
@@ -1,11 +1,10 @@
---
title: "Getting started: Chat with Android"
+intro: "This guide will help you get started with Ably Chat in a new Android Kotlin application built with Jetpack Compose."
meta_description: "A getting started guide for Ably Chat Android that steps through some of the key features using Jetpack Compose."
meta_keywords: "Ably, realtime, quickstart, getting started, basics, Chat, Android, Kotlin, Jetpack Compose"
---
-This guide will help you get started with Ably Chat in a new Android Kotlin application built with Jetpack Compose.
-
You'll learn how to create chat rooms, send and edit messages, and implement realtime features like typing indicators and presence. You'll also cover message history, reactions, and proper connection management.

diff --git a/src/pages/docs/chat/getting-started/index.mdx b/src/pages/docs/chat/getting-started/index.mdx
index db97eb8d84..0a9db08b73 100644
--- a/src/pages/docs/chat/getting-started/index.mdx
+++ b/src/pages/docs/chat/getting-started/index.mdx
@@ -1,11 +1,10 @@
---
title: "Getting started with Chat"
+intro: "Getting started with Ably Chat by choosing your language or framework."
meta_description: "Getting started with Ably Chat in your language or framework of choice. Learn how to send and receive messages, track online presence, fetch message history, implement typing indicators, among other features."
meta_keywords: "Chat, Ably Chat SDKs, realtime messaging, send and receive messages, getting started guides, realtime communication, Ably tutorial, message history, presence and occupancy APIs, Ably CLI Chat"
---
-Getting started with Ably Chat by choosing your language or framework.
-
You'll learn the essentials of building realtime chat applications, including how to create and manage chat rooms, send and edit messages, implement typing indicators, track user presence, retrieve message history, and send ephemeral reactions. You'll also discover how to use the Ably CLI for testing chat functionality and manage your chat applications through your Ably dashboard.
## Getting started guides
diff --git a/src/pages/docs/chat/getting-started/javascript.mdx b/src/pages/docs/chat/getting-started/javascript.mdx
index 17e0302680..e82a6b5614 100644
--- a/src/pages/docs/chat/getting-started/javascript.mdx
+++ b/src/pages/docs/chat/getting-started/javascript.mdx
@@ -1,11 +1,10 @@
---
title: "Getting started: Chat in JavaScript / TypeScript"
+intro: "This guide will get you started with Ably Chat using TypeScript."
meta_description: "Get started with Ably's JavaScript Chat SDK. Build scalable, realtime chat applications using live chat APIs and realtime messaging."
meta_keywords: "chat js, javascript chat sdk, live chat javascript api, javascript chat api, chat api js, chat api javascript, chat javascript api, real time chat javascript, real time chat application in javascript, javascript real time chat, ably chat sdk, typescript chat sdk, typescript chat api, real time messaging javascript, realtime chat javascript, realtime chat application javascript"
---
-This guide will get you started with Ably Chat using TypeScript.
-
You'll learn how to create chat rooms, send and edit messages, and implement realtime features like typing indicators and presence. You'll also cover message history, reactions, and proper connection management.
## Prerequisites
diff --git a/src/pages/docs/chat/getting-started/jvm.mdx b/src/pages/docs/chat/getting-started/jvm.mdx
index cfc57bae24..f91ad9638c 100644
--- a/src/pages/docs/chat/getting-started/jvm.mdx
+++ b/src/pages/docs/chat/getting-started/jvm.mdx
@@ -1,11 +1,10 @@
---
title: "Getting started: Chat with JVM (Kotlin/Java)"
+intro: "This guide will help you get started with Ably Chat in a new JVM application using Kotlin."
meta_description: "A getting started guide for Ably Chat JVM that steps through some of the key features using Kotlin."
meta_keywords: "Ably, realtime, quickstart, getting started, basics, Chat, JVM, Kotlin, Java, console application"
---
-This guide will help you get started with Ably Chat in a new JVM application using Kotlin.
-
You'll learn how to create chat rooms, send and edit messages, and implement realtime features like typing indicators and presence. You'll also cover message history, reactions, and proper connection management.
## Prerequisites
diff --git a/src/pages/docs/chat/getting-started/react-native.mdx b/src/pages/docs/chat/getting-started/react-native.mdx
index c43c71ad28..1f7249ee34 100644
--- a/src/pages/docs/chat/getting-started/react-native.mdx
+++ b/src/pages/docs/chat/getting-started/react-native.mdx
@@ -1,11 +1,10 @@
---
title: "Getting started: Chat with React Native"
+intro: "This guide will get you started with Ably Chat on a new React Native application."
meta_description: "A getting started guide for Ably Chat React Native that steps through some of the key features using React Native."
meta_keywords: "Ably, realtime, quickstart, getting started, basics, Chat, React Native"
---
-This guide will get you started with Ably Chat on a new React Native application.
-
You'll learn how to create chat rooms, send and edit messages, and implement realtime features like typing indicators and presence. You'll also cover message history, reactions, and proper connection management.

diff --git a/src/pages/docs/chat/getting-started/react-ui-kit.mdx b/src/pages/docs/chat/getting-started/react-ui-kit.mdx
index cea08e6ee1..acd6bc4715 100644
--- a/src/pages/docs/chat/getting-started/react-ui-kit.mdx
+++ b/src/pages/docs/chat/getting-started/react-ui-kit.mdx
@@ -1,13 +1,12 @@
---
title: "Getting started: Chat UI Kit for React"
+intro: "This guide shows you how to add the Ably Chat React UI Kit to a brand-new React app built with Vite."
meta_description: "Step-by-step quick-start for ably-chat-react-ui-kit using React and Vite."
meta_keywords: "Ably, realtime, quickstart, Chat UI, React, Vite"
redirect_from:
- /docs/chat/getting-started/react-ui-components/
---
-This guide shows you how to add the Ably Chat React UI Kit to a brand-new React app built with Vite.
-
You'll create Ably clients, install the UI component package, and build a complete chat interface. You'll also cover customizing the look and feel with your own styles, settings, and avatars.
## Prerequisites
diff --git a/src/pages/docs/chat/getting-started/react.mdx b/src/pages/docs/chat/getting-started/react.mdx
index 06de672024..df62744adb 100644
--- a/src/pages/docs/chat/getting-started/react.mdx
+++ b/src/pages/docs/chat/getting-started/react.mdx
@@ -1,11 +1,10 @@
---
title: "Getting started: Chat with React"
+intro: "This guide will get you started with Ably Chat on a new React application built with Vite."
meta_description: "A getting started guide for Ably Chat React that steps through some of the key features using React and Vite."
meta_keywords: "Ably, realtime, quickstart, getting started, basics, Chat, React, Vite"
---
-This guide will get you started with Ably Chat on a new React application built with Vite.
-
You'll learn how to create chat rooms, send and edit messages, and implement realtime features like typing indicators and presence. You'll also cover message history, reactions, and proper connection management.

diff --git a/src/pages/docs/chat/getting-started/swift.mdx b/src/pages/docs/chat/getting-started/swift.mdx
index bfa6664ad1..f731fac64c 100644
--- a/src/pages/docs/chat/getting-started/swift.mdx
+++ b/src/pages/docs/chat/getting-started/swift.mdx
@@ -1,11 +1,10 @@
---
title: "Getting started: Chat with Swift (Callback Approach)"
+intro: "This guide will help you get started with Ably Chat in a new iOS Swift application built with SwiftUI, using a callback-based approach for handling realtime events."
meta_description: "A getting started guide for Ably Chat iOS that steps through some of the key features using SwiftUI with callback-based subscriptions."
meta_keywords: "Ably, realtime, quickstart, getting started, basics, Chat, iOS, Swift, SwiftUI, callbacks"
---
-This guide will help you get started with Ably Chat in a new iOS Swift application built with SwiftUI, using a callback-based approach for handling realtime events.
-
You'll learn how to create chat rooms, send and edit messages, and implement realtime features like typing indicators and presence. You'll also cover message history, reactions, and proper connection management.

diff --git a/src/pages/docs/chat/index.mdx b/src/pages/docs/chat/index.mdx
index c4b96234fa..f62985a380 100644
--- a/src/pages/docs/chat/index.mdx
+++ b/src/pages/docs/chat/index.mdx
@@ -1,11 +1,12 @@
---
title: About Chat
+intro: "Ably Chat is a product dedicated to making it quick and easy to build chat functionality into new and existing applications."
meta_description: "Learn more about Ably Chat and the features that enable you to quickly build functionality into new and existing applications."
redirect_from:
- /docs/products/chat
---
-Ably Chat is a product dedicated to making it quick and easy to build chat functionality into new and existing applications. Use Ably Chat to build things such as a 1:1 customer support feature, or add a chat component to a livestreaming platform that serves hundreds of thousands of users.
+Use Ably Chat to build things such as a 1:1 customer support feature, or add a chat component to a livestreaming platform that serves hundreds of thousands of users.
The Chat SDK contains a set of purpose-built APIs that abstract away the complexities involved in how you would architect chat features. It utilizes Ably's platform to benefit from all of the same performance guarantees and scaling potential.
diff --git a/src/pages/docs/chat/integrations.mdx b/src/pages/docs/chat/integrations.mdx
index 404f47e97a..232abfa8a1 100644
--- a/src/pages/docs/chat/integrations.mdx
+++ b/src/pages/docs/chat/integrations.mdx
@@ -1,9 +1,10 @@
---
title: Integrations
+intro: "Ably Chat rooms use Ably Pub/Sub channels as the underlying building block, enabling you to integrate with external services."
meta_description: "Ably Chat integrations with external services."
---
-Ably Chat rooms use Ably Pub/Sub channels as the underlying building block. Each chat room uses one Pub/Sub channel. This allows you to integrate with external services using any of the [integrations](/docs/platform/integrations) that Ably Pub/Sub supports, enabling you to send data from Ably to an external service or push data into Ably from an external service.
+Each chat room maps to one Pub/Sub channel. You can use any of the [integrations](/docs/platform/integrations) that Ably Pub/Sub supports, enabling you to send data from Ably to an external service or push data into Ably from an external service.
To integrate with an external service, you need to be aware of how Ably Chat messages are mapped to Ably Pub/Sub messages. All the Chat SDKs automatically do this conversion for you, and the Ably Chat REST API directly returns Chat messages. However there are some situations, such as building integrations, that we don't yet support directly in Chat, where understanding the mapping from an Ably Pub/Sub message to a Chat message is useful.
diff --git a/src/pages/docs/chat/moderation/custom/index.mdx b/src/pages/docs/chat/moderation/custom/index.mdx
index 7facd5e67f..aea22c575b 100644
--- a/src/pages/docs/chat/moderation/custom/index.mdx
+++ b/src/pages/docs/chat/moderation/custom/index.mdx
@@ -1,12 +1,9 @@
---
title: Custom Moderation
+intro: "There may be situations where you have trained your own model, or you want to apply proprietary logic using your own infrastructure, whilst performing moderation. Ably provides simple APIs to allow your moderation logic to prevent harmful content from being present in your chat room."
meta_description: "Detect and remove unwanted content in a Chat Room using a custom provider"
---
-There may be situations where you have trained your own model, or you want to apply proprietary logic using your own infrastructure, whilst performing moderation.
-
-Ably provides simple APIs to allow your moderation logic to prevent harmful content from being present in your chat room.
-
## Before publish
Before publish moderation is where your moderation logic is invoked before the message is published to your chat room. This has the benefit of preventing harmful content from ever entering your chat room, at the cost of some latency in invoking your moderation logic as part of the publish path.
diff --git a/src/pages/docs/chat/moderation/custom/lambda.mdx b/src/pages/docs/chat/moderation/custom/lambda.mdx
index 1af9f157a2..e2099664be 100644
--- a/src/pages/docs/chat/moderation/custom/lambda.mdx
+++ b/src/pages/docs/chat/moderation/custom/lambda.mdx
@@ -1,9 +1,10 @@
---
title: AWS Lambda
+intro: "The AWS Lambda rule is a powerful way to add a custom moderation solution to Ably Chat."
meta_description: "Detect and remove unwanted content in a Chat Room using AWS Lambda."
---
-The AWS Lambda rule is a powerful way to custom moderation solution to Ably Chat. It enables you to run custom moderation logic or integrate with your preferred moderation provider by configuring an AWS Lambda function that will be invoked before messages are published to a chat room.
+AWS Lambda enables you to run custom moderation logic or integrate with your preferred moderation provider by configuring a function that will be invoked before messages are published to a chat room.
This rule is particularly useful when you want to:
diff --git a/src/pages/docs/chat/moderation/direct/azure.mdx b/src/pages/docs/chat/moderation/direct/azure.mdx
index 0a5a720a77..b9876a4c38 100644
--- a/src/pages/docs/chat/moderation/direct/azure.mdx
+++ b/src/pages/docs/chat/moderation/direct/azure.mdx
@@ -1,11 +1,10 @@
---
title: Azure Content Safety
+intro: "Azure Content Safety is a powerful AI service that can be used to moderate content in chat rooms."
meta_description: "Detect and remove unwanted content in a Chat Room using Azure Content Safety."
---
-[Azure Content Safety](https://azure.microsoft.com/en-us/products/ai-services/ai-content-safety) is a powerful AI service that can be used to moderate content in chat rooms.
-
-The Azure Content Safety integration can be applied to chat rooms so that you can use Azure's text moderation capabilities to detect and handle inappropriate content before it's published to other users.
+The [Azure Content Safety](https://azure.microsoft.com/en-us/products/ai-services/ai-content-safety) integration can be applied to chat rooms so that you can use Azure's text moderation capabilities to detect and handle inappropriate content before it's published to other users.
## Integration setup
diff --git a/src/pages/docs/chat/moderation/direct/bodyguard.mdx b/src/pages/docs/chat/moderation/direct/bodyguard.mdx
index 9442a449c7..cd8c4afd38 100644
--- a/src/pages/docs/chat/moderation/direct/bodyguard.mdx
+++ b/src/pages/docs/chat/moderation/direct/bodyguard.mdx
@@ -1,11 +1,10 @@
---
title: Bodyguard
+intro: "Bodyguard is a powerful contextual analysis platform that can be used to moderate content in chat rooms."
meta_description: "Detect and remove unwanted content in a Chat Room using Bodyguard AI."
---
-[Bodyguard](https://bodyguard.ai/) is a powerful contextual analysis platform that can be used to moderate content in chat rooms.
-
-The Bodyguard integration can be applied to chat rooms so that you can use Bodyguard's content moderation capabilities to detect and handle inappropriate content before it's published to other users.
+The [Bodyguard](https://bodyguard.ai/) integration can be applied to chat rooms so that you can use Bodyguard's content moderation capabilities to detect and handle inappropriate content before it's published to other users.
## Integration setup
diff --git a/src/pages/docs/chat/moderation/direct/hive-dashboard.mdx b/src/pages/docs/chat/moderation/direct/hive-dashboard.mdx
index 2190cd8cd4..c5bb0a3388 100644
--- a/src/pages/docs/chat/moderation/direct/hive-dashboard.mdx
+++ b/src/pages/docs/chat/moderation/direct/hive-dashboard.mdx
@@ -1,11 +1,10 @@
---
title: Hive (Dashboard)
+intro: "Hive dashboard is a powerful all-in-one moderation tool, which enables you to set up rules to combine automated AI moderation with human review."
meta_description: "Detect and remove unwanted content in a Chat Room using Hive AI, providing human moderators a place to review and act on content."
---
-[Hive dashboard](https://hivemoderation.com/dashboard) is a powerful all-in-one moderation tool, which enables you to set up rules to combine automated AI moderation with human review.
-
-The Hive Dashboard rule is a rule applied to chat rooms which enables you to use Hive's [moderation dashboard](https://docs.thehive.ai/docs/what-is-the-moderation-dashboard) to review messages in your chat room.
+The [Hive Dashboard](https://hivemoderation.com/dashboard) rule is a rule applied to chat rooms which enables you to use Hive's [moderation dashboard](https://docs.thehive.ai/docs/what-is-the-moderation-dashboard) to review messages in your chat room.
## Integration setup
diff --git a/src/pages/docs/chat/moderation/direct/hive-model-only.mdx b/src/pages/docs/chat/moderation/direct/hive-model-only.mdx
index fdb9a7766c..6d07f60b2f 100644
--- a/src/pages/docs/chat/moderation/direct/hive-model-only.mdx
+++ b/src/pages/docs/chat/moderation/direct/hive-model-only.mdx
@@ -1,11 +1,10 @@
---
title: Hive (Model Only)
+intro: "Hive Moderation is a powerful suite of moderation tools that can be used to moderate content in chat rooms."
meta_description: "Detect and remove unwanted content in a Chat Room using Hive AI."
---
-[Hive Moderation](https://hivemoderation.com) is a powerful suite of moderation tools that can be used to moderate content in chat rooms.
-
-The Hive (model only) rule is a rule applied to chat rooms in Ably Chat which enables you to use [Hive's text moderation models](https://hivemoderation.com/text-moderation) to detect and handle inappropriate content before it is published to other users.
+The [Hive Moderation](https://hivemoderation.com) (model only) rule is a rule applied to chat rooms in Ably Chat which enables you to use [Hive's text moderation models](https://hivemoderation.com/text-moderation) to detect and handle inappropriate content before it is published to other users.
## Integration setup
diff --git a/src/pages/docs/chat/moderation/direct/tisane.mdx b/src/pages/docs/chat/moderation/direct/tisane.mdx
index bc60d38f07..7efb449962 100644
--- a/src/pages/docs/chat/moderation/direct/tisane.mdx
+++ b/src/pages/docs/chat/moderation/direct/tisane.mdx
@@ -1,11 +1,10 @@
---
title: Tisane
+intro: "Tisane is a powerful Natural Language Understanding (NLU) platform that can be used to moderate content in chat rooms."
meta_description: "Detect and remove unwanted content in a Chat Room using Tisane AI."
---
-[Tisane](https://tisane.ai/) is a powerful Natural Language Understanding (NLU) platform that can be used to moderate content in chat rooms.
-
-The Tisane integration can be applied to chat rooms so that you can use Tisane's text moderation capabilities to detect and handle inappropriate content before it's published to other users.
+The [Tisane](https://tisane.ai/) integration can be applied to chat rooms so that you can use Tisane's text moderation capabilities to detect and handle inappropriate content before it's published to other users.
## Integration setup
diff --git a/src/pages/docs/chat/moderation/index.mdx b/src/pages/docs/chat/moderation/index.mdx
index 8f93e9dbbb..e9887b48e9 100644
--- a/src/pages/docs/chat/moderation/index.mdx
+++ b/src/pages/docs/chat/moderation/index.mdx
@@ -1,11 +1,12 @@
---
title: Moderation
+intro: "Moderation is a crucial feature for chat rooms and online communities to maintain a safe, respectful, and engaging environment for all participants. Moderators help enforce community guidelines and remove potentially harmful content that can drive users away from an online experience."
meta_description: "Detect and remove unwanted content in a Chat Room."
---
-Moderation is a crucial feature for chat rooms and online communities to maintain a safe, respectful, and engaging environment for all participants. Moderators help enforce community guidelines and remove potentially harmful content that can drive users away from an online experience.
+Moderation strategies can take many forms. Human moderators can sit and participate in the chat room, using community guidelines to make judgements on the chat content, taking action such as deleting a message when it is found to be in violation of standards.
-Moderation strategies can take many forms. Human moderators can sit and participate in the chat room, using community guidelines to make judgements on the chat content, taking action such as deleting a message when it is found to be in violation of standards. Many modern approaches involve moderation engines and Artificial Intelligence models, which can screen content in order to filter out harmful messages before they are allowed into the chat room, without the need for human moderators. Many of these are highly configurable, allowing you to screen content across multiple categories to suit your needs. Hybrid approaches can make the best of both worlds, employing AI to pre-screen messages, with human moderators able to make judgement calls on edge-cases or in response to user feedback.
+Many modern approaches involve moderation engines and Artificial Intelligence models, which can screen content in order to filter out harmful messages before they are allowed into the chat room, without the need for human moderators. Many of these are highly configurable, allowing you to screen content across multiple categories to suit your needs. Hybrid approaches can make the best of both worlds, employing AI to pre-screen messages, with human moderators able to make judgement calls on edge-cases or in response to user feedback.
Ably Chat supports a variety of moderation options in chat rooms, to help you keep your participants safe and engaged.
diff --git a/src/pages/docs/chat/react-ui-kit/component-styling.mdx b/src/pages/docs/chat/react-ui-kit/component-styling.mdx
index d75625791b..8ed7d95f22 100644
--- a/src/pages/docs/chat/react-ui-kit/component-styling.mdx
+++ b/src/pages/docs/chat/react-ui-kit/component-styling.mdx
@@ -1,13 +1,12 @@
---
title: "Styling Ably Chat UI React Kit"
+intro: "This guide explains how to style and customize the appearance of components in the Ably Chat React UI Kit, both with and without Tailwind CSS."
meta_description: "A guide to styling components in the Ably Chat React UI Kit with and without Tailwind CSS."
meta_keywords: "Ably, realtime, Chat UI, React, styling, Tailwind CSS, customization, theming, dark mode, light mode"
---
# Component Styling
-This guide explains how to style and customize the appearance of components in the Ably Chat React UI Kit, both with and without Tailwind CSS.
-
## Basic Styling Approach
The Ably Chat React UI Kit uses Tailwind CSS for styling components, this gives you a utility-first approach to styling, allowing you to apply styles directly in your JSX using Tailwind's utility classes.
diff --git a/src/pages/docs/chat/react-ui-kit/components.mdx b/src/pages/docs/chat/react-ui-kit/components.mdx
index b4fdce3818..be208733bf 100644
--- a/src/pages/docs/chat/react-ui-kit/components.mdx
+++ b/src/pages/docs/chat/react-ui-kit/components.mdx
@@ -1,12 +1,13 @@
---
title: "Ably Chat UI React Kit"
+intro: "This page documents the components available in the Ably Chat React UI Kit."
meta_description: "Comprehensive documentation for the Ably Chat React UI Kit."
meta_keywords: "Ably, realtime, Chat UI, React, UI, Kit, components, chat-message, chat-message-list, chat-window, message-input, sidebar, participant-list, avatar"
---
# Components
-This page documents the components available in the Ably Chat React UI Kit. These components provide a comprehensive UI for building chat applications with Ably.
+These components provide a comprehensive UI for building chat applications with Ably.
## Styling and Theming
diff --git a/src/pages/docs/chat/react-ui-kit/index.mdx b/src/pages/docs/chat/react-ui-kit/index.mdx
index 9462910ced..50bdf98cb9 100644
--- a/src/pages/docs/chat/react-ui-kit/index.mdx
+++ b/src/pages/docs/chat/react-ui-kit/index.mdx
@@ -1,11 +1,10 @@
---
title: React UI Kit
+intro: "The Ably Chat React UI Kit is a UI Kit for building chat interfaces with Ably Chat, designed to work with the Ably Chat SDK and its React hooks and providers."
meta_description: "Learn more about the Ably Chat React UI Kit and how to use it to quickly build chat interfaces in your React applications."
meta_keywords: "Ably Chat, React, UI Components, UI Kit, Chat SDK, React Components, Chat Interface Ably, realtime, Chat UI, React Chat, Ably React, Ably Chat React UI Kit"
---
-The Ably Chat React UI Kit is a UI Kit for building chat interfaces with Ably Chat, designed to work with the Ably Chat SDK and its React hooks and providers.
-
The kit includes components for displaying messages, message lists, chat windows, avatars, and more.
It also includes providers and hooks for managing state within the components.
diff --git a/src/pages/docs/chat/react-ui-kit/providers.mdx b/src/pages/docs/chat/react-ui-kit/providers.mdx
index 87519c7421..fc673aab20 100644
--- a/src/pages/docs/chat/react-ui-kit/providers.mdx
+++ b/src/pages/docs/chat/react-ui-kit/providers.mdx
@@ -1,11 +1,10 @@
---
title: "Providers and Hooks"
+intro: "This page documents the providers and hooks available in the Ably Chat React UI Kit. These providers and hooks are used to manage state and provide functionality to the components."
meta_description: "Comprehensive documentation for the Ably Chat React UI Kits providers and hooks"
meta_keywords: "Ably, realtime, Chat UI, React, providers, hooks, context"
---
-This page documents the providers and hooks available in the Ably Chat React UI Kit. These providers and hooks are used to manage state and provide functionality to the components.
-
## Provider Setup
The components in the Ably Chat React UI Kit rely on several React context providers to provide necessary state and context. The `ChatClientProvider` is the core provider that manages access to the Ably Chat client, and should be placed at the root of your application.
diff --git a/src/pages/docs/chat/react-ui-kit/setup.mdx b/src/pages/docs/chat/react-ui-kit/setup.mdx
index 8ffc7cfe97..c205ce1fbe 100644
--- a/src/pages/docs/chat/react-ui-kit/setup.mdx
+++ b/src/pages/docs/chat/react-ui-kit/setup.mdx
@@ -1,14 +1,9 @@
---
title: React UI Kit setup
+intro: "Use these instructions to install, configure and instantiate the Chat React UI Kit."
meta_description: "Install, configure and instantiate the Chat React UI Kit."
---
-Use these instructions to install, configure and instantiate the Chat React UI Kit.
-
-
-
## Install
The React UI Kit is built on top of the Ably Chat SDK and requires both the Ably Pub/Sub SDK and the Chat SDK to be installed.
diff --git a/src/pages/docs/chat/rooms/history.mdx b/src/pages/docs/chat/rooms/history.mdx
index cef507e3d9..b4c8eeda8b 100644
--- a/src/pages/docs/chat/rooms/history.mdx
+++ b/src/pages/docs/chat/rooms/history.mdx
@@ -1,9 +1,12 @@
---
title: Message storage and history
+intro: "The history feature enables users to retrieve messages that have been previously sent in a room."
meta_description: "Retrieve previously sent messages from history."
---
-The history feature enables users to retrieve messages that have been previously sent in a room. Ably stores chat messages for 30 days by default. You can extend this up to 365 days by [contacting us](https://ably.com/support).
+
## Retrieve previously sent messages
diff --git a/src/pages/docs/chat/rooms/index.mdx b/src/pages/docs/chat/rooms/index.mdx
index a287773942..1e8bbb7bed 100644
--- a/src/pages/docs/chat/rooms/index.mdx
+++ b/src/pages/docs/chat/rooms/index.mdx
@@ -1,9 +1,10 @@
---
title: Rooms
+intro: "Rooms are used to organize and logically separate your users and chat messages into 'rooms'."
meta_description: "Use rooms to organize your users and chat messages."
---
-Rooms are used to organize and logically separate your users and chat messages into 'rooms'. They are the entry object into using chat and provide access to all other chat features, such as messages, online status and typing indicators. A room can represent a 1:1 chat between an agent and a customer, a private message between two users in a chat application, a large group conversation, or the chat section of a livestream with thousands of users.
+Rooms are the entry object into using chat and provide access to all other chat features, such as messages, online status and typing indicators. A room can represent a 1:1 chat between an agent and a customer, a private message between two users in a chat application, a large group conversation, or the chat section of a livestream with thousands of users.
## Relationship between rooms and channels
diff --git a/src/pages/docs/chat/rooms/media.mdx b/src/pages/docs/chat/rooms/media.mdx
index a4f72b2e3c..dbbb3de7ba 100644
--- a/src/pages/docs/chat/rooms/media.mdx
+++ b/src/pages/docs/chat/rooms/media.mdx
@@ -1,11 +1,10 @@
---
title: "Share media"
+intro: "Share media such as images, videos and files with users in a chat room."
meta_description: "Share media such as images, videos, or files in a chat room."
meta_keywords: "image, file, media, sharing, Ably Chat, chat SDK, realtime messaging, dependability, cost optimization"
---
-Share media such as images, videos and files with users in a chat room.
-
Upload the media to your own storage service, such as AWS S3, and then use the `metadata` field to reference the location of the media when a user [sends a message](/docs/chat/rooms/messages#send). On the receiving end, display the media to [subscribers](/docs/chat/rooms/messages#subscribe) that received the message.
## Access control
diff --git a/src/pages/docs/chat/rooms/message-reactions.mdx b/src/pages/docs/chat/rooms/message-reactions.mdx
index 961e129af3..9638d6f677 100644
--- a/src/pages/docs/chat/rooms/message-reactions.mdx
+++ b/src/pages/docs/chat/rooms/message-reactions.mdx
@@ -1,9 +1,10 @@
---
title: Message reactions
+intro: "Send, remove and display message reactions in a chat room."
meta_description: "React to chat messages"
---
-Send, remove and display message reactions in a chat room. Users can react to messages, typically with emojis but can be any string, and others can see the reactions to the message. Message reactions can be sent and removed and a summary of the reactions is persisted with the message.
+Users can react to messages, typically with emojis but can be any string, and others can see the reactions to the message. Message reactions can be sent and removed and a summary of the reactions is persisted with the message.
The reaction `name` represents the reaction itself, for example an emoji. Reactions are aggregated by `name` and the aggregation method including how many reactions a user can place for a message is controlled by the reaction `type`. The `count` is an optional parameter that can be set when sending a reaction of type `Multiple`.
diff --git a/src/pages/docs/chat/rooms/messages.mdx b/src/pages/docs/chat/rooms/messages.mdx
index 6018c86335..cdbc744483 100644
--- a/src/pages/docs/chat/rooms/messages.mdx
+++ b/src/pages/docs/chat/rooms/messages.mdx
@@ -1,9 +1,10 @@
---
title: Messages
+intro: "Send, update, delete, and receive messages in a chat room with any number of participants."
meta_description: "Send, update, delete, and receive messages in chat rooms."
---
-Send, update, delete, and receive messages in a chat room with any number of participants. Users subscribe to messages by registering a listener, and send messages to all users that are subscribed to receive them.
+Users subscribe to messages by registering a listener, and send messages to all users that are subscribed to receive them.
A user can also update or delete a message, all users that are subscribed to the room will be notified of the changes.
diff --git a/src/pages/docs/chat/rooms/occupancy.mdx b/src/pages/docs/chat/rooms/occupancy.mdx
index fe7017b6ce..60996bda64 100644
--- a/src/pages/docs/chat/rooms/occupancy.mdx
+++ b/src/pages/docs/chat/rooms/occupancy.mdx
@@ -1,9 +1,10 @@
---
title: Occupancy
+intro: "Occupancy enables you to view the number of users currently online in a room."
meta_description: "Use occupancy to see how many users are in a room."
---
-Occupancy enables you to view the number of users currently online in a room. This feature can be used to display user counts to highlight popular, or trending chat rooms.
+The occupancy feature can be used to display user counts to highlight popular, or trending chat rooms.
-This guide will get you started with Ably Pub/Sub in Objective-C.
-
You'll establish a realtime connection to Ably and learn to publish and subscribe to messages. You'll also implement presence to track other online clients, and learn how to retrieve message history.
## Prerequisites
diff --git a/src/pages/docs/getting-started/php.mdx b/src/pages/docs/getting-started/php.mdx
index 8e2a34b92d..3ad9b72092 100644
--- a/src/pages/docs/getting-started/php.mdx
+++ b/src/pages/docs/getting-started/php.mdx
@@ -1,13 +1,12 @@
---
title: "Getting started: Pub/Sub in PHP"
+intro: "This guide will get you started with Ably Pub/Sub in PHP."
meta_description: "A getting started guide for Ably Pub/Sub PHP that steps through some of the key features using PHP."
meta_keywords: "Pub/Sub PHP, PHP PubSub, Ably PHP SDK, publish PHP, Ably Pub/Sub guide, PHP realtime communication, Ably tutorial PHP, PHP message history, presence API PHP, Ably Pub/Sub example, realtime Pub/Sub PHP, publish message PHP, Ably CLI Pub/Sub"
languages:
- PHP
---
-This guide will get you started with Ably Pub/Sub in PHP.
-
You'll learn how to connect to Ably using the REST SDK, generate JWTs for client authentication, and publish messages. You'll also implement presence to track other online clients, and learn how to retrieve message history.
-The Batching API in LiveObjects enables multiple updates to be grouped into a single channel message and applied atomically. It ensures that all operations in a batch either succeed together or are discarded entirely. Batching operations is essential when multiple related updates to channel objects must be applied as a single atomic unit, for example, when application logic depends on multiple objects being updated simultaneously. Without batching, if one operation succeeds while another fails, your application state could become inconsistent.
+The batching API ensures that all operations in a batch either succeed together or are discarded entirely. Batching operations is essential when multiple related updates to channel objects must be applied as a single atomic unit, for example, when application logic depends on multiple objects being updated simultaneously. Without batching, if one operation succeeds while another fails, your application state could become inconsistent.
Note that this differs from ["Message batching"](/docs/messages/batch), the native Pub/Sub messages feature. The LiveObjects Batching API is a separate API specifically designed to enable you to group object operations into a single channel message, ensuring that the Ably system guarantees the atomicity of the applied changes.
diff --git a/src/pages/docs/liveobjects/concepts/objects.mdx b/src/pages/docs/liveobjects/concepts/objects.mdx
index b428bacf88..6d82fefb60 100644
--- a/src/pages/docs/liveobjects/concepts/objects.mdx
+++ b/src/pages/docs/liveobjects/concepts/objects.mdx
@@ -1,5 +1,6 @@
---
title: Objects
+intro: "LiveObjects enables you to store shared data as \"objects\" on a channel, allowing your application data to be synchronized across multiple users and devices in realtime."
meta_description: "Learn how data is represented as objects in Ably LiveObjects"
---
@@ -9,8 +10,6 @@ LiveObjects is currently Experimental. Its features are still in development and
**Building with LiveObjects?** Help shape its future by [sharing your use case](https://44qpp.share.hsforms.com/2fZobHQA1ToyRfB9xqZYQmQ).
-LiveObjects enables you to store shared data as "objects" on a channel, allowing your application data to be synchronized across multiple users and devices in realtime. This document explains the key concepts you need to know when working with objects.
-
## Object Types
LiveObjects provides specialized object types to model your application state. These object types are designed to be conflict-free and eventually consistent, meaning that all operations on them are commutative and converge to the same state across all clients.
diff --git a/src/pages/docs/liveobjects/concepts/operations.mdx b/src/pages/docs/liveobjects/concepts/operations.mdx
index c3961c2de8..112add01a1 100644
--- a/src/pages/docs/liveobjects/concepts/operations.mdx
+++ b/src/pages/docs/liveobjects/concepts/operations.mdx
@@ -1,5 +1,6 @@
---
title: Operations
+intro: "LiveObjects operations define how object data is updated and synchronized across multiple clients."
meta_description: "Learn how objects are updated by operations in Ably LiveObjects."
---
@@ -9,14 +10,10 @@ LiveObjects is currently Experimental. Its features are still in development and
**Building with LiveObjects?** Help shape its future by [sharing your use case](https://44qpp.share.hsforms.com/2fZobHQA1ToyRfB9xqZYQmQ).
-LiveObjects operations define how object data is updated and synchronized across multiple clients.
+## Operation Types
When you create or update an object, the change is expressed as an _operation_ that is sent as an [object message](/docs/metadata-stats/stats#messages) on the channel. The operation is then applied to the object instance on all clients that are subscribed to the channel.
-This document explains the key concepts you need to know when working with operations.
-
-## Operation Types
-
Each object type supports specific operations that modify the object's data.
### LiveMap Operations
diff --git a/src/pages/docs/liveobjects/concepts/synchronization.mdx b/src/pages/docs/liveobjects/concepts/synchronization.mdx
index ffe50ba02e..cf10f89762 100644
--- a/src/pages/docs/liveobjects/concepts/synchronization.mdx
+++ b/src/pages/docs/liveobjects/concepts/synchronization.mdx
@@ -1,5 +1,6 @@
---
title: Synchronization
+intro: "LiveObjects provides a powerful synchronization mechanism to ensure that all clients see the same data."
meta_description: "Learn how data is synchronized between clients."
---
@@ -9,8 +10,6 @@ LiveObjects is currently Experimental. Its features are still in development and
**Building with LiveObjects?** Help shape its future by [sharing your use case](https://44qpp.share.hsforms.com/2fZobHQA1ToyRfB9xqZYQmQ).
-LiveObjects provides a powerful synchronization mechanism to ensure that all clients see the same data. This document explains how synchronization works in LiveObjects.
-
## Channel Objects
Ably maintains the authoritative state of all objects on each channel across its distributed infrastructure.
diff --git a/src/pages/docs/liveobjects/counter.mdx b/src/pages/docs/liveobjects/counter.mdx
index 18596161db..6abda5a350 100644
--- a/src/pages/docs/liveobjects/counter.mdx
+++ b/src/pages/docs/liveobjects/counter.mdx
@@ -1,5 +1,6 @@
---
title: LiveCounter
+intro: "LiveCounter is a synchronized numerical counter that supports increment and decrement operations. It ensures that all updates are correctly applied and synchronized across users in realtime, preventing inconsistencies when multiple users modify the counter value simultaneously."
meta_description: "Create, update and receive updates for a numerical counter that synchronizes state across clients in realtime."
---
@@ -9,8 +10,6 @@ LiveObjects is currently Experimental. Its features are still in development and
**Building with LiveObjects?** Help shape its future by [sharing your use case](https://44qpp.share.hsforms.com/2fZobHQA1ToyRfB9xqZYQmQ).
-LiveCounter is a synchronized numerical counter that supports increment and decrement operations. It ensures that all updates are correctly applied and synchronized across users in realtime, preventing inconsistencies when multiple users modify the counter value simultaneously.
-
## Create LiveCounter
A `LiveCounter` instance can be created using the `channel.objects.createCounter()` method. It must be stored inside a `LiveMap` object that is reachable from the [root object](/docs/liveobjects/concepts/objects#root-object).
diff --git a/src/pages/docs/liveobjects/inband-objects.mdx b/src/pages/docs/liveobjects/inband-objects.mdx
index 586586fac1..1d79e30606 100644
--- a/src/pages/docs/liveobjects/inband-objects.mdx
+++ b/src/pages/docs/liveobjects/inband-objects.mdx
@@ -1,5 +1,6 @@
---
title: Inband Objects
+intro: "Inband objects enables clients to subscribe to LiveObjects updates in realtime, even on platforms that don't yet have a native LiveObjects Realtime client implementation."
meta_description: "Subscribe to LiveObjects updates from Pub/Sub SDKs."
---
@@ -9,16 +10,6 @@ LiveObjects is currently Experimental. Its features are still in development and
**Building with LiveObjects?** Help shape its future by [sharing your use case](https://44qpp.share.hsforms.com/2fZobHQA1ToyRfB9xqZYQmQ).
-Inband objects enables clients to subscribe to LiveObjects updates in realtime, even on platforms that don't yet have a native LiveObjects Realtime client implementation.
-
-
-
Inband objects works by delivering changes to channel objects as regular channel messages, similar to [inband occupancy](/docs/channels/options#occupancy).
## Enable Inband Objects
diff --git a/src/pages/docs/liveobjects/index.mdx b/src/pages/docs/liveobjects/index.mdx
index 370460fc96..7ae81386b9 100644
--- a/src/pages/docs/liveobjects/index.mdx
+++ b/src/pages/docs/liveobjects/index.mdx
@@ -1,5 +1,6 @@
---
title: About LiveObjects
+intro: "Ably LiveObjects provides a serverless, durable, and scalable way to create, update, and synchronize shared state across large numbers of connected clients at any scale."
meta_description: "Learn about Ably LiveObjects, its features, use cases, and how it simplifies realtime state synchronization."
---
@@ -9,18 +10,16 @@ LiveObjects is currently Experimental. Its features are still in development and
**Building with LiveObjects?** Help shape its future by [sharing your use case](https://44qpp.share.hsforms.com/2fZobHQA1ToyRfB9xqZYQmQ).
-Ably LiveObjects provides a serverless, durable, and scalable way to create, update, and synchronize shared state across large numbers of connected clients at any scale.
-
LiveObjects provides a global, durable, and conflict-free shared data layer built on Ably's [global platform](/docs/platform/architecture), so your application state stays perfectly synchronized in realtime without the need to build or manage complex infrastructure yourself.
-
-
LiveObjects enables you to store shared data as "objects" on a [channel](/docs/channels). When an object is updated, changes are automatically propagated to all subscribed clients in realtime, ensuring everyone always sees the latest state.
LiveObjects provides a simple, purpose-built API that handles realtime synchronization, persistence, and convergence behind the scenes. The result is a single logical view of your data - distributed to the edge, updated in real time, and always in sync - no matter how many users are connected or where they are in the world.
+
+
## Use cases
You can use LiveObjects to build all sorts of powerful functionality in your applications that require realtime updates to shared data. It is useful when your application has data that:
diff --git a/src/pages/docs/liveobjects/lifecycle.mdx b/src/pages/docs/liveobjects/lifecycle.mdx
index aa635a6374..cac07828d9 100644
--- a/src/pages/docs/liveobjects/lifecycle.mdx
+++ b/src/pages/docs/liveobjects/lifecycle.mdx
@@ -1,5 +1,6 @@
---
title: Lifecycle events
+intro: "Lifecycle events enable you to track synchronization events and object deletions for Objects, LiveMap and LiveCounter."
meta_description: "Understand lifecycle events for Objects, LiveMap and LiveCounter to track synchronization events and object deletions."
---
diff --git a/src/pages/docs/liveobjects/map.mdx b/src/pages/docs/liveobjects/map.mdx
index f05171281f..ebe2613eea 100644
--- a/src/pages/docs/liveobjects/map.mdx
+++ b/src/pages/docs/liveobjects/map.mdx
@@ -1,5 +1,6 @@
---
title: LiveMap
+intro: "LiveMap is a key/value data structure that synchronizes its state across users in realtime."
meta_description: "Create, update and receive updates for a key/value data structure that synchronizes state across clients in realtime."
---
@@ -9,7 +10,7 @@ LiveObjects is currently Experimental. Its features are still in development and
**Building with LiveObjects?** Help shape its future by [sharing your use case](https://44qpp.share.hsforms.com/2fZobHQA1ToyRfB9xqZYQmQ).
-LiveMap is a key/value data structure that synchronizes its state across users in realtime. It enables you to store primitive values, such as numbers, strings, booleans, buffers, JSON-serializable objects or arrays and other LiveObjects types, [enabling you to build complex, hierarchical object structure](#composability).
+LiveMap enables you to store primitive values, such as numbers, strings, booleans, buffers, JSON-serializable objects or arrays and other LiveObjects types, [enabling you to build complex, hierarchical object structure](#composability).
Conflicts in a LiveMap are automatically resolved with last-write-wins (LWW) semantics. The latest received operation on a key will be applied to the LiveMap and broadcast to all clients.
diff --git a/src/pages/docs/liveobjects/quickstart/java.mdx b/src/pages/docs/liveobjects/quickstart/java.mdx
index 5a3a281de3..e8fa78f17e 100644
--- a/src/pages/docs/liveobjects/quickstart/java.mdx
+++ b/src/pages/docs/liveobjects/quickstart/java.mdx
@@ -1,16 +1,9 @@
---
title: "Getting started: LiveObjects in Java"
+intro: "This guide shows how to integrate Ably LiveObjects into your Java application."
meta_description: "A quickstart guide to learn the basics of integrating the Ably LiveObjects product into your Java application."
---
-
-
-This guide shows how to integrate Ably LiveObjects into your Java application.
-
You will learn how to:
* Create an Ably account and get an API key for authentication.
diff --git a/src/pages/docs/liveobjects/quickstart/javascript.mdx b/src/pages/docs/liveobjects/quickstart/javascript.mdx
index 8136d1c8d8..bd2bc0b606 100644
--- a/src/pages/docs/liveobjects/quickstart/javascript.mdx
+++ b/src/pages/docs/liveobjects/quickstart/javascript.mdx
@@ -1,18 +1,11 @@
---
title: "Getting started: LiveObjects in JavaScript"
+intro: "This guide shows how to integrate Ably LiveObjects into your JavaScript / TypeScript application."
meta_description: "A getting started guide to learn the basics of integrating the Ably LiveObjects product into your JavaScript application."
redirect_from:
- /docs/liveobjects/quickstart
---
-
-
-This guide shows how to integrate Ably LiveObjects into your JavaScript / TypeScript application.
-
You will learn how to:
* Create an Ably account and get an API key for authentication.
diff --git a/src/pages/docs/liveobjects/quickstart/swift.mdx b/src/pages/docs/liveobjects/quickstart/swift.mdx
index 1c806ea1d8..cbea670997 100644
--- a/src/pages/docs/liveobjects/quickstart/swift.mdx
+++ b/src/pages/docs/liveobjects/quickstart/swift.mdx
@@ -1,16 +1,9 @@
---
title: "Getting started: LiveObjects in Swift"
+intro: "This guide shows how to integrate Ably LiveObjects into your Swift application."
meta_description: "A quickstart guide to learn the basics of integrating the Ably LiveObjects product into your Swift application."
---
-
-
-This guide shows how to integrate Ably LiveObjects into your Swift application.
-
You will learn how to:
* Create an Ably account and get an API key for authentication.
diff --git a/src/pages/docs/liveobjects/rest-api-usage.mdx b/src/pages/docs/liveobjects/rest-api-usage.mdx
index f7d97a78be..8b0684d6e1 100644
--- a/src/pages/docs/liveobjects/rest-api-usage.mdx
+++ b/src/pages/docs/liveobjects/rest-api-usage.mdx
@@ -1,5 +1,6 @@
---
title: Using the REST API
+intro: "LiveObjects provides a comprehensive REST API that enables you to directly work with objects without using a client SDK."
meta_description: "Learn how to work with Ably LiveObjects using the REST API"
---
@@ -9,8 +10,6 @@ LiveObjects is currently Experimental. Its features are still in development and
**Building with LiveObjects?** Help shape its future by [sharing your use case](https://44qpp.share.hsforms.com/2fZobHQA1ToyRfB9xqZYQmQ).
-LiveObjects provides a comprehensive REST API that enables you to directly work with objects without using a client SDK.
-
## Authentication
View the REST API [authentication](/docs/api/rest-api#authentication) documentation for details on how to authenticate your requests.
diff --git a/src/pages/docs/liveobjects/storage.mdx b/src/pages/docs/liveobjects/storage.mdx
index f45b8097f0..0ecd737492 100644
--- a/src/pages/docs/liveobjects/storage.mdx
+++ b/src/pages/docs/liveobjects/storage.mdx
@@ -1,5 +1,6 @@
---
title: Object storage
+intro: "Ably durably stores all objects on a channel for a retention period that is configured to 90 days by default."
meta_description: "Learn about LiveObjects object storage."
---
diff --git a/src/pages/docs/liveobjects/typing.mdx b/src/pages/docs/liveobjects/typing.mdx
index dbd8716368..6be0c527eb 100644
--- a/src/pages/docs/liveobjects/typing.mdx
+++ b/src/pages/docs/liveobjects/typing.mdx
@@ -1,5 +1,6 @@
---
title: Typing
+intro: "If you are using TypeScript in your project, you can leverage LiveObjects' built-in TypeScript support to ensure type safety and enable autocompletion when working with objects on a channel."
meta_description: "Type objects on a channel for type safety and code autocompletion."
---
@@ -9,8 +10,6 @@ LiveObjects is currently Experimental. Its features are still in development and
**Building with LiveObjects?** Help shape its future by [sharing your use case](https://44qpp.share.hsforms.com/2fZobHQA1ToyRfB9xqZYQmQ).
-If you are using TypeScript in your project, you can leverage LiveObjects' built-in TypeScript support to ensure type safety and enable autocompletion when working with objects on a channel.
-
## Global AblyObjectsTypes interface
You can type objects on all your channels by defining a global `AblyObjectsTypes` interface. If you only want to type the root object for a specific channel, see the [Typing `channel.objects.getRoot()`](#getroot) section below.
diff --git a/src/pages/docs/livesync/index.mdx b/src/pages/docs/livesync/index.mdx
index 8b145df32f..5eeeac461b 100644
--- a/src/pages/docs/livesync/index.mdx
+++ b/src/pages/docs/livesync/index.mdx
@@ -1,11 +1,12 @@
---
title: About LiveSync
+intro: "LiveSync is a powerful realtime data synchronization product designed to facilitate broadcasting realtime updates from backend databases to application clients at scale."
meta_description: "LiveSync enables you to synchronize changes in your database to application clients at scale."
redirect_from:
- /docs/products/livesync
---
-LiveSync is a powerful realtime data synchronization product designed to facilitate broadcasting realtime updates from backend databases to application clients at scale. LiveSync ensures that data updates are propagated reliably, and in order, to all connected clients in realtime.
+LiveSync ensures that data updates are propagated reliably, and in order, to all connected clients in realtime.
LiveSync can be used in applications where your database is the source of truth for the application state, and that state needs to be reflected in realtime to client applications. LiveSync enables this data synchronisation while maintaining data integrity and low latency.
diff --git a/src/pages/docs/livesync/mongodb/index.mdx b/src/pages/docs/livesync/mongodb/index.mdx
index 2939fb868a..53bc19a092 100644
--- a/src/pages/docs/livesync/mongodb/index.mdx
+++ b/src/pages/docs/livesync/mongodb/index.mdx
@@ -1,10 +1,11 @@
---
title: MongoDB database connector
+intro: "Use the MongoDB database connector to distribute document changes from a MongoDB collection to end users, at scale."
meta_description: "The MongoDB database connector connects to your database and publishes document changes in realtime over Ably Pub/Sub channels"
meta_keywords: "MongoDB, MongoDB Database Connector, channel"
---
-Use the MongoDB database connector to distribute document changes from a MongoDB collection to end users, at scale. It enables you to distribute document state changes to large numbers of subscribing clients, in realtime, as the changes occur.
+The MongoDB database connector enables you to distribute document state changes to large numbers of subscribing clients, in realtime, as the changes occur.
The MongoDB database connector utilizes the MongoDB [change streams](https://www.mongodb.com/docs/v8.0/changeStreams/) feature to distribute changes from the database to clients over Ably Pub/Sub channels.
diff --git a/src/pages/docs/livesync/postgres/index.mdx b/src/pages/docs/livesync/postgres/index.mdx
index 5567b410f9..89162295b3 100644
--- a/src/pages/docs/livesync/postgres/index.mdx
+++ b/src/pages/docs/livesync/postgres/index.mdx
@@ -1,12 +1,13 @@
---
title: Postgres database connector
+intro: "Use the Postgres database connector to distribute changes from your Postgres database to end users at scale."
meta_description: "The Ably Database Connector connects your database to frontend clients in realtime through Ably channels."
redirect_from:
- /docs/livesync/connector
- /docs/livesync/connector/monitor
---
-Use the Postgres database connector to distribute changes from your Postgres database to end users at scale. It enables you to distribute records using the [outbox pattern](https://docs.aws.amazon.com/prescriptive-guidance/latest/cloud-design-patterns/transactional-outbox.html) to large numbers of subscribing clients, in realtime, as the changes occur.
+The Postgres database connector enables you to distribute records using the [outbox pattern](https://docs.aws.amazon.com/prescriptive-guidance/latest/cloud-design-patterns/transactional-outbox.html) to large numbers of subscribing clients, in realtime, as the changes occur.

diff --git a/src/pages/docs/livesync/postgres/models.mdx b/src/pages/docs/livesync/postgres/models.mdx
index 0801e0391a..e5394dd838 100644
--- a/src/pages/docs/livesync/postgres/models.mdx
+++ b/src/pages/docs/livesync/postgres/models.mdx
@@ -1,12 +1,11 @@
---
title: Frontend data models
+intro: "The Models SDK extends the capability of the LiveSync Postgres database connector with optimistic and confirmed state updates, support for loading the initial model data from the backend, and managing state updates."
meta_description: "The frontend data models to keep your frontend applications up to date with your backend database."
redirect_from:
- /docs/livesync/models/models
---
-The Models SDK extends the capability of the LiveSync Postgres database connector with optimistic and confirmed state updates, support for loading the initial model data from the backend, and managing state updates.
-
## How it works
The Models SDK is a standalone SDK built on [Ably's JavaScript SDK](/docs/getting-started/setup). It sits in your frontend applications and helps manage the state updates based on events streamed by the Postgres database connector via Ably channels.
diff --git a/src/pages/docs/livesync/postgres/quickstart.mdx b/src/pages/docs/livesync/postgres/quickstart.mdx
index 525dff7fdd..1f3b84eaef 100644
--- a/src/pages/docs/livesync/postgres/quickstart.mdx
+++ b/src/pages/docs/livesync/postgres/quickstart.mdx
@@ -1,10 +1,9 @@
---
title: Quickstart
+intro: "This quickstart will provide you with a set of instructions to get an example running locally on your machine."
meta_description: "A quickstart guide to learn the basics of integrating the Ably LiveSync product into your application."
---
-This quickstart will provide you with a set of instructions to get an example running locally on your machine. Following this, we'll cover each component of LiveSync found within the code of the example.
-
### Clone the repository
Clone the [live comments repository](https://github.com/ably-labs/live-comments):
diff --git a/src/pages/docs/messages/annotations.mdx b/src/pages/docs/messages/annotations.mdx
index ef24b54124..badc04ec50 100644
--- a/src/pages/docs/messages/annotations.mdx
+++ b/src/pages/docs/messages/annotations.mdx
@@ -1,5 +1,6 @@
---
title: Message annotations
+intro: "Message annotations enable clients to append information to existing messages on a channel."
meta_description: "Annotate messages on a channel with additional metadata."
---
@@ -7,7 +8,7 @@ meta_description: "Annotate messages on a channel with additional metadata."
Message annotations are currently Experimental, meaning the API or behaviour may change in response to customer feedback without a major SDK release.
-Message annotations enable clients to append information to existing messages on a channel. You can use annotations to implement features like:
+You can use annotations to implement features like:
* **Message reactions** - add emoji reactions (👍, ❤️, 😂) to messages
* **Content categorization** - tag messages with categories such as "important" or "urgent"
diff --git a/src/pages/docs/messages/batch.mdx b/src/pages/docs/messages/batch.mdx
index a7ebf6b153..298faf3356 100644
--- a/src/pages/docs/messages/batch.mdx
+++ b/src/pages/docs/messages/batch.mdx
@@ -1,10 +1,9 @@
---
title: Message batching
+intro: "Ably offers two different types of batching that have distinct use cases; server-side batching and batch publishing."
meta_description: "Send messages to multiple channels in a single transaction, or batch messages server-side before sending them to subscribers."
---
-Ably offers two different types of batching that have distinct use cases:
-
Server-side batching groups published messages into batches before sending them to subscribers. It is primarily intended for high-throughput scenarios where a large number of messages are being published to a channel in a short period of time. Each batch received by subscribers counts as a single message in terms of billing which can greatly reduce message costs in high-throughput scenarios.
Batch publishing enables clients to publish messages to multiple channels using a single request. It enables the same information to be easily distributed to multiple channels, or different information distributed to many channels, all using a single request. A similar feature is available to retrieve the [presence status of multiple channels](/docs/presence-occupancy/presence#batch) using a single request.
diff --git a/src/pages/docs/messages/index.mdx b/src/pages/docs/messages/index.mdx
index d3ecbad18a..147fe3ff7e 100644
--- a/src/pages/docs/messages/index.mdx
+++ b/src/pages/docs/messages/index.mdx
@@ -1,5 +1,6 @@
---
title: Message concepts
+intro: "Messages contain the data that a client is communicating, such as the contents of a chat message."
meta_description: "Messages contain data and are sent and received through channels."
redirect_from:
- /docs/rest/messages
@@ -13,7 +14,7 @@ redirect_from:
- /docs/channels/messages
---
-Messages contain the data that a client is communicating, such as the contents of a chat message. Clients publish messages on [channels](/docs/channels), and these messages are received by clients that have [subscribed](/docs/pub-sub#subscribe) to them. This pattern is otherwise known as pub/sub, as publishers and subscribers are completely decoupled.
+Clients publish messages on [channels](/docs/channels), and these messages are received by clients that have [subscribed](/docs/pub-sub#subscribe) to them. This pattern is otherwise known as pub/sub, as publishers and subscribers are completely decoupled.
-You can update and delete messages that have been published to a channel, for use cases such as:
+Use messages updates and deletes for:
* **Message editing** - allow users to edit their messages in chat-like applications
* **Content moderation** - remove or edit inappropriate content after publication
diff --git a/src/pages/docs/metadata-stats/metadata/index.mdx b/src/pages/docs/metadata-stats/metadata/index.mdx
index b00aa6977d..eeb8f87b1c 100644
--- a/src/pages/docs/metadata-stats/metadata/index.mdx
+++ b/src/pages/docs/metadata-stats/metadata/index.mdx
@@ -1,5 +1,6 @@
---
title: Metadata overview
+intro: "Metadata provides insight into activity within an app."
meta_description: "Metadata retrieves information about app activity, such as connections, channels and API requests."
redirect_from:
- /docs/realtime/channel-metadata
@@ -7,7 +8,7 @@ redirect_from:
- /docs/realtime/versions/v1.0/channel-metadata
---
-Metadata provides insight into activity within an app. This activity is related to things such as connections, channels and API requests.
+The activity exposed by metadata includes resources such as connections, channels and API requests.
Metadata can be used to check if there are any subscribers on a channel before publishing to it. By monitoring [channel lifecycle events](/docs/metadata-stats/metadata/subscribe#channel-lifecycle) publishers can know when a channel is opened, becomes active, or is no longer active. This can indicate when the last subscriber has left a channel.
diff --git a/src/pages/docs/metadata-stats/metadata/rest.mdx b/src/pages/docs/metadata-stats/metadata/rest.mdx
index bb9fda5836..cc8092b308 100644
--- a/src/pages/docs/metadata-stats/metadata/rest.mdx
+++ b/src/pages/docs/metadata-stats/metadata/rest.mdx
@@ -1,5 +1,6 @@
---
title: Metadata REST requests
+intro: "Metadata can be retrieved by REST request for a single channel, or for all active channels in an app."
meta_description: "Retrieve metadata about single channels, or enumerate through all active channels via REST requests."
redirect_from:
- /docs/rest/channel-status
@@ -7,7 +8,7 @@ redirect_from:
- /docs/rest/versions/v1.0/channel-status
---
-Metadata can be retrieved by REST request for a single channel, or for all active channels in an app. The information returned includes the current state of a channel and its [occupancy](/docs/presence-occupancy/occupancy).
+The information returned through metadata REST requests includes the current state of a channel and its [occupancy](/docs/presence-occupancy/occupancy).
Since the metadata of channels often changes frequently, Ably recommends subscribing to [realtime events](/docs/metadata-stats/metadata/subscribe) rather than polling for status updates via REST. This is because data is likely to become stale shortly after it has been received.
diff --git a/src/pages/docs/metadata-stats/metadata/subscribe.mdx b/src/pages/docs/metadata-stats/metadata/subscribe.mdx
index ea3184f7c7..dba76ba628 100644
--- a/src/pages/docs/metadata-stats/metadata/subscribe.mdx
+++ b/src/pages/docs/metadata-stats/metadata/subscribe.mdx
@@ -1,11 +1,12 @@
---
title: Metadata subscriptions
+intro: "Realtime metadata updates are provided by subscribing to metachannels using the realtime interface of an Ably SDK."
meta_description: "Retrieve metadata updates in realtime by subscribing to metachannels."
redirect_from:
- /docs/realtime/metachannels
---
-Realtime metadata updates are provided by subscribing to metachannels using the realtime interface of an Ably SDK. Metachannels are a namespace of channels beginning with the `[meta]` qualifier and they can be subscribed to in the same manner as regular [channels](/docs/channels).
+Metachannels are a namespace of channels beginning with the `[meta]` qualifier and they can be subscribed to in the same manner as regular [channels](/docs/channels).
Events are published to metachannels that provide app-level metadata about different resources, such as channels, connections and API requests.
diff --git a/src/pages/docs/metadata-stats/stats.mdx b/src/pages/docs/metadata-stats/stats.mdx
index 747b18cef0..2014ac57b9 100644
--- a/src/pages/docs/metadata-stats/stats.mdx
+++ b/src/pages/docs/metadata-stats/stats.mdx
@@ -1,5 +1,6 @@
---
title: Statistics
+intro: "Ably provides statistics at one minute intervals, aggregated by minute, hour, day and month."
meta_description: "Statistics are available at account-level and app-level to monitor your usage of Ably."
redirect_from:
- /docs/general/statistics
@@ -16,12 +17,12 @@ redirect_from:
- /docs/realtime/versions/v0.8/statistics
---
-Ably provides statistics at one minute intervals. They are aggregated by minute, hour, day and month. The most recent statistics can be delayed by up to six seconds.
-
Statistics are available as:
-* [Account statistics](#account) covering all applications in your account
-* [App statistics](#app) for each individual application
+* [Account statistics](#account) covering all applications in your account.
+* [App statistics](#app) for each individual application.
+
+The most recent statistics can be delayed by up to six seconds.
## Account statistics
diff --git a/src/pages/docs/platform/account/2fa.mdx b/src/pages/docs/platform/account/2fa.mdx
index 57ee9560f6..24bbc30d91 100644
--- a/src/pages/docs/platform/account/2fa.mdx
+++ b/src/pages/docs/platform/account/2fa.mdx
@@ -1,13 +1,12 @@
---
title: Two-factor authentication (2FA)
+intro: "Two-factor authentication (2FA) is an authentication process requiring users to utilize two different forms of verification. 2FA for your Ably account requires your password and a security token sent to your mobile phone."
meta_description: "Enable two-factor authentication for your Ably account."
meta_keywords: "2FA, two-factor, authentication, MFA"
redirect_from:
- /docs/account/2fa
---
-Two-factor authentication (2FA) is an authentication process requiring users to utilize two different forms of verification. 2FA for your Ably account requires your password and a security token sent to your mobile phone.
-
## Enable 2FA
To enable 2FA for your own user login:
diff --git a/src/pages/docs/platform/account/app/api.mdx b/src/pages/docs/platform/account/app/api.mdx
index 2421063578..1915f16add 100644
--- a/src/pages/docs/platform/account/app/api.mdx
+++ b/src/pages/docs/platform/account/app/api.mdx
@@ -1,12 +1,13 @@
---
title: API keys
-meta_description: “Manage Ably API keys by creating, updating, setting restrictions, and exploring integration options.”
+intro: "The API keys tab lists all API keys associated with your account."
+meta_description: "Manage Ably API keys by creating, updating, setting restrictions, and exploring integration options."
meta_keywords: "API keys, Ably, create key, update key, key restrictions, integration, webhooks, authentication"
redirect_from:
- /docs/account/app/api
---
-The API keys tab lists all API keys associated with your account and provides information on each key's capabilities and restrictions. You can [create a new API key](#create) and manage an existing one.
+View the information on each key's capabilities and restrictions, create new keys, and manage existing ones.