Skip to content

Comments

[FTF-465] Adds a Product guidance page#3081

Open
umair-ably wants to merge 2 commits intomainfrom
FTF-465
Open

[FTF-465] Adds a Product guidance page#3081
umair-ably wants to merge 2 commits intomainfrom
FTF-465

Conversation

@umair-ably
Copy link
Contributor

Description

Adds a Product guidance page which details which products and/or interfaces we'd expect our users to use for their usecase

Checklist

@coderabbitai
Copy link

coderabbitai bot commented Jan 7, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch FTF-465

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Member

@paddybyers paddybyers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see comments

@umair-ably umair-ably force-pushed the FTF-465 branch 3 times, most recently from 0efa7b8 to 7221fe9 Compare January 13, 2026 12:04
Copy link
Member

@paddybyers paddybyers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've happy that my comments have been addressed, but @m-hulbert should also review from the PoV of the scope of this doc and where it fits in the IA, etc.

@umair-ably
Copy link
Contributor Author

@m-hulbert just a nudge on this please - it's a lot smaller than the auth PR and would be nice to get this over the line

…rfaces we'd expect our users to use for their usecase
@GregHolmes GregHolmes added the review-app Create a Heroku review app label Feb 17, 2026
@ably-ci ably-ci had a problem deploying to ably-docs-ftf-465-gd3rtpfvkwja February 17, 2026 15:52 Failure
Copy link
Contributor

@m-hulbert m-hulbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few minor comments but mostly looks good.


When building with Ably, you need to make several decisions:

1. **Which product**: Pub/Sub, Chat SDK, Spaces SDK, or LiveSync
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should list all the products here (we're missing LO and AIT) and shouldn't be equating products with SDKs.

When building with Ably, you need to make several decisions:

1. **Which product**: Pub/Sub, Chat SDK, Spaces SDK, or LiveSync
2. **Which features**: LiveObjects for synchronized state, channel rules for per-namespace configuration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LiveObjects is technically a product so this looks a little odd. "channel rules" should be just "rules" too please.


Use Pub/Sub when:

* You need maximum flexibility in message structure and channel design
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Full stops on the end of sentenced bullets please.

* You're building custom realtime features not covered by purpose-built SDKs
* You need to integrate with existing backend systems

With Pub/Sub, you can use [channel rules](/docs/channels#rules) to configure namespace-specific settings such as message persistence, client identification requirements, and push notification enablement.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"channel rules" --> "rules" throughout.


### Chat SDK

[Ably Chat](/docs/chat) provides purpose-built APIs for building chat functionality. It handles the complexities of architecting chat features so you don't have to.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these intros need to be consistent:

Use Pub/Sub when you need full control over your message architecture or are building custom realtime features.

It handles the complexities of architecting chat features so you don't have to.

These have quite a a different tone of voice.

* 1:1 customer support chat
* Group conversations
* Livestream chat with thousands of users
* Any application requiring rooms, messages, typing indicators, reactions, or presence
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we make this more targeted - e.g. "any application requiring chat functionality"?

| [LiveMap](/docs/liveobjects/map) | Synchronized key-value stores |
| [Batch operations](/docs/liveobjects/batch) | Atomic updates across multiple objects |

Pub/Sub channels, without LiveObjects, can also be used as a durable store of channel state, and for client hydration, but in this case the state is simply the content of messages sent on the channel. See [history](/docs/storage-history/history) and [rewind](/docs/channels/options/rewind) for further discussion of how this pattern applies.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a fan of "see history" type things. Could we make it more like:

"... the content of messages sent on the channel, retrived using features such as history and rewind"?


## Combining SDKs with Pub/Sub

Purpose-built SDKs like Chat and Spaces are built on top of the Ably Pub/Sub SDK. When using a purpose-built SDK, you can also use Pub/Sub features directly over a shared connection. Do not share the use of specific channels with the purpose-built SDK, but share the connection.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that we're including this, but should we touch on how a shared channel works briefly?

* **Consider message ordering**: Messages on SDK-managed channels and custom Pub/Sub channels are independent; design your application accordingly
* **Handle connection state once**: The underlying Realtime client manages connection state; don't add redundant connection handling for custom features

## Quick reference
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a huge fan of this section to be honest as we can't really cover the same level of nuance as the individual ones.

| No SDK available for platform | Protocol adapters or REST HTTP API |
| Migrating from Pusher or PubNub | Protocol adapters |

## Next steps
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'd rather link out to getting started guides and/or examples for people to get hands-on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-app Create a Heroku review app

Development

Successfully merging this pull request may close these issues.

5 participants