Shiny for Submission

Updates from the R Consortium R Submissions Working Group

PHUSE US Connect 2026 · AV09 {teal} Advance Session
Sam Parmar
Statistical Data Scientist, Pfizer

2026-03-25

The Journey So Far

Completed Pilots

Pilot Focus Status
1 TLFs via pkglite ✅ FDA accepted
2 Shiny app submission ✅ FDA accepted
3 ADaM datasets in R ✅ FDA accepted Aug 2024
4 WebAssembly + Containers ✅ Submitted 2024–2025
5 Dataset-JSON 🔄 Resubmitted Jan 2026, under review

Upcoming

Pilot Focus
6 Expanded ADaMs + displays
7 Simulated CDISC data

Note

All materials are publicly available on GitHub

Pilot 2: The First Shiny App to FDA

Goal: Example R-based submission containing a Shiny app, submitted through the current FDA e-submission system and process

What was submitted

  • Shiny app displaying the 4 TLFs from Pilot 1
  • Basic dataset filtering functionalities
  • Shiny code packaged as a proprietary R package via {pkglite}
  • Submitted via the eCTD portal (~2022 H1); accepted December 2022

What FDA had to do

  • Deploy the Shiny app on FDA infrastructure (laptop/server)
  • Reproduce the analysis results
  • Requested removal of p-values from filtered tables (p-hacking risk)

Team: Roche · Atorus · Merck · Eli Lilly · FDA: Paul Schuette · Hye Soo Cho · Reviewed: Oct 2023

Important

This was the first time a Shiny application was submitted and accepted through the FDA eCTD gateway.

Pilot 2 → Pilot 4: The Problem

Pilot 2 limitation

FDA reviewers needed to:

  1. Set up an R environment
  2. Install all package dependencies
  3. Run the Shiny server locally

This creates friction in the review process and reproducibility risk.

Pilot 4 question:

Can we ship the entire execution environment with the app?

Two approaches explored:

Pilot 4
├── 🐳 Containers
│   └── Docker runtime
│   └── Full system + R deps
│
└── 🌐 WebAssembly
    └── Runs in browser
    └── No R install needed
    └── via {webR}

Pilot 4: WebAssembly Track

What is WebAssembly?

Compiles applications into a portable, self-contained bundle that can be run directly within a web browser.

Key tools: - {webR} — R compiled to WebAssembly - {httpuv} — embedded web server - Pilot 2 Shiny app adapted for webR constraints

Submission milestone: WebAssembly package reached FDA eCTD gateway on September 20, 2024

FDA Reviewer Experience

  1. Extract submission bundle
  2. Run setup code to start local web server
  3. Open app in Microsoft Edge

No Shiny server. No R environment needed. Runs in the browser.

Repo: submissions-pilot4-webR

Team: Eli Lilly · Pfizer · Appsilon · J&J · Biogen · BMS · GSK

Pilot 4: Container Track

Docker container approach

  • Full Linux environment bundled
  • R + all package dependencies included
  • Submitted Summer 2025, tested across ~15 FDA environments
  • Docker issues encountered were resolvable

Critical finding (Dec 2025)

WSL is no longer permitted on FDA reviewer computers due to a security policy update. Docker on Windows requires WSL — making Docker-based submissions effectively blocked at FDA.

Unexpected finding

FDA reviewers preferred WebAssembly over containers — contrary to the team’s expectation.

WebAssembly only needed a browser. No WSL, no IT approval, no firewall issues.

Repos: submissions-pilot4-container · to-fda

Key Outcomes

Technical wins

  • Interactive Shiny apps viable in FDA submissions ✅
  • WebAssembly: runs in-browser, no R install required ✅
  • Containers: reproducible but WSL ban blocks Docker on Windows ⚠️
  • FDA eCTD now accepts .zip, .rds, .rdb, .rdx, .rda, .md, .rd natively (Aug 2025)

{pkglite} remains a valid, peer-reviewed approach — .zip is an added option, not a replacement

Regulatory wins

  • FDA Pilot 3 response letter: R ADaMs fully accepted
  • FDA verbal → written feedback loop established
  • All pilots publicly available as templates

Industry experts and FDA reviewers work collaboratively to improve regulatory science infrastructure

What This Means for {teal}

The submission pathway is open

Pilots 2 & 4 prove that Shiny apps built on frameworks like {teal} can be submitted to regulators.

Key considerations for {teal} apps:

  • Package as proprietary R package ({pkglite} or .zip)
  • Prefer CRAN-hosted packages — FDA reviewers favour known, vetted dependencies
  • Document all dependencies in ADRG (more detail than SAS requires)
  • Design for deployment on reviewer’s Windows infrastructure
  • For interactive filtering: avoid showing inferred statistics (p-values) on filtered subsets
  • Consider WebAssembly constraints for Pilot 4-style delivery

Discussion

Open questions

  1. How do we handle {teal} module dependency validation?
  2. WebAssembly for {teal} — what’s feasible today? (Note: {golem} was incompatible with webR; framework choices matter)
  3. Could Nix/Rix offer a lighter-weight alternative to containers for reproducible environments?

Workshop prompt

Have you tried deploying a {teal} app through your regulatory review process? What challenges did you face?

Resources & Next Steps

R Submissions Working Group

Key repositories - submissions-pilot2 - submissions-pilot4-webR - submissions-pilot4-container

Get involved

  • Join the WG — open to all
  • Pilots 6 & 7 launching 2026
  • Pilot 6: expanded ADaMs + AI/automation (won’t be submitted to FDA)
  • Pilot 7: realistic simulated CDISC data
  • Future: Nix/Rix for reproducible environments; AI-assisted ADRG generation under discussion

References - 2026 WG Update - Pilot 2 overview - Pilot 4 overview - FDA eCTD format expansion - PharmaSUG 2024 SS-344 - Appsilon: R in FDA Submissions — 5 Pilots - Eric Nantz (NESS 2025): A Whole New (Open) World

Thanks!

Slides: