The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

shinyelectron A hexagonal logo for shinyelectron

R-CMD-check Prototype Experimental

Turn any Shiny app (R or Python) into a standalone desktop application that runs on macOS, Windows, and Linux. No web server, no browser tab, no deployment infrastructure. Just an .app, .exe, or AppImage your users double-click to open.

pipeline overview

[!IMPORTANT]

This package is currently in the prototype/experimental stage. It is not yet on CRAN and may have rough edges. Not recommended for production applications at this time.

Install

Install the released version from CRAN:

install.packages("shinyelectron")

Or the development version from GitHub:

# install.packages("pak")
pak::pak("coatless-rpkg/shinyelectron")

Quick start

library(shinyelectron)

# Check your system
sitrep_shinyelectron()

# Try a bundled demo
export(
  appdir  = example_app("r"),
  destdir = "~/Desktop/my-first-app",
  run_after = TRUE
)

That’s the whole workflow: one call converts your app, wraps it in Electron, builds a distributable, and launches it. Takes about a minute for a small app.

Try a prebuilt demo

Each demo is packaged as a desktop app you can download, install, and launch. The Download Prebuilt Demos guide has a build of every demo, for every runtime strategy, on each platform, with a one-click installer for yours; or browse the releases page directly. The simplest are the shinylive builds: they need no R, Python, or internet, since everything runs inside the app. On Linux each download is a portable AppImage you can run straight away.

[!NOTE]

The macOS demos are signed and notarized under our Apple Developer Program membership ($99/year), so they open cleanly. The Windows demos are unsigned, so the first launch shows a Microsoft Defender SmartScreen prompt: choose More info, then Run anyway. If you distribute your own apps, you will need to pay for code signing on each platform to avoid these prompts, a recurring budget line item for organizations. Our development is on macOS and Linux, so if you would like to help fund a Windows certificate for these demos, sponsorship is welcome at github.com/sponsors/coatless.

What you can export

shinyelectron supports two app types, autodetected from the contents of your appdir:

Both types work with five runtime strategies for delivering the app to the end user:

Strategy What Ships First Launch User Needs Best For
shinylive Electron + WASM bundle Instant, offline Nothing Simple apps; deps that run in WebR or Pyodide (default)
bundled Electron + R/Python runtime Instant, offline Nothing Offline distribution; predictable runtime
auto-download Electron + downloader Needs internet Nothing Public distribution; smaller download
system Electron only Finds R/Python on PATH R or Python pre-installed Internal tools for users who already have R or Python
container Electron + container config Needs Docker Docker or Podman Complex system deps; reproducibility

shinylive is the default when runtime_strategy is not set. See the Runtime Strategies guide for the full decision matrix.

[!NOTE]

Linux note for r-shiny: the bundled and auto-download strategies rely on the portable-r project, which currently publishes builds for macOS and Windows only. On Linux, use shinylive, system (the user has R installed), or container (Docker or Podman). Python apps work with all strategies on Linux via python-build-standalone.

Prerequisites

These are required on the build machine (where you run export()). What end users need depends on the runtime strategy: nothing for shinylive, bundled, or auto-download; R or Python pre-installed for system; Docker or Podman for container.

Platform build tools:

Platform Requirement
macOS Xcode Command Line Tools
Windows Visual Studio Build Tools
Linux build-essential (gcc, make)

[!TIP]

Run sitrep_shinyelectron() to verify your system is ready before your first export. It checks everything above and tells you what’s missing.

Learn more

Acknowledgements

Turning Shiny apps into desktop apps is a problem many people have attacked over the years. shinyelectron stands on the shoulders of prior packaging attempts, community tutorials, and the broader WebR / Pyodide / Electron ecosystems. The list below credits the specific projects whose approaches directly informed this one; we’re grateful to the much larger community of contributors experimenting in this space.

Prior packaging attempts

Talks, tutorials, and templates

Upstream projects

License

AGPL (>= 3)

References

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.