Shiny in Production 2025: Workshops

Shiny in Production is heading back to The Catalyst in Newcastle upon Tyne this October! We’ve got a great mix of workshops and a full day of talks, with speakers being announced soon. You’ll find all the workshop details below, and you can sign up now on the conference website. Whether you’re just getting started with Shiny or have been using it for years, come join us for a great hands-on experience with Shiny and other web-based development tools.
Day one of the conference (Wednesday 8th October), will consist of the four parallel workshops running from 13:30 to 17:00, followed by a drinks reception in the evening, a great opportunity for networking and debriefing from the day’s learning.
Workshop 1: End-to-End testing for {shiny} with Playwright and {golem} - Colin Fay
A Shiny application that dazzles in development can still fall apart in production if user journeys break, data pipelines drift, or browsers behave unexpectedly. Automated end-to-end (E2E) testing is the safety net that keeps released apps robust, and Playwright is quickly becoming the gold-standard tool for doing it across Chrome, Firefox and WebKit. In this hands-on workshop we’ll walk through a workflow for writing, running and maintaining Playwright tests that keep your Shiny apps ship-shape long after launch. Here’s what we’ll tackle:
- why E2E testing matters even when you already have unit tests
- installing and configuring Playwright in a golem project using {pw}
- scripting core user flows—clicks, inputs…
- validating data and UI state with snapshots and assertions
- running tests headlessly in CI pipelines (GitHub Actions, GitLab CI, Posit Connect)
- handling Shiny specificity
- debugging failed tests
For this workshop, bring a laptop and a Shiny app you care about. You’ll leave with a working Playwright test harness you can drop straight into your projects—plus the confidence to deploy on Friday without fear.
By the end of the workshop, participants will…
- understand the role of end-to-end testing in the Shiny deployment pipeline
- be able to install Playwright and scaffold tests from R
- write expressive Playwright scripts that capture user journeys in a Shiny app
- run tests in parallel across browsers locally and in continuous-integration systems
About the speaker

Colin Fay is a Lead Developer at ThinkR, a French agency specializing in all things R. By day, he helps companies unlock R’s full potential by building tools, architecting infrastructure, and developing data and software engineering solutions. His expertise spans web applications (frontend & backend), R in production, and scalable software development. By night, he’s an open-source enthusiast, international speaker, and long-distance runner. A passionate advocate for the R community, he actively contributes to open-source projects and shares his knowledge through talks and workshops worldwide. Colin is the main developer of {golem}, a framework for building robust Shiny applications, and the lead author of [Building Production-Grade Shiny Apps](https://engineering-shiny.org/index.html.
Workshop 2 - Asynchronous Shiny - Dr Russ Hyde
Imagine you couldn’t register to attend “Shiny in Production” if someone else was in the process of registering, and you had to wait until they had finished before you could click to “Buy tickets on EventBrite”. This kind of “blocking” shouldn’t happen in modern web applications but is surprisingly common in Shiny applications. It happens because a single R process handles all of the server-side processing for multiple users—one long-running task can prevent any other task from proceeding, hampering interactivity both between and within user-sessions.
Fortunately, Shiny’s support for asynchronous programming can alleviate this problem. In the asynchronous approach, you start tasks running without having to wait for them to complete. But, this requires a change in mindset for many programmers and there are a few concepts to understand before you can take advantage of this approach. So, what are you waiting for? Sign up for this workshop!
By the end of the workshop, participants will…
- understand how within-session and between-session blocking can arise in a Shiny app
- understand the basics of asynchronous computation
- solve between-session blocking with future/promise
- solve blocking the modern way, with ExtendedTask
About the speaker

Russ has previously worked in molecular biology and bioinformatics. He holds a PhD in Molecular Physiology and MSc in Mathematics. Russ is an author of several CRAN packages and mentor on the R-for-data-science community.
Workshop 3 - Maps in Shiny - Pedro Silva
Maps can be a visually striking way to present data in a Shiny application. With {leaflet}, you can add markers, icons or shapes to highlight specific places, or colour regions of a map according to data values. The user can zoom to focus on areas of interest. In this workshop you will learn how to present geographic data in a shiny application. We will also show some pitfalls that may arise when you try to make shiny do too much work when a map is recreated or updated.
By the end of the workshop, participants will…
- create a map using {leaflet}
- embed maps in Shiny
- plot markers over a map to highlight points of interest
- colour geographic regions according to data values
- add legends and other annotations to a map
- efficiently update an existing map using leafletProxy()
About the speaker

Pedro is a full stack developer with over 15 years of experience in the field, loves front-end and R Shiny development, and is a moonlight practitioner of JavaScript dark arts.
Workshop 4: Figma and User-Interface Design for Shiny - Dr Keith Newman
Applications should look attractive, be engaging, and work intuitively for users. All of these aspects benefit from spending time focussing on user-interface (UI) and user experience (UX) design during app development. Indeed, we find that clients provide lots of feedback on the look and feel of an app, and that it is useful to prepare a view of the overall design even before any interactive functionality is implemented, so that design feedback can be obtained as early as possible.
Graphical tools like Figma allow the designer to build both coarse- and fine-grained illustrations of how an application or website will look, and simulate the user workflow through the application. The designs can be shared with clients, and feedback gathered through comments pinned to the design.
This workshop requires no prior experience in UI/UX design and will guide you through your first steps in Figma, demonstrating how to quickly prepare design ideas for Shiny applications. We’ll also get you started with creating some components—reusable modules of your design that can transition into different states. You will need a Figma account to participate; there is a free-tier that is sufficient for the workshop.
By the end of the workshop, participants will…
- create simple wireframe designs in Figma
- set font styles and colour palettes consistently across your design
- use the bootstrap UI kit in Figma
- create small components with a simple transition into an alternative state
- use CSS to replicate a simple Figma design in Shiny
About the speaker

Following a PhD in statistics at Newcastle University, Keith developed software to improve road safety modelling. He enjoys creating Shiny apps and teaching the use of R.
What’s next?
Early bird tickets for the conference are still available at the time of writing, so don’t miss out! The full line up of speakers will be announced in the coming weeks. Still not convinced? Head over to our YouTube channel to take a look at talks from previous years to see what we have in store.
