Skip to main content

Contribute Ideas

This page covers the full ideas-to-design journey: sharing a raw idea in a discussion, converting it into a formal feature request, and proposing the technical design once a feature is approved.

Share an Idea

All features start with a problem worth solving. Two paths exist depending on how well-formed the idea is:

Option 1

Discussion

Use when the idea needs refinement or community input. Problem needs exploration before a formal request.

Create discussion → Collaborate → Create issue
Start a Discussion →
Option 2

Feature Issue

Use when you have a clear, well-defined problem with answers to: What? Why? Who?

Create issue → Triage → Assignment
Open a Feature Issue →

When in doubt: Start with a discussion. You can always create an issue later.

Writing a good feature issue

Before opening an issue, make sure you can answer these three questions:

01
What problem are we solving?
Be specific about the problem, not the solution. Describe the limitation and its negative impact on users.
02
Why should we solve this now?
Provide justification: user impact, business value, technical debt, or compliance requirements.
03
Who are we solving this for?
Identify user personas: end users, administrators, developers, security teams — and their goals.

What Happens After You File an Issue

Maintainers will triage the issue (review strategic fit, assess scope, add labels) then decide whether it's approved for work. If approved, it's open for anyone — including you — to pick up.

You can stop here

Creating a well-defined feature issue is a complete contribution. You don't need to design or implement it yourself.

Propose a Design

Once a feature issue is approved and assigned to you, create a design discussion to propose how you'll solve it.

1
Create a Design Discussion

Go to GitHub Discussions, select the "Design" category, and outline your high-level approach to solving the assigned problem.

Open Design Discussion →
2
Community Collaboration

The community will ask clarifying questions, identify edge cases, and suggest alternatives. Respond promptly and be open to feedback. Most discussions reach clarity within 1–2 weeks.

3
Design Review

Maintainers formally review the proposal. Outcome: Approved → move to implementation; Needs Revision → address feedback and iterate; Rejected → explained and closed.

Approved — begin implementation

Once approved, you (or someone else) can implement the feature. You're credited as the design author regardless.

See Contribute Code →

Review Outcomes

OutcomeMeaningNext step
✅ ApprovedDesign is soundMove to Contribute Code
🔄 Needs RevisionGood direction, changes neededAddress feedback, iterate (typically 1–2 cycles)
❌ RejectedFundamental issues foundMaintainer explains; discussion closed with documentation
note

Rejection is not a reflection on you — it's how the process protects the codebase. Better to catch issues during design than implementation.

ThunderID LogoThunderID Logo

Product

DocsAPIsSDKs
© WSO2 LLC. All rights reserved.Privacy PolicyCookie Policy