One paragraph explanation of the feature.
- What problem does this solve for users?
- What is the background context needed to understand this problem?
- Specific use cases where this feature helps users
- How those use cases are currently handled (if at all)
- Introduce new concepts and terminology
- Show concrete examples of the feature in use
- Explain how users should think about and use the feature
- Include migration guidance or backward compatibility notes if applicable
- How will users discover and interact with this feature?
- Include wireframes, user flows, or mockups to illustrate the concept
- Describe key UI states (loading, error, empty, populated)
- Discuss responsive behavior and accessibility considerations
- Identify reusable components needed or created
- System design diagram showing components and interactions
- API contracts and data models (with examples)
- Database schema changes (if applicable)
- Performance requirements and considerations
- Security and privacy considerations
- Monitoring and observability plan
- Phasing strategy (how will this be broken into deliverable chunks?)
- Dependencies on other systems or teams
- Timeline estimates and key milestones
- Testing strategy and test coverage expectations
- Required tooling or infrastructure changes
- Why should we not do this?
- What are the costs or risks involved?
- Why is this design the best in the space of possible designs?
- What other designs have been considered and what is the rationale for not choosing them?
- What is the impact of not doing this?
- How have other products solved this problem?
- What can we learn from their approaches?
- How does our approach differ and why?
- How will we know if this feature is successful?
- What metrics will we track?
- What user feedback mechanisms will we implement?
- When will we evaluate the feature's performance?
- What parts of the design do you expect to resolve through the RFC process?
- What parts will be resolved during implementation?
- What related issues are out of scope for this RFC?
- How might this feature evolve over time?
- What related features might build on this foundation?
- How does this fit into our longer-term product vision?