Barret Schloerke

code[c("architect", "manager", "philosopher")]
data[c("wrangler", "explorer", "visualizer")]

I'm a senior software engineer at Posit, where I build and maintain tools in the Shiny ecosystem for both R and Python, including shiny, py-shiny, shinytest2, shinylive, plumber, and reactlog. Lately that means OpenTelemetry for Shiny, LLM-powered apps, and custom UI with React.

Open source

GitHub activity

contributions in the last year

GitHub activity by year

— merged pull requests

Shades share one scale across years.

R, Python & TypeScript

Epics Language Links Package
shinyA web development framework for Python.354
  • Test mode · test_server() and exported test values for fast tests without a browser. · 9 PRs
  • Agent Skills · Skills shipped in the package so coding agents know how to write Shiny apps. · 10 PRs
  • Session lifecycle · session.destroy(), a soft teardown when a session closes, and session.allow_reconnect(). · 4 PRs
  • Release train skill · An Agent Skill that walks a py-shiny release from prep through PyPI, conda-forge, and shinylive. · 8 PRs
  • OpenTelemetry · Traces and logs for sessions, reactivity, and outputs. · 21 PRs
  • Bookmarking · Save and restore an app's state in the URL or on the server. · 11 PRs
  • Data frames · render.data_frame with editing, selection, sorting, filtering, and styles. · 35 PRs
  • Output renderers · shiny.render.renderer, a base class for writing your own output renderers. · 10 PRs
  • API reference · The quartodoc function reference and its runnable examples. · 8 PRs
  • UI components from bslib · Ported sidebars, cards, accordions, value boxes, tooltips, and popovers from R's bslib. · 23 PRs
  • Playwright testing · shiny.playwright controllers for every UI component, and the shiny.pytest plugin. · 10 PRs
shinyreactClient-Side 'React' Interface for 'shiny'176
  • Agent Skills · Skills for building and converting apps with coding agents, shipped in the package. · 6 PRs
  • Initial development · Ported the Python API to R, then CRAN checks, a pkgdown site, and webR builds for 0.1.0. · 23 PRs
  • ui.tsx apps · Write the whole page in React and serve it from R. · 20 PRs
shinyreactShiny UI infrastructure for React-based component rendering176
  • Agent Skills · Skills for building and converting apps with coding agents, shipped in the package. · 6 PRs
  • Renderer dependencies · Find and serve the HTML dependencies of Shiny outputs used inside React. · 7 PRs
  • ui.tsx apps · Write the whole page in React and serve it from Python. · 20 PRs
  • Testing · Playwright e2e tests, WireTap for wire payloads, and in-memory test_server(). · 10 PRs
  • Initial development · Began as shinyjson, a JSON spec renderer, then turned React-first and dropped json-render. · 16 PRs
@posit-dev/shinyreactReact hooks and components for Shiny (shinyreact) — the ui.tsx pattern's client runtime176
  • npm package · A dual build published as @posit-dev/shinyreact, usable with no server-side JS. · 8 PRs
  • Wire protocol · One versioned protocol, checked by a handshake, shared with the R and Python packages. · 6 PRs
  • React hooks · useShinyInput / useShinyOutput hooks, and ShinyOutput for classic Shiny outputs. · 13 PRs
GGallyExtension to 'ggplot2'156
  • S7 · Moved ggmatrix to S7 for ggplot2 4.0. · 4 PRs
  • Discrete stats · Count, cross, table, and statistic plots for GGally 2.0. · 8 PRs
  • ggduo, ggnostic, and friends · Plot matrices for two groups of variables, model diagnostics, and time series. · 5 PRs
  • ggpairs and ggmatrix · The generalized pairs plot and the plot matrix behind it. · 17 PRs
shinytest2Testing for Shiny Applications147
  • Migration from shinytest · migrate_from_shinytest() converts existing shinytest tests. · 4 PRs
  • Screenshots · Consistent screenshots, compared with a kernel density smoother to ignore stray pixels. · 7 PRs
  • Test recorder · record_test() writes a test while you click around the app. · 6 PRs
  • AppDriver · Drive a Shiny app in headless Chrome: set inputs, click, and snapshot values. · 30 PRs
shinyWeb Application Framework for R141
  • MCP Apps · Serve Shiny apps as MCP Apps, with author tools for LLM clients. · 5 PRs
  • Session lifecycle · session$destroy(), a soft teardown when a session closes, and clean state on reconnect. · 5 PRs
  • OpenTelemetry · Traces and logs for sessions, reactivity, and outputs through {otel}. · 10 PRs
  • Quosures · exprToFunction() and installExprFunction() accept quosures, including inject()ed ones. · 3 PRs
  • devmode() · One switch that turns on the options you want while developing an app. · 3 PRs
  • testServer() · Test server functions and modules in memory against a mock session. · 4 PRs
  • reactlog integration · Record every reactive event so reactlog can draw the reactive graph. · 9 PRs
  • Plot brushing · Plot click and brush events carry CSS and image coordinates, and brushing works in WebKit. · 4 PRs
@posit/shinyEasy interactive web applications with R141
  • TypeScript · Ported shiny.js to TypeScript, moved the build to esbuild, and published the types. · 12 PRs
plumberAn API Generator for R130
  • pr_*() API · The pipe-friendly router API and consistent R6 methods of plumber 1.0. · 7 PRs
  • Docker · Docker images for running plumber APIs. · 4 PRs
  • Async · Promise and future support for long-running endpoints. · 4 PRs
  • Serializers and parsers · Body parsers chosen by content type, and serializers for many output formats. · 9 PRs
  • OpenAPI docs · OpenAPI v3 specs and pluggable docs pages (Swagger, RapiDoc, Redoc). · 13 PRs
learnrInteractive Tutorials for R70
  • Exercises · Safer exercise evaluation, checker functions, and clearer errors. · 9 PRs
  • Quiz questions · Questions rebuilt as Shiny modules, with a custom question API. · 12 PRs
promisesAbstractions for Promise-Based Asynchronous Programming48
leafletCreate Interactive Web Maps with the JavaScript 'Leaflet' Library44
reactlogReactivity Visualizer for 'shiny'42
shinyloadtestLoad Test Shiny Applications32
htmltoolsTools for HTML32
shinyliveRun 'shiny' Applications in the Browser27
shinyswatchBootswatch + Bootstrap 5 themes for Shiny.21
bslibCustom 'Bootstrap' 'Sass' Themes for 'shiny' and 'rmarkdown'20
shinyliveRun Shiny applications running Python in the browser.19
chromoteHeadless Chrome Web Browser Interface17
htmltoolsTools for HTML generation and output.17
posit-sdkPosit SDK for Python16
sortableDrag-and-Drop in 'shiny' Apps with 'SortableJS'12
shinytestTest Shiny Apps12
httpuvHTTP and WebSocket Server Library12
trelliscopejsCreate Interactive Trelliscope Displays11
meetuprAccess Meetup Data10
lmmparParallel Linear Mixed Model9
swaggerDynamically Generates Documentation from a 'Swagger' Compliant API9
rmarkdownDynamic Documents for R8
leaflet.providersLeaflet Providers8
autocogsAutomatic Cognostic Summaries8
shinychatChat UI Component for 'shiny'8
shinychatAn AI Chat interface for Shiny apps.8
lazyrmdRender R Markdown Outputs Lazily7
leaflet.extrasExtra Functionality for 'leaflet' Package7
gqlr'GraphQL' Server in R7
chatlasA simple and consistent interface for chatting with LLMs7
packagedocsBuild Website of Package Documentation6
sassSyntactically Awesome Style Sheets ('Sass')6
websocket'WebSocket' Client Library6
flexdashboardR Markdown Format for Flexible Dashboards6
webshot2Take Screenshots of Web Pages6
cachemCache R Objects with Automatic Pruning5
laterUtilities for Scheduling Functions to Execute Later with Event Loops5
vetiverVersion, Share, Deploy, and Monitor Models5
testthatUnit Testing for R5
querychatFilter and Query Data Frames in 'shiny' Using an LLM Chat Interface5
querychatChat with your data using natural language5
trelliscopeCreate and Navigate Large Multi-Panel Visual Displays4
leaflet.esri'ESRI' Bindings for the 'leaflet' Package4
webshotTake Screenshots of Web Pages4
webdriver'WebDriver' Client for 'PhantomJS'4
fastmapFast Data Structures4
narwhalsExtremely lightweight compatibility layer between dataframe libraries4
plumber2Easy and Powerful Web Servers4
graphqlA GraphQL Query Parser3
ggplot2Create Elegant Data Visualisations Using the Grammar of Graphics3
gtEasily Create Presentation-Ready Display Tables3
redocGenerates 'Redoc' Documentation from an 'OpenAPI' Specification3
shinyvalidateInput Validation for Shiny Apps3
jquerylibObtain 'jQuery' as an HTML Dependency Object3
routrA Simple Router for HTTP and WebSocket Requests3
brand.ymlUnified Branding with a Simple YAML File3
brand_ymlRead brand yaml files, a unified way to store brand information.3
Details
  • PRs are my merged PRs. Hover a count for Reviews: others' PRs I reviewed.
  • Epics are big pieces of work, dated and counted by my merged PRs whose titles match. A package's epic bars share one time scale.
  • Role comes from each package's author list.
  • Downloads are everyone's: CRAN via cranlogs, PyPI via pypistats, and npm.
  • Each sparkline has its own scale, so read them for shape. Hover for monthly values.

Other repos

Links Repository PRs
rstudio/shinycoreciApplication-level automated tests for Shiny106
posit-dev/py-shiny-siteThe documentation website for Shiny for Python71
DivadNojnarg/outstanding-shiny-uiOutstanding User Interfaces with Shiny CRC Press book online version29
rstudio/shiny-examples28
schloerke/shinyjsterRun javascript testing which will autokill an app on successful testing24
posit-dev/shiny-issue-triageA place where we can auto-label issues in other shiny team managed repos20
posit-dev/shinyliveRun Shiny on Python and R (compiled to wasm) in the browser19
rstudio/shiny-workflowsGitHub Actions workflows for Shiny and related packages18
posit-dev/shiny-showcase-bioinformaticsA Quarto gallery of Shiny apps and packages for computational biology12
rstudio/hex-stickersRStudio hex stickers9
posit-dev/open-source-websitePosit Open Source Website9
rstudio/gradethisTools for teachers to use with learnr7
rstudio/shinycannonLoad generation tool, part of shinyloadtest7
DivadNojnarg/OSUICodeStandalone code for the "Outstanding Shiny UI" Book7
posit-dev/py-shiny-templatesTemplates for Shiny for Python6
conda-forge/staged-recipesA place to submit conda recipes before they become fully fledged conda-forge feedstocks6
r-lib/actionsGitHub Actions for the R community5
posit-dev/skillsA collection of Claude Skills from Posit5
3rd-Eden/memcachedA fully featured Memcached client build on top of Node.js. Build with scaling in mind so it will support Memcached clusters and consistent hashing.3
securingsincity/react-aceReact Ace Component3
rstudio/rstudioRStudio is an integrated development environment (IDE) for R3
rstudio/shiny-testing-gha-exampleExample testing Shiny application with GitHub Actions3
posit-dev/posit-confMaterials for rstudio::conf3
r-wasm/actionsGitHub Actions associated with R WebAssembly tasks3
quarto-ext/shinyliveQuarto extension to embed Shinylive for Python applications3
posit-dev/connect-extensionsHome for Posit Connect extensions3
conda-forge/py-shiny-feedstockA conda-smithy repository for py-shiny.3

Earlier work

Links Project Where Years
rbokehR interface to the Bokeh visualization library.Purdue University
DVLFunctionally reactive JavaScript library binding data to visualizations.Metamarkets
helprFriendlier HTML documentation for R, with search across packages.Rice University
cranvasInteractive plotting canvas for R, drawing a million points in under a second.Iowa State University
tourrGeodesic interpolation and basis generation for tour methods in R.Iowa State University
DescribeDisplayPublication-quality R graphics from GGobi plots.Iowa State University
geozooLibrary of high-dimensional geometric objects, including the new Hyper Ring Torus.Iowa State University

Talks & workshops

Links Title Venue Date
Beyond Bootstrap: Building Custom Shiny UI with Reactposit::conf(2026)
OpenTelemetry in R: Capturing Traces, Logs, and Metrics for Shiny ApplicationsOpen Source in Pharma
{GGally}: Success and Long-Haul Maintenance Strategiesggplot2 extenders
Observability at scale: Monitoring Shiny Applications with OpenTelemetryposit::conf(2025)
{plumber2}: Streamlining Web API Development in RuseR! 2025
{querychat}: Natural language interfaces for interactive data graphics in ShinyJSM 2025
AI Kung-Fu 🥋: Training your LLM client in two function callsShinyConf 2025
{shinylive}: Serverless Shiny applications workshop. An exercise in deploying your app to GitHub PagesR/Pharma 2024
Data frames in Shiny for Pythonposit::conf(2024)
{shinylive}: Serverless Shiny appsShinyConf 2024
Lessons learned from testing 2500+ Shiny Apps every dayShinyConf 2023
{shinytest2}: Regression testing Shiny applicationsJohnson & Johnson Shiny Day
{shinytest2}: Regression testing Shiny applicationsrstudio::conf(2022)
{shinytest2}: Regression Testing for Shiny ApplicationsR/Pharma Shiny for FDA Submissions
shinytest2: Regression Testing for Shiny ApplicationsShinyConf 2022
plumber + future: Async Web APIsHarvard R User Group
An intro to plumberHarvard R User Group
plumber + future: Async Web APIsrstudio::global(2021)
Expanding R Horizons: Integrating R with Plumber APIsRStudio Webinar
Episode 14: Shining a Light on learnrShiny Developer Series
Episode 13: Inside Plumber 1.0Shiny Developer Series
Episode 12: reactlogShiny Developer Series
Reactlog 2.0: Debugging the State of ShinyStatistical Programming DC
Reproducible Shiny apps with shinymetaABACUS 2019
Debug Large Data Apps: shiny + reactlog + sparklyrAdvanced R workshop, Northeastern University
Reactlog 2.0: Debugging the State of Shinyrstudio::conf(2019)
ShinyNASA Datanauts
Cognostics: Metrics enabling detailed interactive visualization of big dataCSESC 2017
Web Scraping with R
tidyverse[c("magrittr", "dplyr", "tidyr")]Purdue Graduate Statistics Seminar
Cognostics: Metrics enabling detailed interactive visualization of big dataJSM 2016
ggduo: Pairs plot for two group datauseR! 2016
Analysis and Visualization of Large Complex Data with TesseraSpring Research Conference, IIT
Analysis and Visualization of Large Complex Data with TesseraPurdue Graduate Statistics Seminar
Analysis and Visualization of Large Complex Data with TesseraIowa State Graphics Research Group
Analysis and Visualization of Large Complex Data with TesseraNUMBAT Seminar, Monash University
gqlr = GraphQL + R: a data query language and runtimeWOMBAT 2016
Web Scraping with RAmerican Credit Acceptance
Trelliscope: D&R visualization toolFields Institute Big Data Visualization
ggplot2: displaying spatial and temporal dataPurdue Spatial Statistics Seminar
gitPurdue Working Group
Reducing Working Environment InefficienciesPurdue Graduate Statistics Seminar
helpr: Help for RIowa State Working Group
GGally: A Plot Matrix for All Variable TypesJSM 2010

Videos

Links Title Venue Date
Git Worktree-First Workflow + ConductorData Science Lab
Shiny 1.2 Release: Wrap your data frame with Narwhals! 🎉
Getting Started with {shinytest2} Part I · Example + basics
Getting Started with {shinytest2} Part 3 · Using shiny.testmode in {shinytest2}
Getting Started with {shinytest2} Part 2 · Exporting values
Programming Games with Shiny · Roll the Dice: with Quosures!
Programming Games with Shiny · Roll the Dice
Programming Games with Shiny · Guess the Number
Programming Games with Shiny · Dragon Realm
Maximize computing resources using future_promise()
{reactlog} Rundown

Blog posts

Links Title Date
Introducing shinyreact: React UI backed by a Shiny server
Shiny for Python 1.8
Shiny updates: R 1.14, Python 1.7, bslib 0.12
Bringing OpenTelemetry to R in production
Shiny for Python 1.6 brings toolbars and OpenTelemetry
OpenTelemetry + Shiny for R v1.12
Tool Calling UI in shinychat
promises v1.5.0
Shiny at posit::conf(2025)
Posit at SciPy 2025
Shiny 1.4 brings bookmarking and Generative AI docs
Shiny for Python 1.2.0
Testing Shiny Apps in Python
Announcing Shiny for Python 1.0
Editable data tables in Shiny for Python 0.9.0
Introducing: Shiny Express
Shiny for Python 0.6.1
Shiny for Python 0.6.0
Shiny for Python 0.5.0
Shiny for Python 0.4.0
Shiny for Python out of alpha
plumber 1.1.0
Shiny 1.6
learnr 0.10.0
leaflet 2.0.0

Papers

Links Title Journal Year
Parallel computing in linear mixed modelsComputational Statistics 35(3): 1273–1289
Escape from Boxland: Generating a Library of High-Dimensional Geometric ShapesThe R Journal 8(2): 243–257
The Generalized Pairs PlotJournal of Computational and Graphical Statistics 22(1)
Delayed, Canceled, on Time, Boarding… Flying in the USAJournal of Computational and Graphical Statistics 20(2)
Monitoring the 2008 Election VisuallyChance 23(3)