Welcome
Shiny for Python: Effortless Python web applications
Create efficient, reactive, and robust web applications and dashboards.
import seaborn as sns
from shiny.express import input, render, ui
df = sns.load_dataset("penguins")
ui.input_slider("bins", "Number of Bins", min=5, max=20, value=15, step=1)
@render.plot(height=300)
def plot():
sns.histplot(data=df, x="body_mass_g", bins=input.bins())
#| '!! shinylive warning !!': |
#| shinylive does not work in self-contained HTML documents.
#| Please set `embed-resources: false` in your metadata.
##| standalone: true
##| components: [viewer]
##| viewerHeight: 400px
import seaborn as sns
from shiny.express import input, render, ui
df = sns.load_dataset("penguins")
ui.input_slider("bins", "Number of Bins", min=5, max=20, value=15, step=1)
@render.plot(height=300)
def plot():
sns.histplot(data=df, x="body_mass_g", bins=input.bins())
Why Shiny?
Shiny for Python empowers you to bring your data to life with interactive applications that are easy to build, customize, and share.
Pure Python – no JS required
Create sophisticated web apps in pure Python, using libraries you already know and love. Get started now by trying Shiny in your browser, asking Shiny Assistant to build you an app, or develop locally by installing and running a starter template.Batteries Included
Build delightful user interfaces using an extensive library of simple yet composable components and layouts. As your app grows, you’ll also appreciate advanced features like modules, theming, non-blocking tasks, bookmarking, and more.Ready for AI
Quickly build beautiful AI apps like chatbots and other streaming interfaces.Efficiently scalable
Reactivity enables Shiny to perform minimal updates, allowing you to develop sophisticated apps without the hassle of state management.From demo to production-ready
Shiny is great for one-off apps that help you demo a concept or quickly see your data. But Shiny apps aren’t toy apps–Shiny’s powerful reactive framework and extensible components mean your applications can evolve alongside your needs. Start simple, then customize and scale without switching frameworks.Plays well with others
Bring to life the Python packages you know and love with Shiny. Turn polars and pandas data frames into dynamic data grids. Breathe interactivity into any matplotlib or seaborn plot. Go further and build an app around sophisticated displays from altair, plotly, or any Jupyter Widget.Deploy with confidence
When it’s time to put your Shiny app on the web, you can choose to deploy on your own servers, on our hosting services, or even serverless with shinylive.Open source
Inspect, adapt, contribute, or join the forum or discord community! You can check out the code or make your own extensions.
Ready to dive deeper? Learn more about what makes Shiny unique.
Gallery and templates
Check out the Shiny Gallery for inspiration. Or kick start a new project with one of our starter templates.
Take Shiny for a spin
The next pages in this guide will help you install shiny, create and run your first application, help you find troubleshooting help, and deploy your app to the web (for free).
Or skip installation and try the shinylive playground in the browser!
Have a question? Join our community on our Discord server!