Conference Program

Keynote Speakers

Winston Chang
Lessons and opportunities with Shiny
for Python
Colin Fay
Production is like ultra running: brutal, ungrateful, but worth every step
Veerle van Leemput
Say goodbye to unnecessary waiting: mastering asynchronous programming in Shiny
Filip Stachura
Transforming Business with Open Source: Insights from the Pharma Industry
Three days of free, online Shiny content ranging from tips and tricks from the experts, to fascinating community case studies, and examples of enterprise scaling solutions.
Our program is packed with presentations, tutorials and panel discussions arranged in different categories – find your most desired topics and save your picks!
All times are CET (Central European Time) which is Coordinated Universal Time (UTC) +1 hour.
Live presentations are scheduled to overlap appropriate business hours for time zones across Europe, Africa, and the Americas.
  • 03/15/2023
  • 03/16/2023
  • 03/17/2023


2:00 pm - 4:15 pm

2:00 - 2:15 - Opening/Welcome

Damian Rodziewicz, Iwona Matyjaszek

Let's get this conference started! Opening remarks from Damian Rodziewicz - President at Appsilon and Iwona Matyjaszek - Sales Development Representative at Appsilon

Wed 2:00 pm - 4:15 pm
damian rodziewicz, opening

2:15 - 2:45 PM - Sharing app state between Shiny modules

Marcin Dubel

One of the powerful features of Shiny is the ability to create modularised apps, where different parts of the app are organised into separate modules. That approach allows to avoiding code duplication and keeps the scripts simple. However, managing the state of a Shiny app that consists of multiple modules can be challenging. When using modules the purpose of the design should be to keep them as independent as possible. Yet modules are a part of the larger application and have to react to user actions in other modules. In this talk, we will explore different techniques for sharing app state between Shiny modules. We will discuss the use of global variables, reactive values, and custom modules for managing app state. We will also discuss best practices for debugging and testing Shiny apps with multiple modules. Finally, we will demonstrate how these techniques can be used to build more complex and scalable Shiny apps.

Marcin is a Staff Engineer at Appsilon, focusing on establishing and implementing best practices in Appsilon projects. Before joining Appsilon he worked as a Shiny programmer and consultant for a pharmaceutical company. His academic background is in statistics and economics. He is interested in improvements in the process of software development and he enjoys sharing his knowledge with other teams.
Wed 2:00 pm - 4:15 pm
Marcin Dubel, Modules, Shiny

2:45 - 3:15 PM - GeNorms: An R Shiny App to Improve Gender Equitable and Social Values in Sub-Saharan Africa

Emmanuel Olamijuwon

The African Union Strategy for Gender Equality and Women’s Empowerment (2018-2028) aims to increase women’s empowerment in all spheres of life, from political to economic and social. However, harmful gender norms continue to hamper economic growth by denying millions of girls their right to education, jobs and opportunities to advance their health and well-being. This work represents part of a larger effort to track, model and address gender-equitable attitudes in African countries. We developed and deployed predictions from a machine learning algorithm to R-Shiny web application (GeNorms) to help individuals assess their gender attitudes as well as their intersection with other social values like religious tolerance, social cohesion, political values, social class and other relevant demographic characteristics. The GeNorms shiny app is based on Argon– a user-friendly and open-source dashboard based on Bootstrap 4. The app encompasses three unique modules and leverages several r-packages for data science and a package of UI helpers. First, we leveraged {leaflet} to visualise geographic patterns in gender equitable attitudes across three countries (Kenya, Nigeria and Zambia). We also used {shinysurveys} to collect user responses to predict their gender-equitable attitudes. Based on the predictions derived from the user responses, we provide additional information to help individuals with less equitable attitudes improve their knowledge and ultimately enhance their attitudes towards gender equality. Overall, our app has the potential to promote gender equitable norms across African countries while also challenging other harmful social norms.

Emmanuel Olamijuwon (Dr.) is an R-enthusiast passionate about leveraging innovative methods and data sources for improving social and health behaviours. He is currently a Research Fellow at the University of Southampton, where he focuses on evaluating a behavioural intervention for improving population health in sub-Saharan Africa. Besides his work, he is passionate about spreading data science skills across Africa. He co-organises the Eswatini UseR group in Eswatini and the Summer Institute in Computational Social Science in Nigeria and Ghana.
Wed 2:00 pm - 4:15 pm
Case Study
App, Emmanuel Olamijuwon, Equality, Shiny

3:15 - 3:45 PM - Why modules matter for new Shiny developers

Emily Riederer

R users are increasingly trained to develop with good principles such as writing modular functions, testing their code, and decomposing long individual scripts into R projects. In recent years, such approaches have crept earlier into introductory R education with the realization that applying best practices is not an advanced skill but rather empowers beginners with a more robust structure. However, new Shiny developers are confronted with two challenges: they must simultaneously learn new packages and concepts (like reactivity) which introductory tutorials demonstrate how to write their apps as single scripts. This means small changes are harder to test and debug for the groups that need it the most. Although Shiny modules offer a solution to this exact problem, they are regarded as an advanced topic and often not encountered until much later in a developer’s journey. In this talk, I will demonstrate a workflow to encourage the use of modules for newer Shiny users. I argue that a ‘module-first’ approach helps to decompose design into more tangible, bite-sized, and testable components and prevent the code sprawl that makes Shiny feel intimidating. Further, this approach can be even more powerful when developing Shiny applications in the enterprise setting and onboarding new team members to existing applications.

Emily Riederer is a Senior Analytics Manager at Capital One where she has led teams focused on all parts of the data stack -- from designing high-quality datamarts, analytical tools, BI reporting, and machine learning models. Outside of work, Emily enjoys pro-bono data science projects, writing about data and computational reproducibility (on her blog and as a coauthor of The R Markddown Cookbook and 97 Things Every Data Engineer Should Know), and volunteering on the editorial board of rOpenSci and as an a technical textbook reviewer for CRC Press.
Wed 2:00 pm - 4:15 pm
App, Emily Riederer, Modules, Shiny

3:45 - 4:15 PM - ODAPES: A Low-Code Extension for R-Shiny to Democratize Digital Agriculture

Michael C Rubin

ODAPES’ Mission is to Democratize Digital Agriculture by giving all farmers, farming service providers and local cooperatives access to a low-cost, cutting-edge, and customized Digital Agriculture App . R-Shiny is the perfect tool for this task. However, despite this great package it is still a challenge to build customized, production-grade R-Shiny App at scale, because the needed R coding skills are not abundant . To address this challenge, we have developed a Low-Code Extension to R-Shiny, specific for ODAPES-Style Digital Agriculture Apps. This allows junior developers to create in a matter of hours production grade Apps with access to different microservices like API’s, GIS algorithms and RMarkdown reports. The system includes two parts: (1) A modular R-Shiny App-Skeleton, which allows to replicate, adapt, and customize a production-grade app. This part makes extensive use of Shiny modules, and Microservices and it includes 8 own R-packages. (2) A second R-Shiny App, called ApplicatoR, from which the Low-Code developer can customize the production App, including the stylesheet. This uses the packages DT, sortable and bs4Dash. The key of the system is a JS-binding for Shiny’s inputIds, which return intelligent information and makes the entire system modular and reproducible. The concept has already been successfully prototyped with clients across Latin America and developers from Venezuela, Brazil, Nigeria, and Chile, creating both affordable technology and local income opportunities.

Wed 2:00 pm - 4:15 pm
Low-Code, Michael Rubin, Shiny

Coffee Break I

No workshops in this session.

4:30 pm - 8:30 pm

4:30 - 5:30 PM - Shiny Dev Series Live with Eric Nantz

Eric Nantz with guests

In a special live recording of the Shiny Developer Series, host Eric Nantz will be joined by prominent members of the Shiny community (Tanya Cashoralli, Jon Harmon, Nicola Rennie, Pedro Silva, and Peter Solymos) to discuss topics such as their take on recent innovations in the Shiny ecosystem, lessons from creating complex applications, the future with Shiny in R and Python, and more!

Wed 4:30 pm - 8:30 pm
Dev, Eric Nantz, Shiny

5:30 - 6:15 PM - Transforming Business with Open Source: Insights from the Pharma Industry

Filip Stachura

Wed 4:30 pm - 8:30 pm
appsilon, Keynote

6:15 - 6:45 PM - Mindfulness Break

Ewa Filipiak - Rokicka

  1. Introduction (5 minutes)

  • A brief introduction to mindfulness and its benefits

  1. Mindful Breathing Exercise (5 minutes)
  2. Mindful Stretching (10 minutes)
  3. Mindful Walking (5 minutes)
  4. Gratitude Practice (5 minutes)
  5. Closing (5 minutes)

Hi, my name is Ewa Filipiak-Rokicka. I'm a People Specialist with a passion for psychology. I've worked on well-being projects for the office environment and have been practicing various methods of relaxation and mindfulness with patients at the neurosis unit at a local hospital. When I'm not working, you can find me reading books or on a walk with my dogs in the woods. Originally from Gdańsk/Poland, I currently live in Warsaw.
Wed 4:30 pm - 8:30 pm

6:45 - 7:15 PM - What can I do to monitor and improve my Shiny App's performance?

Mohamed El Fodil Ihaddaden

A Shiny app comes many JavaScript/css dependencies, R developers tend to ignore this fact and use libraries that add other dependencies to this stack. In this context, a developer needs to think wisely which dependency is worth using. Furthermore, and in the R side, there are many techniques that allow one to develop a smooth and efficient application. For example, one can use more efficient packages, or load the data only when necessary and so on. Finally, when it comes to performance, the web offers a great amount of tools that allows one to monitor and improve the app's efficiency, we can easily mention the network tab in the devtools, the lighthouse, the performance API and many others.

Mohamed El Fodil Ihaddaden has a Ph.D in Economics from the Higher National School of Statistics and Applied Economics (ENSSEA) in Algeria. He works as a R/Shiny developer. He's also the author of many R packages (ralger, cronologia, ddplot among others). In his free time he enjoy watching cool animes, his favorite is Attack on Titans.
Wed 4:30 pm - 8:30 pm
Mohamed El Fodil Ihaddaden, Performance

7:15 - 7:45 PM - Which Sidewalks Should be Repaired?

Reid Haefer

As a city official or a member of your local public works department with a limited annual budget, out of all the sidewalks in your city, how do you decide which ones should be repaired? The city of Burlington, Vermont maintains 130 miles of sidewalks throughout their city which are all characterized by varying levels of disrepair – cracks, heaving, sloping, etc. In 2021, the city developed an innovative approach that employed an innovative data collection technology in conjunction with the creation of a custom, interactive webtool to prioritize sidewalk improvements throughout the city. Once the data was collected, the city developed a custom, web-based Shiny tool to explore the data and employ a system for prioritizing improvements. The custom webtool was built with a variety of features intended to support the city’s long-term vision of prioritizing sidewalk repairs with a limited budget into the future. Using this tool, the city can efficiently allocate their annual sidewalk repair budget to sidewalks in areas of their city that are the highest priority, based upon a variety of factors that include physical sidewalk condition, clustering of poor condition sidewalks, and characteristics of surrounding land uses, including equity considerations. Example tool features include user defined prioritization factors, web mapping, dynamic reporting, interactive plots, data management, and documentation.

Reid Haefer specializes in using data science to support informed decision-making through modeling, data visualization, and generally making sense of complex data. In his role as consultant at Resource Systems Group (RSG), Reid helps public and private sector clients sort through the evolving data and technology landscape to make decisions supported by useful tools, methodologies, and information. His topical expertise spans several disciplines including urban planning, transportation, environmental science, energy, real estate, public policy, and sustainability.His technical interests include GIS, data visualization, and open-source computer programming, which he is loves to integrate by creating Shiny applications. Reid has a bachelor’s degree from Western Washington University and a master’s degree from the University of Washington and resides in South Lake Tahoe, California.
Wed 4:30 pm - 8:30 pm
Case Study
Reid Haefer, Sidewalks

7:45 - 8:30 PM - Roundtable: Innovating with Shiny and Large Language Models: Building Interactive Data Applications in the ChatGPT Era

Marek Rogala, Eric Nantz, David Keyes, Deepansh Khurana

Roundtable discussion with experts: Marek Rogala, David Keyes, Eric Nantz.

Moderator: Deepansh Khurana

Wed 4:30 pm - 8:30 pm
Panel Discussion
ChatGPT, Eric Nantz, Marek Rogala

8:30 - 9:00 - Open discussion table with Appsilon Team: Technical leadership challenges in Shiny

Pedro Silva

Join this networking/open discussion session moderated by Pedro Silva, Staff Engineer at Appsilon.

Everyone is welcome!

Wed 4:30 pm - 8:30 pm
Panel Discussion

8:30 - 9:00 - 1:1 Networking

We invite you to use this time for making new connections in one-on-one meetings.

In the networking segment, when you click the Ready button, the system automatically pairs you up with someone else who has also clicked the Ready button. This match is paired randomly. If both parties are available, the two are matched instantly and the video chat begins.

You can also create 1:1 meetings with whoever you like. By going to the 'People' tab of the event, find the person you would like to connect with and click the invite to video call button.

Wed 4:30 pm - 8:30 pm

8:45 pm - 10:00 pm

9:00 - 9:30 PM - Lessons learned from testing 2500+ Shiny Apps every day

Barret Schloerke

The Shiny team tests 2500+ different combinations of Shiny Applications, R versions, and operating systems to verify no feature regressions occur within the bleeding edge of the Shiny-verse. Over the past few years, we have learned a few lessons to keep our tests robust and honest. There is a non-zero chance that a test failure is not your fault. When working with CI systems, external influences such as installation failures or slower computing power will prevent tests from executing properly. A picture is worth a thousand tests but visual testing is known to have a non-zero false-positive rate. To address this, we have utilized threshold based image comparisons for flaky tests. We have found that it is best to test the minimal amount of content where possible. Changes in App package dependencies can produce unintended changes in expected outputs. These hard learned lessons have reduced unreliable test results allowing the Shiny team to quickly respond to feature regressions.

Dr. Barret Schloerke is a Software Engineer at Posit. He currently develops and maintains many R packages in the Shiny ecosystem at RStudio including shiny, reactlog, plumber, learnr, leaflet, and shinyloadtest. Dr. Schloerke received his PhD in Statistics from Purdue University under the direction of Dr. Ryan Hafen and Dr. William Cleveland, specializing in Large Data Visualization.
Wed 8:45 pm - 10:00 pm
Barret Schloerke, Testing

9:30 - 10:00 PM - moosecounter: A Shiny desktop application for adaptive moose surveys in the Yukon Territory, Canada

Peter Solymos

Managing wildlife populations requires knowledge about the distribution and abundance of species. To gather information needed to determine hunting quotas for Moose, the Yukon Government runs annual surveys. However surveying large areas with helicopters is costly ($2.5 M spent over the last decade), therefore, we developed an adaptive sampling design to get the most accurate population size estimates while being as cost efficient as possible. Adaptive surveys require biologists to analyze data daily which is then used to inform the next day’s flight route. Such analyses are conducted in remote areas and are best served by software with a straightforward GUI that does not rely on an unpredictable Internet connection. We first made an rJava based Deducer plugin, which became unmaintainable after R 4.0. Thus we turned the plugin into a Shiny app. In this talk I will share the evolution of the project over the last decade, how technology choices were made, and the impact these had on the Moose monitoring program. The Shiny app includes upload/download functionality to fit with the geospatial workflow. It contains steps for data exploration and modelling for total moose abundance and population composition (cows, calves, bulls). It also has options to scrutinize predictions and associated uncertainty, which in turn informs the survey design. Shiny has become an indispensable tool for bringing custom statistical workflows to a large scale field program. We hope our experiences and the open source software we created can help similar initiatives worldwide.

Péter Sólymos is a senior data scientist and ecologist. He has authored several R packages for the statistical analysis of count data, presence-only data, and for multivariate methods and hierarchical models. Péter is a big proponent of Shiny and Plumber APIs, he has built several apps for real-life decision-making. Péter is also the co-founder of Analythium Solutions and regularly writes tutorials about hosting data applications at
Wed 8:45 pm - 10:00 pm
Case Study
App, moose, Peter Solymos

10:00 - 10:15 PM - Short summary of day one

Ian E Moore

Ian E. Moore - Technical Evangelist at Appsilon sharing insights from Day 1 of the conference

Wed 8:45 pm - 10:00 pm
Ian Moore, Summary


2:00 pm - 3:45 pm

1:55 - 2:00 PM - Short welcome note

Ian Moore

Welcome to the day 2 of the conference, let's take a look at what we've prepared for you!

Thu 2:00 pm - 3:45 pm
Ian Moore

2:00 - 2:30 PM - Scaling Shiny: Experiences from building a large application in Pharma

John Coene

The shiny app enables a metadata driven approach to creating mock shells and Clinical Study Reports outputs at Idorsia. It aims to create a single point of access platform for a process that requires integrating multiple external components, streamlining the workflow and enabling statistical programmer to work more efficiently.

The talk is about the design considerations of building out this large app, examining how far Shiny can be stretched, and details some of the technical implications in integrating the different components that the app relies on. E.g. SAS Webserver, Database, S3 Bucket, Pinnacle 21, and others.

It is currently used in production on a pivotal phase 3 study. By the time this talk is live it will be used on 5 studies.

The application is relied upon by multiple people in a production environment whilst new features are constantly being added. It is therefore important to have readable and glanceable code so one can easily spot and address issues quickly.

We learned pretty early on to separate concerns into different packages, e.g. one wrapping a specific API, another to handle updates on data, push long-running processes in the background, etc.

These challenges were interesting to solve and worth sharing with the community.

John Coene is the author of numerous open-source R packages such as waiter, echarts4r, and packer. He is also the author of the book JavaScript for R published by CRC Press as part of the R series. In 2019 he founded Opifex to provide software and help with R, JavaScript, and Go.
Thu 2:00 pm - 3:45 pm
John Coene, Pharma

2:30 - 3:00 PM - Creating a JavaScript Library for your Shiny Application

Ashley Baldry

You are comfortable writing JavaScript for your shiny applications, but the single script holding all of the JavaScript is becoming unmanageable, now what? Similar to R packages, JavaScript libraries can be built to hold all necessary code and bundled back into a useable script for the shiny application to use.

In this talk will discuss:
- how to set up a JavaScript library within an R package
- how to convert a single script into a library
- how to include the library in a shiny application
- the benefits of using a library over a single script

Ashley is a data scientist at Ascent, specialising in the development of shiny applications. With a strong interest in HTML frameworks and UI design, he is an active member of the R open-source community and is a maintainer of several shiny related packages.
Thu 2:00 pm - 3:45 pm
Ashley Baldry, JavaScript

3:00 - 3:30 PM - Making Project Management Seamless using Automated Gantt Charts in R Shiny

Lucy Njuki, Yuanyuan Zhang

We are often involved in many projects as researchers in academia. Ensuring that we have the bigger picture of the project tasks can be challenging if not well documented. Recently, our line manager asked us to create a Gantt chart to present all current tasks and how far we are from completing them. R Markdown came to mind at first, and we created beautiful Gantt charts which can be shared as an HTML file. Since the projects are evolving, new tasks are assigned to us. Therefore, to present the updated Gantt chat, we ought to rerun the R Markdown file. A question came to mind. Instead of rerunning the R Markdown file to update the Gantt Chart, could Shiny Apps be used to automate this process? The answer is yes! We created an R Shiny App that can automate and update Gantt Charts. This results in improving the efficiency of project management in academia. In this presentation, we will point out some of the awesome features of R shiny and demonstrate how our R Shiny App can easily automate Gantt charts and track the progress of tasks.

My name is Lucy Njoki Njuki. I hold the position of Research Assistant at the Centre for Epidemiology VS Arthritis at the University of Manchester while being a part-time second-year student at Hasselt University, studying MSc in Statistics and Data Science (Biostatistics) through a distance learning program. I am an active member of the R community and serve as an organiser of R-Ladies Nairobi. I rely on R for most of my tasks, including healthcare data wrangling and processing, plus conducting statistical analysis for my project assignments. Hello! My name is Yuanyuan Zhang. I am currently a research associate at the Center for Digital Trust and Society in the University of Manchester. My research background is in the general area of statistical modelling, distribution theory and data science with applications to finance. I use R to perform statistical/machine learning models, develop new R software packages, build awesome Data Visualizations tools and interactive dashboards (such as Shiny Apps on medical science & Financial data).
Thu 2:00 pm - 3:45 pm
Case Study
Lucy Njoki Njuki, Managment, Yuanyuan Zhang

3:30 - 4:00 PM - shinyGizmo - top features tutorial

Krystian Igras

When working with advanced Shiny applications, we often encounter non-standard problems for which the solution is not direct. There are many examples: disabling/enabling buttons in certain states of the application, collecting information from dynamic components or storing the modal dialog state are problems that may require us to know JS or advanced programming in R, and at the same time inefficiently use the resources of the application server. I face the above problems on a daily basis while creating complex applications. Generalized solutions have been collected in the shinyGizmo package, which I’ll present in my tutorial. The tutorial will cover the use of the following functionalities: - conditionalJS - generalized version of `conditionalPanel` to perform any JS operations directly from the UI level, - commonInput(s) - combining the values of many input widgets (also dynamic amount) into one, - modalDialogUI - UI-based version of modalDialog that keeps modal status for free, - valueButton - take any browser data to Shiny server. The use of each function and the reasoning for using it will be presented in the Shiny application, which at the end of the tutorial will be fully functional and built using best practices. More to that, as an extra part of the tutorial, I will present an interesting concept of creating Input Bindings based on other, already existing ones. This is the approach used in the pickCheckBoxInput component and I believe it will be of great interest to the more advanced Shiny developers.

Krystian is a Scientific Software Engineer at 7N. For many years involved in business consulting and analytical projects as well as conducting workshops in the R language. Currently focused on implementing complex Shiny components operating on real world medical data. He is interested in optimizing R-based workflows and pushing Shiny to the limit. Enthusiast of tea and vinyl records world.
Thu 2:00 pm - 3:45 pm
Krystian Igras, shinyGizmo

4:00 pm - 9:45 pm

4:00 - 5:00 PM - Production is like ultra running: brutal, ungrateful, but worth every step

Colin Fay

Both production software engineering and ultra running are demanding and grueling. Both require extensive preparation, unwavering perseverance, and a determined mindset to overcome obstacles. Many times, it's tempting to take shortcuts or give up. Seasoned software engineers can attest to the difficulties in developing robust, scalable, and efficient software. The intricacies of code, project management, and infrastructure often result in long hours of work. And at the end of the day, a successful software codebase is entirely unnoticed by the end user. Ultra running works the same: hours of training and planning culminate in a successful race when the runner crosses the finish line. And during the race, the hours of training are invisible to the spectator. However, even if the hours of preparation are almost invisible, the journey and the experience gained are what make the effort truly fulfilling. In this talk, Colin will explore what ultra running has taught him about building production software and vice versa, and why approaching production work with the same dedication and passion as an ultra runner is crucial for success. He will highlight the importance of perseverance and the value of embracing challenges along the way.

Colin Fay is a lead developer at ThinkR, a french agency focused on everything R-related. During the day, he helps companies to take full advantage of the power of R, by building tools and deploying infrastructure. His main areas of expertise are data & software engineering, web applications (frontend and backend), and R in production. During the night, Colin is also an active open source developer and advocate. He’s the main developer of the {golem} package, and the lead author of the “Building Production Grade Shiny Apps” book.
Thu 4:00 pm - 9:45 pm
Colin Fay, Production

5:00 - 6:00 PM - Data Science Hangout with David Granjon and Bo Wang

guest: David Granjon, Bo Wang

Please join us for this week's Data Science Hangout featuring David Granjon and Bo Wang, Senior Expert Data Science at Novartis. Join us to ask questions and hear how they provide their expertise to help associates design production ready apps for clinical trials, from wireframing activities to automated deployments.

First time joining a Data Science Hangout? What is it? It's a gathering place for the whole data science community - including current and future data science leaders - to chat about data science leadership and questions you're all facing that happens every Thursday at 12 ET .

There's no hard agenda or predetermined talk tracks: just an expert or two willing to share their perspectives on what’s really going on in data science at an organizational level.

As this is hosted by Posit, it is outside of the Hopin platform for the hour. You can join live using this link: and jump back into Hopin at the end of the hour.

☀️ All are welcome - no matter your industry/experience

🕶 No need to register

👌 It’s always okay to join for part of a session

🎤 You can listen-in, join-in the conversation, or ask questions anonymously

🗓 If you had fun today and want to add it to your calendar for future weeks: can also check out recordings of past sessions on the Posit YouTube and Data Science Hangout site.

Thu 4:00 pm - 9:45 pm
David Granjon

6:00 - 6:30 PM - Time to network!

Thu 4:00 pm - 9:45 pm

6:00 - 6:30 PM - Open discussion table with Appsilon Team: Recruitment and cultural FAQs

Paulina Kaczmarczyk

Thu 4:00 pm - 9:45 pm
Panel Discussion

6:30 - 7:00 PM - Introducing Rhinoverse

Jakub Nowicki, Kamil Żyła

Kamil is a Full Stack Engineer at Appsilon and a core developer of Rhino. He learned to code at the age of 15 and used to participate in programming competitions. He earned degrees in computer science and mathematics. His interests include programming language theory, software development processes and working across technologies. He’s passionate about jazz, spirituality and psychology. Jakub is a Staff Engineer at Appsilon, where he leads the Open Source initiative. Working with R and Shiny for over 10 years. His background is in Paleontology - he wrote his PhD thesis about Cambrian trilobites and is the author of several papers on this topic. In his free time, he loves to play board games, read and watch fantasy and science-fiction.
Thu 4:00 pm - 9:45 pm
Jakub Nowicki, Kamil Żyła

7:00 - 7:30 PM - Securing your Shiny Dashboard

Colin Gillespie

Shiny apps, Rmarkdown reports and flask dashboards provide a rich user experience for relatively little development time. Often this experience is created by utilising third-party Javascript functions, CSS files, fonts and images, but every external file we use means we implicitly trust the authors. The NHS and thousands of other government websites can attest that this is an issue; in 2018, they ran scripts that made their visitors use their computing power to mine cryptocurrencies.

This talk will look at how organisations can improve their Shiny application security. We’ll discuss general procedures for securing your overall workflow, such as security audits of your R packages and general Git security. We’ll then see how Content Security Policies (CSPs) can be leveraged in Shiny apps, which allow a website to specify what external content a site can access. This talk will discuss implementing these precautions within Shiny and Posit Connect. We'll demonstrate that securing and monitoring your applications is relatively straightforward.

"Colin co-founded Jumping Rivers - a full-stack data science consultancy company based in the UK. Jumping Rivers specialises in everything R, from infrastructure management to building shiny applications. Colin has been using R since 1999 and fondly remembers using the underscore as an assignment operator. A few years ago, he found time to co-author the O'Reilly book Efficient R Programming."
Thu 4:00 pm - 9:45 pm
Colin Gillespie, Security

7:30 - 8:00 PM - Introduction to {teal} - open source framework to build interactive applications for clinical data analysis

Pawel Rucki & Dony Unardi

In this talk, we would like to present the {teal} package - built internally in Roche and now a fully open-sourced product with a focus on interactive clinical data analysis. Together with a series of other child packages, {teal} is equipped with features to elevate the user's exploratory experiences, such as data filtering, code reproducibility, logging, and report generator. Enriched with multiple complementary analysis R packages, users can get 50+ common analysis modules available for use. In addition, {teal} can provide R developers with a quick and efficient way to create customized shiny modules with different data types. In this talk, we will introduce the {teal} framework, highlight major features, and share how this has been implemented and adopted by thousands of data scientists in our organization. We will also present briefly the way how we achieved that as well as our efforts on open sourcing and collaboration within the pharma industry.

Pawel Rucki is a Principal Data Scientist and Chief Engineer at Roche Switzerland. He co-authored and now became responsible for one of the largest R-based projects within Roche Product Development and the Pharma industry as a whole for clinical reporting and data analytics. Prior to joining Roche, he worked as a consultant on R-based tools for the financial industry. Pawel holds a master's degree in econometrics from University of Warsaw. Dony Unardi is a Data Scientist with more than a decade of experience in the pharmaceutical industry. In the last five years, he has supported the adoption of R and implemented R solutions within his role in Product Development Data Sciences at Roche/Genentech. He authored several internal R packages and Shiny apps, focusing on data curation and harmonization. Dony has a Bachelor’s degree in Computer Information Systems and is currently the Engineering Team Lead, leading the development effort of the teal framework.
Thu 4:00 pm - 9:45 pm
Dony Unardi, Pawel Rucki

8:00 - 8:30 PM - Baking JavaScript into a Shiny Package

Jon Harmon

I'm not an expert in JavaScript, but I wanted to use cookies in my Shiny apps, and the easiest way to do that was to use the js-cookie JavaScript library. Once I got that working, I wrapped it into its own package, so that anyone (including future me) could easily use that library in future Shiny apps. I'll show how this effort led to the {cookies} package, which is now available on CRAN.

Jon runs the R4DS Online Learning Community, a community of R learners at all skill levels working together to improve their skills. He seeks to make it easier for people to learn new skills, and to improve their existing skills. He lives in Austin, Texas, with his spouse, two children, and two large dogs.
Thu 4:00 pm - 9:45 pm
JavaScript, Jon Harmon

8:30 - 9:00 PM - Robotic Process Automation with Shiny (A Marketing Analytics Case Study)

Matt Dancho

Marketing Analytics is a $250,000,000,000 opportunity for companies. But few companies have the data science talent to make it happen. In this presentation, I'll show a powerful use case for Robotic Process Automation (RPA) using Shiny to help Marketing Analytics teams segment customers faster and more accurately, leading to better customer segmentation and up to a 10% increase in revenue.

Matt Dancho is the founder of Business Science, an educational platform that teaches students how to apply data science to business problems. He is the author of several popular R packages including tidyquant, modeltime and timetk. Prior to leading Business Science, Matt has consulted for Fortune 500 companies including S&P Global, Ingredion, and MRM McCann, and has 15+ years of industry experience in marketing & sales analytics, demand forecasting, and finance.
Thu 4:00 pm - 9:45 pm
Case Study
Automation, Matt Dancho

9:00 - 9:45 PM - Roundtable: Empowering diversity in R (Shiny)

Mouna Belaid, Megan Rogers, Tresna Tanesya, Cosima Meyer, Emi Tanaka, Shel Kariuki

Thu 4:00 pm - 9:45 pm
Cosima Meyer, Diversity, Mouna Belaid

9:45 - 10:00 PM - Short summary of day 2

Ian E Moore

Ian E. Moore - Technical Evangelist at Appsilon sharing insights from Day 2 of the conference

Thu 4:00 pm - 9:45 pm
Ian E Moore


Third Day - Opening Segment

1:55 - 2:00 PM - Short welcome note

Ian Moore

Welcome to the day 3 of the conference, let's take a look at what we've prepared for you!

Fri 2:00 pm - 3:45 pm
Ian Moore

2:00 - 2:30 PM - How to build user-centric applications?

Anna Skrzydło

Anna Skrzydło is an IT Project Manager, Business Analyst, and R/Shiny developer with over 8 years of professional experience leading software and Data Science projects, facilitating user workshops and applying analytics to solve business problems. Regular speaker at industry conferences, including WhyR and Data Science Summit. Dog lover, salsa dancer and stand-up comedy fan.
Fri 2:00 pm - 3:45 pm

2:30 - 3:00 PM - Shiny Semantic in Shiny for Python

Pavel Demin

Shiny Semantic in Shiny-for-Python is an early attempt to contribute to the emerging Shiny ecosystem in Python. We used our experience with the shiny.semantic package for R/Shiny to implement its counterpart in another programming language.

During our development process we had an opportunity to experiment with different approaches to the overall package design. These approaches boil down to a simple statement: “I want my package to make the most sense from the perspective of … “ – (1) shiny.semantic implementation in R, (2) the underlying Semanti UI library, (3) PyShiny implementation.

During the talk, I plan to elaborate more on these approaches, how they appeared and how they changed each other naturally. I will also cover the following topics:
How we were able to reuse ideas and code from the existing shiny.semantic package
Why porting a UI components library from R to Python is much less painful than it could be
How does Rhino experience help in writing Python code

Pavel Demin is a self-taught developer with background in social sciences and statistics. Before joining Appsilon as a software engineer in 2021, he used to work as a data analyst empowering the team with the in-house Shiny dashboards and interactive reports. Pavel enjoys multilingual environment with various modern technologies, delivering solutions in R, Python and React. In his free time he likes to travel and listen to music.
Fri 2:00 pm - 3:45 pm
pavel demin, Python, Semantic

3:00 - 3:30 PM - Finding #RStats resources with Shiny and GitHub Actions

Nicola Rennie

One of the best parts of the R community is our love of sharing the things we learn, and many of us use social media to do just that! But in a world where social media can seem endless and somewhat unreliable, it felt like I needed a way to do two things: (i) bookmark links to interesting #RStats content that people share, and (ii) store that information somewhere that would remain accessible if my social media platform of choice ceased to exist. So I did what any R user would - I built a shiny app! Thanks to GitHub Actions, that Shiny app updates daily and displays the updated data in an interactive table. And it does it all while I'm asleep. In this talk I’ll discuss: - Collecting data from Twitter using {rtweet} - Scheduling tasks with GitHub Actions to update data - Triggering app re-deployment with GitHub Actions

Nicola Rennie is a statistician and data scientist, passionate about using R to solve problems. She currently works as a Data Scientist at Jumping Rivers, having previously completed her PhD in statistics and operational research at Lancaster University.
Fri 2:00 pm - 3:45 pm
Nicola Rennie, RStats

3:30 - 4:00 PM - How to quickly build a production-ready Real-World-Data dashboard?

Kamil Wais

It's commonly known that R&Shiny can be used for quick prototyping, but what about quickly building complex production-ready dashboards? We will show that it’s also possible if only we initially invest some of our efforts into developing reusable production-ready dashboarding components. In our daily work, our team at Roche builds complex analytical dashboards for rapid Real-World-Data (RWD) exploration and hypothesis generation. Such dashboards need to work with different data sources and models, consist of different sets of integrated ready-to-use componentes, and have the ability to be customized with project-specific settings and modules. Because of those architectural drivers we propose and develop a modularized ecosystem of production-ready components, which are responsible for and very good at specific tasks, yet they are also properly abstracted so they can be easily reused in other projects and use cases. Some of the components that we’ve created are already open-sourced and we plan to open-source more of them in the future. In our talk we will show how one can build a production-ready dashboard using production-ready, well-tested components responsible for the following tasks: Generating rule-based artificial data for application development and testing. Creating complex cohorts using advanced filtering tools with clear separation of the interactive layer. Performing analysis on the selected cohort with an appropriate analytical module and visualizing the results. We will present those components, their features, benefits, and possible applications. What’s more we’ll show the effect of integrating those components in a single demo shiny app.

Kamil Wais is a contractor represented by 7N Consultancy Agency. At Roche he leads Real-World-Data Insights Engineering Team of R & Shiny developers. He is a Data Scientist, Scientific Software Engineer and a certified Agile Project Manager. He has PhD in History, as well as MSc in Sociology, and postgraduate degree in Statistical Methods in Business. Previously, he was a social researcher and academic teacher. He has a personal mission to help people to learn how to work with data to better understand the world and thus make better decisions.
Fri 2:00 pm - 3:45 pm
Case Study
data, kamil wais, Shiny

Third Day - Middle Segment

4:00 - 4:30 PM - DIY Pest Control: Effectively Debugging Shiny Apps

Tan Ho

At its best, Shiny is wonderful, elegant, and powerful. On the other hand, it can also reduce any of us to tears of frustration when we get stuck deep in the weeds of a complicated bug. As a new Shiny developer, it can be hard to figure out exactly where to start looking - especially if the app is not entirely your own!

I'm a data enthusiast who loves R 🚀, Shiny ✨, fantasy football 🏈 and carving pumpkins 🎃 By day, I'm a Machine Learning Engineer for Zelus Analytics. I started []( and [ffverse](, maintain [nflverse]( data and packages, and mentor at [R4DS Slack Community]( Away from my keyboard, I enjoy skiing ⛷, lifting weights 🏋️, rowing 🚣️, and hanging out with my dog Jasper 🐶
Fri 4:00 pm - 7:00 pm
DIY, Tan Ho

4:30 - 5:00 PM - Turning our monolithic Shiny app into a microservices-based structure.

Juan Cruz Rodriguez, Ph.D.

Shiny is a popular framework for creating interactive web applications in R. However, as Shiny apps grow in complexity, it can become difficult to maintain and scale them. In this presentation, we will discuss how we turned our monolithic Shiny app into a microservices-based structure via backend API components.

By breaking our app into smaller, independent components, we were able to improve the maintainability and scalability of our application. We also gained the ability to easily create a public API for our app, which allowed us to avoid the need for copy and paste code through our applications.

Additionally, by moving to a microservices architecture, we no longer needed to have a Shiny daemon continuously running. This reduced the resource demands of our app and made it easier to deploy and manage.

Overall, our transition to a microservices-based structure has greatly improved the efficiency and flexibility of our Shiny app. We will share the challenges and benefits we encountered during the process, and provide practical tips for those looking to make a similar transition.

"Juan Cruz holds a Ph.D. in computer science from the National University of Córdoba. He has over 10 years of experience with R and a passion for open-source contributions. After working for large companies like Intel, he has spent the past 3 years working in startups as a data scientist, data engineer, and Shiny & Plumber developer. Through these roles, he successfully turned an MVP idea into a production-grade Shiny application hosted on AWS. Currently, Juan Cruz is a Data Science Engineer at Happy Cabbage Analytics."
Fri 4:00 pm - 7:00 pm
Juan Cruz Rodriguez

5:00 - 5:30 PM - New approach of visualisation with set of query in human readable way

Yuri Pribish

in such complicated systems which expect from end-user appropriate background and at least middle level of tech-savvy we’ve found that it’s a it harder to them interact with system in a quick way. The common problem is we show them all-in-one and give to users wide range of controls which could increase resistance ratio. The main Idea of this brand new approach is getting compact and useful component by gathering all needed controls such as filters, sorts, etc. in one module under particular use case.

Fri 4:00 pm - 7:00 pm
Yuri Pribish

5:00 - 5:30 PM - 1:1 Networking

We invite you to use this time for making new connections in one-on-one meetings.

In the networking segment, when you click the Ready button, the system automatically pairs you up with someone else who has also clicked the Ready button. This match is paired randomly. If both parties are available, the two are matched instantly and the video chat begins.You can also create 1:1 meetings with whoever you like. By going to the 'People' tab of the event, find the person you would like to connect with and click the invite to video call button.

Fri 4:00 pm - 7:00 pm

5:30 - 6:30 PM - Say goodbye to unnecessary waiting: mastering asynchronous programming in Shiny

Veerle van Leemput

Are you tired of watching your Shiny app grind to a halt because of single, overloaded R session? And do you want to take your app to the next level? Then this keynote talk is for you! Join Veerle as she takes you on a journey through the world of asynchronous programming in Shiny. Let’s face it, nobody likes waiting around for an app to load. Today’s users expect almost instantaneous results and as a Shiny developer you need to make sure you meet those expectations. With asynchronous programming, you can keep your Shiny app running smoothly, even when your R session is busy with multiple tasks. Veerle will introduce you to powerful packages like future, promises, callR and coro that will help you break free from the constraints of a single R session where tasks are executed in the traditional and synchronous way. By the end of this keynote talk, you’ll be ready to start programming asynchronously and creating Shiny apps with improved efficiency, speed and user experience!

Veerle van Leemput is an entrepreneur who gets excited about data and programming. She is Managing Director and Head of Data Science at Analytic Health, a UK-based start-up company that develops intelligent and accessible technology which gives organisations the tools they need to accelerate innovation in healthcare. She has a Master’s Degree in Data Science and multiple years of experience in the pharmaceutical market. At Analytic Health, she is responsible for managing a team of software developers and data scientists that build software used by pharmaceutical and healthcare companies that seek intelligence to make data driven decisions.
Fri 4:00 pm - 7:00 pm
Asynchronous, Veerle van Leemput

6:30 - 7:00 PM - The Shiny Apps I Didn’t Launch

Jacqueline Nolis

The greatest strength of Shiny is how it quickly it lets you go from an idea to a working prototype. Once you have a working interactive webpage, you can immediately understand what parts of your idea are sound and which don’t work in practice. But the downside of this is you may end up with many half completed Shiny apps that are interesting, but for engineering or product design reasons never got released.
This talk will cover several fascinating, bizarre, and peculiar Shiny apps* ideas I had, why I thought they were interesting but unlaunchable, and how the prototyping process in Shiny helped me along the way.

Dr. Jacqueline Nolis is a data science leader with 15 years of experience in running data science teams and projects at companies ranging from Airbnb to Boeing. Jacqueline R expertise includes deploying R into production systems and neural networks in R. For fun, Jacqueline likes to use data science for humor—like using deep learning to generate offensive license plates.
Fri 4:00 pm - 7:00 pm
Jacquline Nolis

7:00- 7:30 PM - The Journey to a Successful Shiny Application Submission to FDA

Eric Nantz

Within the life sciences industry, Shiny has enabled tremendous innovations to produce web interfaces as frontends to sophisticated analyses, dynamic visualizations, and automation of clinical reporting across drug development. While industry sponsors have widely adopted Shiny as part of their analytics and reporting toolset, a relatively unexplored frontier has been the inclusion of a Shiny application inside a clinical submission package to regulatory agencies such as the FDA. After a successful pilot of an R-based clinical analysis submission package, the R Consortium R Submissions Working Group launched a second pilot in 2022 to test whether a Shiny application created with R could be assembled into a submission package and successfully transferred to FDA reviewers. In this talk, I will share the development journey of the Shiny application with key highlights of open-source collaboration, novel tooling in the Shiny ecosystem, challenges in the overall process, and the key milestones that led to a successful submission to the FDA. This project has the potential of becoming the first key reference of using Shiny in a regulatory context, paving the way for new innovations in how the life sciences industry can leverage R in new and innovative ways as part of clinical submissions.

"Eric Nantz is a director within the statistical innovation center at Eli Lilly and Company, creating analytical pipelines and capabilities of advanced statistical methodologies for clinical design used in multiple phases of development. Outside of his day job, Eric is passionate about connecting with and showcasing the brilliant R community in multiple ways. You may recognize his voice from the R-Podcast that he launched in 2012. Eric is also the creator of the Shiny Developer Series where he interviews authors of Shiny-related packages and practitioners developing applications, as well as sharing his own R and Shiny adventures via livestreams on his Twitch channel. In addition, Eric is a curator for the RWeekly project and co-host of the RWeekly Highlights podcast which accompanies every issue."
Fri 4:00 pm - 7:00 pm
Case Study
App, Eric Nantz

7:30 - 8:00 PM - A Medical Educato(R)’s Journey to Data Science: Residency Applicants Ranking Dashboard and Algorithm – From Open Concept to Open Reality

Ken Koon Wong

How can we rank interview candidates more fairly? What form of data is needed to make that decision? How do we curate that data? How do we compile and summarize noisy data into something interpretable? How can we incorporate an algorithm that minimizes bias in recruitment? These questions are relevant for making an informed decision in recruiting candidates to be trained as future physicians. At the Cleveland Clinic Akron General Internal Medicine residency program, we have used the R Shiny dashboard for over three years to make recruitment more diverse, equitable, and inclusive. It would be very challenging for the human eyes to notice subtle differences in data for 100 to 200, or sometimes an even greater number of interview candidates, given 6 to 10 variables per candidate. We used multiple-criteria decision analysis (MCDA) as a potential solution to our question. The R Shiny dashboard is highly customizable, allows individualized program formula derivation with a chosen weight that matters most to the program’s core value, is easily accessible for program leadership to look at curated candidate assessment data, minimizes bias, and increases diversity in ranking, and provides another quantitative tool to tune PD’s intuition for ranking candidates. Most importantly, the R Shiny dashboard allowed the program leadership to visualize noisy data to enhance the ranking experience.

He is an Associate Program Director of Internal Medicine residency program and Infectious Disease physician at Cleveland Clinic Akron General, Ohio, USA. He is a Data Science hobbyist and has been an R convert since late 2019, all because of a question during a meeting, “How can we make sense of all these numbers?”. He has learned R from online tutorials, uses R daily, and has built several dashboards and automation tasks for better efficiency and learning. He is also passionate about using experiential learning to improve data literacy. For example, he experienced probability theory by dedicating 2022 to randomly buying his wife ~24 bouquets, which is estimated to be a ~6.6% chance per day. To his surprise, there were several occurrences of back-to-back purchases of flowers. He enjoys no-till gardening, practicing Tai chi, and learning.
Fri 4:00 pm - 7:00 pm
Case Study
Ken Koon Wong

8:00 - 8:30 PM - Measuring performance improvement in Shiny apps

Douglas Mesquita

It is common to have performance issues in a Shiny application. Sometimes, it is due to a lack of knowledge on how to properly build the application, other times, it is because the application grew faster than expected and the structure is not the best anymore, or even technical debts were introduced during the development.

Performance issues can make users frustrated and as a result, the adoption can drop significantly. To avoid such a situation, developers are always trying to improve performance using several different techniques. However, we rarely know exactly what was the biggest source of improvement and how fast the application is compared to other versions. Also, most of the time, the performance is manually recorded which makes it difficult to reproduce the results or redo the analysis.

shiny.benchmark is a brand new Appsilon package that allows you to compare several different app’s versions in a very simple way. It can use two different engines to test the changes in the performance of your application: shinytest2 and Cypress. The main idea is to run a set of tests under different versions of an application (git refs). For each test and app version, shiny.benchmark will record the time elapsed to perform each task and return it for further analysis.

In this tutorial, I will teach you how to properly use shiny.benchmark through a simple example (document attached). Also, we will explore many functionalities of this package.

Douglas Mesquita is a Statistician currently working as a Software Developer at Appsilon. During his adventures as Data Scientist, he started using Shiny to present the results of complex models and findings in a friendly way for a regular audience. In his free time, he likes to act like an average person, explore the world, and play sports. However, his scientific vein often calls him, and he eventually writes some scientific papers.
Fri 4:00 pm - 7:00 pm
App, Douglas Mesquita

Third Day - Ending Segment

8:30 - 9:00 PM - Towards the next generation of Shiny UI

Carson Sievert

Shiny, the R package for creating interactive web graphics, recently celebrated its 10th birthday. Since then, Shiny has grown tremendously in many areas (e.g., performance, functionality, extensions, etc); however, a "hello world" Shiny app still looks like it did 10 years ago. This is mostly because Shiny goes to great lengths to ensure backwards compatibility; and as a result, default Shiny UI will likely continue to be based on Bootstrap 3 (a CSS styling framework released in 2010). However, thanks to the new bslib R package, it is now easy to opt-into a modern Bootstrap 5 foundation that "just works" with Shiny, R Markdown, flexdashboard, pkgdown, bookdown, and more.

In addition to upgrading Shiny's Bootstrap dependency, bslib also makes it much easier to do custom theming, leverage modern layout techniques, and create custom components (all from R without any CSS/HTML/JS required). At this point, bslib is still maturing, and does not yet provide what we'd consider a "complete UI toolkit", but it should eventually replace and/or improve upon all of Shiny UI. In this talk, I'll highlight bslib features that we're most excited about (e.g., expandable cards, accordions, (sidebar) layouts, input controls, etc.), discuss some best design practices for improving user experience with these tools, and present some real world examples of these tools in action.

Carson is a software engineer on the Shiny team at Posit. He joined Posit in 2018, and in recent years, has focused primarily on Shiny for Python and improving Shiny UI. The Shiny UI work has manifested in the creation and development of many R packages such as bslib, thematic, htmltools, htmlwidgets, sass, shiny, rmarkdown, flexdashboard, and more. Carson also has a PhD in statistics, is a recipient of the ASA's Chambers Statistical Software Award, has maintained the R package plotly since 2015, authored the book "Interactive data visualization with R, plotly, and shiny", and ran a successful freelance consulting service for numerous years.
Fri 7:15 pm - 9:45 pm
Carson Sievert, UI

9:00 - 10:00 PM - Lessons and opportunities with Shiny for Python

Winston Chang

For the past 10 years, the R community has been able to use Shiny to bring interactive data analyses to the web. Last summer, we announced that Shiny would also be available to for Python. In this talk, I’ll discuss what we’ve learned along the way, as well as the opportunities that Shiny for Python opens up. We are at the beginning of an exciting new era for Shiny, and I hope that community of old and new Shiny users make the most of it!

Winston Chang is a software engineer at Posit, PBC, who has served in various roles on the Shiny team, including team lead. He has contributed to many widely-used packages in the R ecosystem, including Shiny, devtools, and ggplot2, and is the creator of several packages, including shinydashboard, R6, and profvis. Recently he has been busy working on Shiny and Shinylive for Python. Winston has a Ph.D. in psychology from Northwestern University and is the author of the R Graphics Cookbook, published by O’Reilly Media.
Fri 7:15 pm - 9:45 pm
Python, Winston Chang

10:00 - 10:15 PM - Farewell from the Organizers & Program Committee

Marek Rogala, Joanna Mocko-Lazarewicz

All good things come to an end. Let's sum up ShinyConf 2023!

Marek Rogala, CTO at Appsilon and Program Committee Chair together with Joanna Mocko-Lazarewicz, Community Manager at Appsilon will share the closing remarks.

Fri 7:15 pm - 9:45 pm
While you’re here, subscribe to Shiny Weekly, Appsilon’s weekly newsletter for Shiny tutorials, package updates, and news from the R Shiny community.
Subscribe to Shiny Weekly 

Get involved!