Skip to content

Instantly share code, notes, and snippets.

@stream7
Forked from anton-pt/rfc-template.md
Created August 25, 2025 20:45
Show Gist options
  • Save stream7/f5b6d279f352164dbd920df6eb4a5c5e to your computer and use it in GitHub Desktop.
Save stream7/f5b6d279f352164dbd920df6eb4a5c5e to your computer and use it in GitHub Desktop.
Request for Comments template

RFC: Feature Name

One paragraph explanation of the feature.

Motivation

  • 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)

User-Level Explanation

  • 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

User Interface & Experience

  • 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

Technical Architecture

  • 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

Implementation Planning

  • 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

Drawbacks

  • Why should we not do this?
  • What are the costs or risks involved?

Rationale and Alternatives

  • 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?

Prior Art

  • How have other products solved this problem?
  • What can we learn from their approaches?
  • How does our approach differ and why?

Success Metrics

  • 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?

Unresolved Questions

  • 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?

Future Possibilities

  • 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?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment