Panel documentation#

Panel is an open-source Python library for building data apps, from two widgets beside a plot in a notebook to a multi-page application served behind your own authentication. The same objects do both. A Panel component renders in Jupyter, JupyterLab, VS Code, Colab and marimo, and panel serve turns the file it lives in into an application without a rewrite.

Updates are declarative rather than script-level. You bind a function, or a component’s state, to the widgets that feed it, and when one of those changes only what depends on it runs again, so an app that loads four million rows does not load them again because a slider moved. Panel renders what your plotting library already produces, whether that is Matplotlib, Plotly, Bokeh, HoloViews, Altair, ECharts, Deck.gl or an ipywidget, and the same app grows from a bound function into components made of components as it gets larger, which is refactoring rather than rewriting.

For an overview of what Panel can do, see the Panel home page. This site is the documentation: guides, reference pages, and the API.

Learn#

Getting started

Install Panel, build your first app, and get an overview of how its pieces fit together.

Getting Started
Tutorials

Guided, end-to-end walkthroughs that build a real application step by step.

Tutorials
Explanation

Why Panel works the way it does: the reactive model, the two APIs, components, and design.

Explanation

Build#

How-to guides

Step-by-step recipes for the specific problems that come up: layout, auth, deployment, testing.

How-to
Components

Every component that ships with Panel, one page each, with the code that produced the example.

Component Gallery
App gallery

Complete applications with their source, most of which also run in the browser without a server.

App Gallery

Reference#

API reference

The classes, parameters and methods that make up Panel’s public interface.

API Reference
Upgrade guide

The backward-incompatible changes in each release, and how to update your code.

Upgrade Guide
FAQ

The questions that come up often enough to have a written answer.

FAQ

Community#

Ask usage questions on Discourse or Discord, report bugs and request features in GitHub issues, and see the contributing guide to get involved. The community page has more on where to find help and how to take part.

Sponsors#

The Panel project is grateful for the sponsorship by the organizations and companies below: