Skip to content
Datanovia

FREE TOOL · RUNS IN YOUR BROWSER

Shiny Playground

Write R Shiny, run it live in your browser — no install, no server, no signup. Pick a starter, edit the code, and re-run it with ⌘/Ctrl-Shift-Enter.

app.R
library(shiny)
library(bslib)
library(ggplot2)

ui <- page_sidebar(
  title = "Sales dashboard",
  sidebar = sidebar(
    sliderInput("n", "Sample size", min = 20, max = 300, value = 120)
  ),
  layout_columns(
    fill = FALSE,
    value_box("Average order", textOutput("avg"), theme = "primary"),
    value_box("Largest order", textOutput("max"), theme = "text-success"),
    value_box("Orders", textOutput("count"), theme = "text-warning")
  ),
  card(
    card_header("Order value distribution"),
    plotOutput("plot")
  )
)

server <- function(input, output) {
  orders <- reactive({
    data.frame(value = round(rgamma(input$n, shape = 2, scale = 40), 2))
  })
  output$avg <- renderText(paste0("$", round(mean(orders()$value))))
  output$max <- renderText(paste0("$", round(max(orders()$value))))
  output$count <- renderText(nrow(orders()))
  output$plot <- renderPlot({
    ggplot(orders(), aes(value)) +
      geom_histogram(fill = "#3a86d4", colour = "white", bins = 24) +
      theme_minimal(base_size = 14) +
      labs(x = "order value ($)", y = "count")
  })
}

shinyApp(ui = ui, server = server)
Live app

A preview of what runs once you click. The real, interactive app loads in your browser.

$78
Average order
$243
Largest order
120
Orders

A bslib dashboard: value boxes and a live chart.

First run ~25 MB R/WebAssembly · ~15–30s · instant after · no account

Or start from an example:

How it works

  1. Edit the R code. Change a value, a plot, or the layout — it is a real, editable app.R.
  2. It runs in your browser. webR and Shiny are compiled to WebAssembly and execute entirely on your machine — there is no server.
  3. Explore and share. Edit the code and re-run it with ⌘/Ctrl-Shift-Enter, then Share a permalink that reopens your exact app.

What runs here

This is a real R Shiny app, compiled to WebAssembly and running inside your browser tab. There is no server: the R session, the reactive graph, and every plot execute locally, so your code never reaches us. Edit the app and re-run it — the runtime is the judge.

It is powered by webR and Posit's shinylive, which run R and Shiny as WebAssembly. The canonical sandbox is Posit's own shinylive; what we add is a curriculum around it and a way to take your work further. To deploy a real app, see the production Shiny series.

Limitations

A browser is not a server. Here is what you will run into:

  • No server-side resources. There is no file system, database, secret, or external API — everything runs in the tab and disappears when you close it.
  • Only WebAssembly-ready packages. shiny, bslib and ggplot2 work well; many heavy CRAN packages have no WebAssembly build and will not load.
  • Memory and speed are limited. A large or compute-heavy app is slower than on a server and can run out of memory.
  • Heavier on phones. It works on mobile, but the first download and the memory cost are noticeably higher there — a laptop is the better place to author.

Frequently asked questions

Do I need to install anything to run Shiny here?
No. There is nothing to install and no account to create. Click Run and R, Shiny and your app download and run inside your browser tab.
Can I save or share my Shiny app?
Yes. Share copies a permalink that encodes your exact edits, so anyone who opens it lands on your app running in their browser. Download saves your app.R to disk, and your edits are also kept in this browser between visits. Nothing is uploaded — the link carries the code itself.
Which R packages work in the Shiny Playground?
Packages compiled to WebAssembly, including shiny, bslib and ggplot2 — plus Datanovia's own widely-used R packages: ggpubr, rstatix, survminer, factoextra, ggcorrplot and datarium, which already cover most everyday plotting, statistics, survival analysis and multivariate work. Heavier packages take a few extra seconds to download the first time you load them. Packages with compiled code that hasn't been ported to WebAssembly won't load — the same constraint as any webR environment.
Is this shinyapps.io or shinylive?
It runs on Posit's shinylive, self-hosted here. It is a place to learn and experiment, not a deployment target: nothing is hosted and there is no public URL for your app. To deploy a real Shiny app for others, see the production Shiny series.
Can I use my own data?
The playground runs example data. To open your own CSV in the same in-browser R runtime and get an analysis written and explained for your columns, use Prova — your rows stay in the browser; only the column names and types are sent.