Plotly

How do Dash, Shiny, Streamlit, and Bokeh compare
as low-code, UI layers for AI and ML models?

DashShinyStreamlitBokeh
Languages SupportedPythonR onlyPython onlyPython
OSS LicenseMITAGPLApache 2.0BSD
Back-end ArchitectureStatelessStatefulStatefulStateful
Downloads/month890,000330,000900,0002,000,000
Web protocolHTTP(S)WebsocketsWebsocketsWebsockets
Recommended deploymentDash EnterpriseShiny Server Pro (RStudio Connect)HerokuHeroku or Anaconda Enterprise
User experienceWeb appModel output with controls in a Web pageNotebook with controlsNotebook or Web app
App structureMulti-pageSingle pageNotebook with codeSingle Page
Front endReactjQueryReactCustom-Only
InteractivityComplete: any component can be an input/output, including tablesPartial: some components can be inputs/outputsLimited: only widgets as inputs, graphs and tables can only be outputsComplete: any component can be an input/output, including tables
Styling controlDash Design Kit, Basic Bootstrap, or CSSBasic Bootstrap or CSSLimitedCustom-Only
Crossfiltering✔️✔️✔️
Dynamic LayoutsPattern-Matching Callbacks
Long Running Tasks✔️✔️
Year founded2017201220192013
GitHub contributors9668135536
GitHub Stars16.7K4.7K19.6K16.4K