Skip to content

Commit

Permalink
launch & test
Browse files Browse the repository at this point in the history
  • Loading branch information
humanagent committed Sep 1, 2023
1 parent 711a037 commit 96514b2
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 22 deletions.
30 changes: 28 additions & 2 deletions docs/tutorials/debug-and-test.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ sidebar_label: Debug & Test
sidebar_position: 6
---

# Installation
# Debug & Test

To understand what you are inspecting please refer to our [architecture](/docs/concepts/architectural-overview)
It's important to test your app's performance when handling a wallet address with more than just a few conversations and messages. To do this, you can use the xmtp-debug repo to easily populate a test wallet with X number of conversations, each with Y number of messages, on the XMTP network of your choice.

Test your app's performance against these performance benchmarks. To understand what you are inspecting please refer to our [architecture](/docs/concepts/architectural-overview)

1. clone this repository [xmtp-debug](https://github.com/xmtp/xmtp-debug)
2. run `npm install`
Expand Down Expand Up @@ -77,3 +79,27 @@ $ npm start contacts list
$ npm start intros list
$ ...
```

Populating test wallets might cause you to hit the XMTP network rate limit. If this happens, wait 5 minutes and try again.

## Testing

Start by [creating a test wallet](https://xmtp.org/docs/launch/test-your-app#create-a-test-wallet) with ~2,000 conversations and 1,000 messages per conversation. Run the following performance tests:

- For a cold start (first load):
- Test that the app is interactive in <15 sec
- For a warm cache (subsequent loads and refreshes):
- Test that the app is interactive in <1 sec
- Sender UX: Time between sending a message and displaying the message in the conversation thread: ≤1 second
- Recipient UX: Time between sending a message and displaying the message in the conversation thread: ≤1 second

## **Use test message bots and addresses[](https://xmtp.org/docs/launch/test-your-app#use-test-message-bots-and-addresses)**

If helpful for testing, you can create your own message bot, such as `gm.yourappname.eth`, using [ChainJet](https://chainjet.io/) or the [XMTP Bot Starter](https://github.com/xmtp/xmtp-bot-starter). You can use the message bot to receive and send test messages.

If needed, you can also use these addresses for testing:

- gm.xmtp.eth (0x937C0d4a6294cdfa575de17382c7076b579DC176)
Message this XMTP message bot to get an immediate automated reply.
- hi.xmtp.eth (0x194c31cAe1418D5256E8c58e0d08Aee1046C6Ed0)
Message the XMTP Labs team and a human will reply, though not as quickly as gm.xmtp.eth! 🤖
41 changes: 21 additions & 20 deletions docs/tutorials/launch.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@ sidebar_position: 10

This guide will provide essential steps and recommendations to ensure that your XMTP-based app is launched successfully, optimizes performance, and is thoroughly tested.

### **A. Quality Checklist**
## **A. Quality Checklist**

Before launching, ensure your app meets the following criteria:

### **Performance**

- [ ] Implement a [local cache system](https://xmtp.org/docs/build/local-first).
- [ ] Implement a [Local-first cache](/docs/build/local-first).
- [ ] Cache conversation list **`conversations.list()`** to boost performance by 90%.
- [ ] Serialize securely stored **`DecodedMessage`** histories to reduce redundant downloads and decryptions.
- [ ] Implement message pagination.
- [ ] Compress message content with a suitable compression algorithm.
- [ ] (Bonus) Implement optimistic sending.
- [ ] Implement message [pagination](/docs/build/messages#list-messages-in-a-conversation-with-pagination).
- [ ] [Compress message content](/docs/build/messages#compress-message-content) with a suitable compression algorithm.
- [ ] (Bonus) Implement [optimistic sending](/docs/tutorials/optimistic-sending).

### **Bugs and Reliability**

Expand All @@ -28,41 +28,42 @@ Before launching, ensure your app meets the following criteria:

### **SDK and App Versions**

- [ ] Make sure to use the latest XMTP client SDK.
- [ ] Always set an **`appVersion`** value.
- [ ] Follow our testing tutorial
- [ ] Make sure to use the [latest](/docs/changelog) XMTP client SDK.
- [ ] Always set an **`appVersion`** [value](/docs/build/authentication#configure-the-client).
- [ ] Follow our [testing tutorial](/docs/tutorials/debug-and-test)

### Content Types

- [ ] Include image [attachment functionality](https://xmtp.org/docs/content-types/remote-attachment).
- [ ] Include [replies functionality](https://xmtp.org/docs/content-types/reply)
- [ ] Include [reaction emojis](https://xmtp.org/docs/content-types/reaction)
- [ ] Include [read receipts](https://xmtp.org/docs/content-types/read-receipt)
- [ ] (Bonus) Implement a [custom content type](https://xmtp.org/docs/content-types/custom-advanced)
- [ ] Include image [remote attachments](/docs/content-types/remote-attachment).
- [ ] Include [message replies](/docs/content-types/reply)
- [ ] Include [message reactions](/docs/content-types/reaction)
- [ ] Include [read receipts](/docs/content-types/read-receipt)
- [ ] (Bonus) Implement a [custom content type](/docs/content-types/custom-advanced)

### **Resolution**

- [ ] Offer forward and reverse identity resolution support for ENS.
- [ ] Offer forward and reverse [identity resolution](/docs/tutorials/identity-resolution) support for ENS.
- [ ] (Bonus) Support for UNS, cb.id, .lens, Cyberconnect.

### **Metrics**

- [ ] Enable your app to keep track of:
Enable your app to keep track of:

- [ ] Number of active wallets: At least one message sent.
- [ ] Number of active conversations: At least one message.
- [ ] Number of returning conversations: A minimum of one message from each participant.

## B. **Launch your app[](https://xmtp.org/docs/launch/#launch-your-app)**
## B. **Launch your app[](/docs/launch/#launch-your-app)**

Way to go! 🎉 Here are some resources and ideas for promoting your app launch:

- [ ] Register for the Polygon [dApp Store Kit](https://docs.dappstorekit.io/docs/how%20to%20use%20the%20dapp%20store%20kit/dapp-registry-management/), which enables developers to launch their own dApp stores and list any dApp, including their own. To learn more, see the [dApp Store Kit Wiki](https://www.notion.so/a3a9e7518b80400589aee8164550838e?pvs=21).
- [ ] Check out these launch posts for apps built with XMTP:
- [Buttrfly](https://x.com/0xMoe_/status/1603126849852563456?s=20&t=wHy9mBrNR5ri146CbhCMUw)
- [Coinbase Wallet](https://x.com/CoinbaseWallet/status/1679178581224873985?s=20)
- [Bello](https://twitter.com/xmtp_/status/1693978790618095972)
- [Buttrfly](https://x.com/0xMoe_/status/1603126849852563456?s=20&t=wHy9mBrNR5ri146CbhCMUw)
- [LensPort](https://x.com/lensport_io/status/1602370688139939841?s=20&t=wHy9mBrNR5ri146CbhCMUw)
- [Lenster](https://x.com/lensterxyz/status/1588203593257009152?s=20&t=wHy9mBrNR5ri146CbhCMUw)
- [meTokens](https://x.com/meTokens/status/1597983759462436870?s=20&t=wHy9mBrNR5ri146CbhCMUw)
- [Orb](https://x.com/orbapp_/status/1618659601154715649?s=20)
- [ ] Need an XMTP logo for your announcement?
- See the [XMTP Brand Guidelines](https://github.com/xmtp/brand)
Expand All @@ -71,13 +72,13 @@ Way to go! 🎉 Here are some resources and ideas for promoting your app launch:
- [@xmtp\_](https://x.com/xmtp_) on Twitter
- [@xmtp](https://warpcast.com/xmtp) on Farcaster
- [@xmtp_network](https://www.threads.net/@xmtp_network) on Threads
- [ ] Have your app added to [Built with XMTP](https://xmtp.org/built-with-xmtp)
- [ ] Have your app added to [Built with XMTP](/built-with-xmtp)
- [Submit this form](https://forms.gle/p1VgVtkoGfHXANXt5)
- [ ] Have your project repo added to [awesome-xmtp](https://github.com/xmtp/awesome-xmtp)
- [Create a PR](https://github.com/xmtp/awesome-xmtp)
- [ ] Create a commemorative [POAP](https://app.poap.xyz/) for your launch to reward early users

## C. **Post-Launch Engagement**

- [ ] Keep in touch using the [XMTP community platform](https://xmtp.org/docs/contribute) that works best for you. This helps ensure that you hear about the latest SDK and content type releases, as well as upgrade and deprecation notices.
- [ ] Keep in touch using the [XMTP community platform](/docs/contribute) that works best for you. This helps ensure that you hear about the latest SDK and content type releases, as well as upgrade and deprecation notices.
- [ ] Message `prxshant.eth` using [xmtp.chat](https://xmtp.chat/) to share your app metrics. Let’s test hypotheses and learn together to help ensure interaction success and improve XMTP for all.

0 comments on commit 96514b2

Please sign in to comment.