Skip to content

Writing Good Feature Requests

Alan Dipert edited this page May 10, 2019 · 4 revisions

Do you have an idea for making Shiny better? We'd love to hear about it! Here are some tips from the Shiny team on writing good feature requests.

Make sure it's unique

Your first job when filing a feature request is to make sure that it isn't already filed. We get feature requests frequently, so there's a reasonable chance that someone else has had the same idea; just search our issue list! Feature requests are marked with the Type: Enhancement tag. Here are our most popular requests:

Open Shiny Feature Requests

If you find that someone else has already filed the feature request, don't just move on! Instead, help us know that you're interested, too:

  • Add a thumbs-up to the feature request to vote for it. This helps the request become more visible to the team.
  • Optionally add a comment with any insight and background you have that isn't already part of the conversation.

Describe your use case

A good feature request describes the context in which the feature will be used. It's easy to forget to write about context because you already know it so well that it seems obvious! Just like any tool, though, the best improvements are made with a deep understanding of how it's used.

Vague

Add an option to click action buttons programmatically.

Improved

While I'm developing apps, I've noticed that I'm much more productive when I'm able to programmatically trigger behaviors instead of manually clicking on action buttons after every page reload. Unfortunately, doing this currently means I need to write special code that I have to remember to remove once the app is ready to deploy. If I could trigger buttons programmatically, I wouldn't have to write as much special code.

Describe the problem and propose a solution

Most feature requests only describe solutions -- that is, a specific product improvement.

Make your feature request better by describing the problem you are facing, and only then proposing the feature request as one solution to that problem. You might find that the Shiny team (or another user) proposes a different solution you hadn't thought of.

Solution Only

Make it so I can drop .csv files on the page.

Problem and Solution

Users of my application frequently need to upload .csv files and waste significant time finding the individual fileInput in the app each time. If they could the drop files anywhere on the page they would save a lot of time.

Link to examples and research

  • Is there already software that has the behavior you're interested in? What is it, and how does it work?
  • Can you give a concrete example of how you'd use the feature? A relevant code sample?
  • What other ways did you try to solve your problem?
  • Are there any relevant existing standards or conventions?
  • Can you draw a picture of what you're imagining?

You get the idea!

State the title simply and succinctly

There's no need to decorate the title of your issue with words like Enhancement or Request. Use your feature request's title to state it as simply and clearly as possible, with ordinary casing. This will help other people find it when they're looking to contribute.

Bad Title

[ENHANCEMENT] Icons are missing, need to upgrade FontAwesome to add more icons

Good title

Upgrade FontAwesome

Are you a developer?

There's no better way to get your feature request implemented than to do so yourself. Shiny is primarily written by a core team, but we frequently take pull requests from the community; see our CONTRIBUTING guide for details.

Need help?

If you find all this daunting, or only have a fuzzy idea of what you're after, you might try posting on the Shiny community forum to collect ideas and feedback from other Shiny users.

Thank you!

Many of the best parts of Shiny started out as ideas from the user community, and we're very grateful for each one. Thanks so much for taking the time to write up a thoughtful feature request.