Release Lifecycle
Purpose 🎯
Standardize the way we think, talk, and execute different stages of product/feature development. As a startup, we want to stay agile so while the usual release cycle is pre-preview → dev preview → GA, we DON’T necessarily have to follow each step as long as we have the right justification.
Having shared internal terminology will not only improve internal communication but also ensure we don’t miss anything critical as a part of releasing new features.
DISCLAIMER: this is not a rigid framework that we need to force all features & updates to.
Pre-Preview 🧱
Goal:
Share repo with partners and devs eagerly waiting for the feature. In your outreach, set clear expectations that the feature is work in progress and not ready to be used. (e.g. Mobile SDKs as of Dec 6)
Criteria:
- Repo public
- We expect to GA in the near future (1-2 months)
- Medium confidence (i.e. low chance we’ll completely change direction)
README text:
COMING SOON! This is a work in progress and should not be used yet. Follow along in the tracking issue for updates.
Sample Slack/Discord Outreach:
gm fam 💫 We’re excited to share a sneak peak of the latest stuff we’ve been working on at XMTP. You asked for [Mobile SDKs] and we’ve heard you - here’s the [repo] where you can check it out. Do note that it’s a work in progress and not ready for adoption. Follow along in the tracking issue for updates 👀
Developer Preview/Early Access 🏗️
Goal:
Invite partners to test, validate, and build with us. Any and all devs are free to use it but we won’t do marketing or announcements. This is an opportunity for us to test get dev feedback and add polish to the feature before we GA. (e.g. Memos SDK as of Dec 6)
High level criteria:
- Repo public
- Functionality usable/inspirational (no matter however buggy)
- Clear warning of limitations & constraints
- README that functions a lightweight doc/tutorial
README text:
[Feature X] is in Developer Preview. Software in this phase does is not formally supported, will change without warning, and may not be backwards compatible. We do NOT recommend using Developer Preview software in production applications.
Sample Slack/Discord Outreach:
gm fam 💫 We’re delighted to announce that the [Memos SDKs] you’ve been eagerly waiting for are in Developer Preview. We’d love your feedback as you explore the repo and start BUIDLing 🏗️ Please note that it’s not ready for production workloads and may change as we iterate based on feedback from devs like you
General Availability (GA) 🏛️
Goal:
Feature is ready for production use and can be leveraged by the broader dev community by following our docs & tutorials. Launch announcement, publish blog, post on socials (Twitter, Farcaster, Lens, XMTP DM our dev community), share in Discord, and get max dev mindshare. (e.g. XMTP v2 as of Dec 6)
Criteria:
- Repo public
- Ready for production usage (doesn’t necessary imply 0 bugs)
- High availability, high confidence
- Acceptance criteria in PRD
- Docs published on xmtp.org
- Tutorials published on GitHub
- Integrated into example-react-chat app or VIP partner application (e.g. Lenster)
- GTM plan ready
- Developer advocacy prepped
- Marketing material prepared (blog, tweet thread, YT video)
README text (optional → explicit info not required for GA):
[Feature X] is in General Availability (GA) and open for use in production. Be aware when a new feature impacts existing functionality, it might change the way you or your users use XMTP.
Sample Slack/Discord Outreach:
gm fam 💫 We’re electrified to introduce [XMTP v2]. The latest version brings [conversation filtering] and [improvements to privacy]. We heard you loud and clear that you’d like to [“Deliver the highest standard in messaging security, while allowing me to build powerful end-user experiences in my app”]. As we continue BUIDLing web3 messaging together, we’d love to hear what you think about the latest release 🤔 Share you feedback with us on Twitter, Discord, Lens, or just XMTP message it 📧