The beauty of Shiny.

shiny hexagon

I call myself a Shiny developer. Fancy name, sounds cool. But what is Shiny exactly and, more importantly, what can we do with it? I will tell you all about it in this blog post.

Shiny explained

If you are not a Data Scientist yourself, or if you are new to R, you probably don’t have any experience with Shiny. Shiny is an R package that makes it easy to develop interactive web applications. Interactive web applications can be used to publish your work via a web browser so that everyone can use it, programmer or not. Shiny applications look awesome and help people to really understand their data.

Shiny can be used for multiple purposes. Most people use Shiny to:

  • Create dashboards that summarize important data for the user.
  • Replace PDF reports with interactive applications that allow easy navigation to the results of interest.
  • Communicate complex Data Science solutions to non-technical audience.
  • Create interactive demonstrations for teaching purposes.
  • Develop self-service Data Science tools for common tasks.

The reason why Shiny is so popular as a development tool, is that is so easy to develop applications. The basics of Shiny provide you with the necessary HTML, CSS, and JavaScript to perform common tasks of an application, like asking input, generating table output, and creating visualizations. This means that the developer does not need to know HTML, CSS, and JavaScript up to the point that they want to go beyond the basics of Shiny. Developing a basic application is within reach for a larger number of developers thanks to the introduction of Shiny. I didn’t think I could make an application before being introduced to Shiny. A whole new world!

Example of a simple Shiny application

Since the user communities of both R and R Shiny are huge, developers can find a lot of published applications and example applications to use as a basis for their own application. Also, on for example Stack Overflow, developers can find anything related to the development of Shiny applications. The large R community contributes to the popularity of Shiny applications. The more people use Shiny, the more mature the Shiny package becomes.

To develop and publish a Shiny application, you will need just a few things:


Whether there are resources (in terms of money) or not, everybody can publish a Shiny application. There a full open source solutions for those who want to share their work with the world. But, for individuals and companies who want more privacy and security, there are commercial solutions as well. This makes a Shiny application flexible and usable for every user out there.

Of course, Shiny is not the only framework out there that provides in the needs to easily build an application. For example, Dash is a Python web application framework with the same approach as Shiny. But contrary to Shiny, Dash is still a little rough around the edges. Dash was built to be customized, so developers who love hacking and tweaking may find a friend here. Shiny was built to lower the barrier to entry for creating web applications, but is also hackable for those who want to build something complex and customized. You can’t go wrong with either, and it depends on preferences, but the reason why both frameworks were built can be felt when choosing one over another.

As a Data Scientist, I love working with R and R Shiny. It’s not only the relatively easy usage, but also the great community and the maturity of the tools that are being developed. All those elements together make it possible to develop awesome, secure, and easy-to-use applications for every kind of user. Dashboards, surveys, e-mail forms, self-service data analysis solutions, anything is possible!

To my fellow Data Scientist: what do you love about Shiny? And to the non-Data Scientist: do you see the opportunities that Shiny provides?

If you need help setting up a Shiny web application, check the website for more information on how I can help.


Leave a Reply

Your email address will not be published. Required fields are marked *