My application for the Shiny Contest (2020)

A presentation of the application I submitted to the Shiny Contest 2nd edition.

Etienne Bacher

One of the greatest things about R is the possibility to build websites quite easily with R Shiny. I started to create apps with Shiny almost immediately after having discovered it. This was in May last year and two months later I thought it would be a great idea to build an app to treat more easily World Bank data. Indeed, in my field, World Development Indicators (WDI) are often used and I thought it would be useful to have a graphical interface where we can import and treat these indicators.

So in July last year I started to work on this. Besides building something useful, I considered this as a good opportunity to practice with R Shiny. I worked on that irregularly during the rest of the year. Sometimes I considerably improved my app in a week and sometimes I spent two months not thinking about it.

In January, I was quite stuck: my app required to generate pieces of UI (User Interface) on the fly and I didn’t know how to do that. But when I saw the announcement for the second edition of the Shiny Contest, I convinced myself to give it a try and worked a lot on my app, especially since I finally understood how to use modules. Therefore, after a few weeks, I could finally deploy my app and participate to the contest. Given the incredible apps of other participants (just look at the “Shiny Contest” tag on RStudio Community), I know that there is not a chance that I win something but nonetheless I am very proud of having the possibility to show what I can do.

“That’s very good”, you may say, “but what does your app do?”. Well if you are familiar with the WDIs, you know that each indicator has an ID (like “NV.AGR.TOTL.ZS”). Using this ID in my app, you can import the dataset related, choose the type of data you want (cross-country, time series, panel data), the country/countries and year(s) you want and compute the logarithm, the squared value and the lagged value of the variable. You may also generate a plot that you can download for this dataset. You can import and manipulate as many datasets as you desire and when you are done, you can merge them in a final dataset that is also downloadable. Finally, since reproducibility is a big aspect in science, all the manipulations you did are translated into R code so that you can copy and paste this code in a fresh R session and it will reproduce everything you have done. This was made possible thanks the great (but still experimental) shinymeta package1.

You can try the app here, but if it has been removed by the time you go checking it, you may find the source code for the whole app on GitHub.

  1. Luckily, I have discovered this package a month before I launched my app, in a rstudio::conf 2020 presentation by Carson Sievert↩︎


If you see mistakes or want to suggest changes, please create an issue on the source repository.


Text and figures are licensed under Creative Commons Attribution CC BY 4.0. Source code is available at, unless otherwise noted. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".


For attribution, please cite this work as

Bacher (2020, April 8). Etienne Bacher: My application for the Shiny Contest (2020). Retrieved from

BibTeX citation

  author = {Bacher, Etienne},
  title = {Etienne Bacher: My application for the Shiny Contest (2020)},
  url = {},
  year = {2020}