shiny.router shiny.router logo

A minimalistic router for your Shiny apps.

R-CMD-check codecov cranlogs total

Now it’s possible to recreate a state of your app, by providing a specific URL, like:

  route("<your_app_url>/main",  mainPageShinyUI),
  route("<your_app_url>/other", otherPageShinyUI)

How to install?

It’s possible to install this library through CRAN


The most recent version you can get from this repo using remotes.


How to use it?

Basic usage:


root_page <- div(h2("Root page"))
other_page <- div(h3("Other page"))

ui <- fluidPage(
  title = "Router demo",
    route("/", root_page),
    route("other", other_page)

server <- function(input, output, session) {

shinyApp(ui, server)

Check the tutorial for more details on how to start using shiny.router.


An application that showcases the shiny.router features can be found here:

It was built using two other Appsilon Open Source packages:

You can also visit examples directory for some complete samples.

How to contribute?

If you want to contribute to this project please submit a regular PR, once you’re done with new feature or bug fix.

Reporting a bug is also helpful - please use GitHub issues and describe your problem as detailed as possible.


Appsilon is a Posit (formerly RStudio) Full Service Certified Partner.
Learn more at

Get in touch

Explore the Rhinoverse - a family of R packages built around Rhino!

We are hiring!