Shiny in Production 2025: Workshops

This article was first published on The Jumping Rivers Blog , and kindly contributed to python-bloggers. (You can report issue about the content on this page here)
Want to share your content on python-bloggers? click here.


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

Photo of Colin Fay

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

Photo of Dr Russ Hyde

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

Photo of Pedro Silva

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

Photo of Dr keith Newman

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.

For updates and revisions to this article, see the original post

To leave a comment for the author, please follow the link and comment on their blog: The Jumping Rivers Blog .

Want to share your content on python-bloggers? click here.