From 96514b2660c62f51f583d5575bda8523b2fc66af Mon Sep 17 00:00:00 2001 From: fabri Date: Fri, 1 Sep 2023 16:54:53 -0300 Subject: [PATCH] launch & test --- docs/tutorials/debug-and-test.md | 30 +++++++++++++++++++++-- docs/tutorials/launch.md | 41 ++++++++++++++++---------------- 2 files changed, 49 insertions(+), 22 deletions(-) diff --git a/docs/tutorials/debug-and-test.md b/docs/tutorials/debug-and-test.md index e85d5e640..c4e23c31b 100644 --- a/docs/tutorials/debug-and-test.md +++ b/docs/tutorials/debug-and-test.md @@ -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` @@ -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! 🤖 diff --git a/docs/tutorials/launch.md b/docs/tutorials/launch.md index 68175eb05..5c9e292cb 100644 --- a/docs/tutorials/launch.md +++ b/docs/tutorials/launch.md @@ -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** @@ -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) @@ -71,7 +72,7 @@ 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) @@ -79,5 +80,5 @@ Way to go! 🎉 Here are some resources and ideas for promoting your app launch: ## 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.