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.
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.
[!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 the released version from CRAN:
install.packages("shinyelectron")Or the development version from GitHub:
# install.packages("pak")
pak::pak("coatless-rpkg/shinyelectron")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.
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.
shinyelectron supports two app types, autodetected from the contents
of your appdir:
r-shiny: detected from app.R or
ui.R + server.Rpy-shiny: detected from app.pyBoth 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: thebundledandauto-downloadstrategies rely on the portable-r project, which currently publishes builds for macOS and Windows only. On Linux, useshinylive,system(the user has R installed), orcontainer(Docker or Podman). Python apps work with all strategies on Linux via python-build-standalone.
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.
install_nodejs() to install locally without admin
rightsPlatform 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.
_shinyelectron.yml referenceTurning 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.
electrify() function; automates Windows builds.electron-quick-start
repository and including portable R versions.bundled and auto-download
strategies.AGPL (>= 3)
electricShine
(R package)RInno
(R package)Photon
(RStudio Add-in)COVAIL
electron-quick-startDesktopDeployR
(framework)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.