Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XMTP V3 alpha docs for building an inbox #61

Closed
wants to merge 3 commits into from
Closed

XMTP V3 alpha docs for building an inbox #61

wants to merge 3 commits into from

Conversation

jhaaaa
Copy link
Collaborator

@jhaaaa jhaaaa commented Nov 1, 2024

Adds docs to build an inbox with DMs and group chat with MLS using XMTP V3 - alpha

Preview: https://docs-xmtp-org-git-v3-alpha-ephemerahq.vercel.app/inboxes/create-client

@jhaaaa jhaaaa requested a review from a team as a code owner November 1, 2024 23:22
Copy link

vercel bot commented Nov 1, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
docs-xmtp-org ✅ Ready (Inspect) Visit Preview 💬 Add feedback Nov 3, 2024 6:49pm


### ConversationContainer interface

Serves as a unified structure for managing both group chats and DMs. It provides a consistent set of properties and methods to seamlessly handle various conversation types.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added this paragraph above - correct?


### Group class

Represents a group chat conversation, providing methods to manage group-specific functionalities such as sending messages, synchronizing state, and handling group membership.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added this paragraph above - correct?


### Dm class

Represents a DM conversation, providing methods to manage one-on-one communications, such as sending messages, synchronizing state, and handling message streams.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added this paragraph above - correct?


Use the following methods to provide users with control over their messaging experience, ensuring their inboxes are tailored to their preferences and free from spam.

### Get new consent records from the network - coming soon
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added "coming soon" per Naomi's comment in the Notion draft - OK?


*Replaces V2 `client.contact.allowGroups([groupIds])`*

### Stream consent records in real-time - coming soon
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added "coming soon" per Naomi's comment in the Notion draft - OK?


With XMTP, you can enable real-time push notifications to keep users updated on new conversations and messages.

For best practices, see [Best practices for push notifications](/notifications/notif-best-practices).
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Needs a review and refresh, I think... adding a doc task for this


For best practices, see [Best practices for push notifications](/notifications/notif-best-practices).

### **Get a Welcome message topic ID**
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

OK to include this section per Naomi's comment in the Notion draft - should this have a "coming soon"?


### **Get a Welcome message topic ID**

Get the topic identifier for a new group chat or DM conversation. This topic ID tells your app where to listen on the network for push notifications about the start of a new group chat or DM.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This used to say: a new group chat or DM

I updated it - but I don’t think I got it quite right? This is specific to an account (alix?) - so we are looking for a topic ID for all new conversations created for alix?


### **Get a V3 message topic ID**

Get the topic identifier for a group chat or DM conversation that’s already in progress. This topic ID tells your app where to listen on the network for push notifications about any new messages in a specific group chat or DM conversation.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

this used to say: The conversation of the message

I updated it - but I don’t think I got it quite right?

*Replaces V2 `/xmtp/0/m-$addresses/proto`*

### Subscribe to topics

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added paragraphs below - accurate?

await subscribeAll([alix.welcomeTopic(), ...topics])
```

### Receive push notifications
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

updated this section - accurate?

```


### Run a push notification server
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I added this section - accurate?

- **Integration with push notification services**: The server interfaces with platform-specific push notification services, like [Apple Push Notification Service](/notifications/build-notifications#understand-apple-entitlements-for-ios-apps) (APNs) for iOS or Firebase Cloud Messaging (FCM) for Android. It sends the processed notifications to these services, which then deliver them to the user’s device.

To learn more about running a push notification server, see:

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Valid resources? Or maybe we shouldn't point to the Android and iOS examples if they haven't been updated to v3 yet?

@@ -0,0 +1,172 @@
## Build the inbox

:::warning[🚧 XMTP V3 Alpha]
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Open to feedback on this callout. I know that the XMTP v3 group chat SDK features are used in the Converse production app - so calling about XMTP V3 as alpha seems inaccurate.

However, I was thinking that if we are talking about building an app with both DMs and group chat on V3 - this is what could qualify this as a beta?

Also, if we are talking about an existing app built with V2 - starting to build DMs and group chat on V3 - this could qualify as a beta in that we still need to define a recommended migration path.

Again - open to all feedback on this!


:::

### Create an account SigningKey

Choose a reason for hiding this comment

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

I think we need to align Signer and SigningKey usage

The functions are returning Signer, but then using a SigningKey in
Client.createV3(SigningKey, {
below

:::warning[🚧 XMTP V3 Alpha]

The XMTP V3 SDKs are in **alpha** status and ready for you to start experimenting with.
However, we do **not** recommend using alpha software in production apps. Software in this status will change as we add features and iterate based on feedback.
Copy link
Member

Choose a reason for hiding this comment

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

Should we / do we really need to say this with Converse already using v3 in production?


:::warning[🚧 XMTP V3 Alpha]

The XMTP V3 SDKs are in **alpha** status and ready for you to start experimenting with.
Copy link
Member

Choose a reason for hiding this comment

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

"Experiment" feels off -- the reader is ready to build, even if v3 isn't ready for them.

@jhaaaa
Copy link
Collaborator Author

jhaaaa commented Nov 15, 2024

Closing - handled via #75

@jhaaaa jhaaaa closed this Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants