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

Languages SupportedPython, R, and JuliaR onlyPython onlyPython
OSS LicenseMITAGPLApache 2.0BSD
Backend ArchitectureStatelessStatefulStatefulStateful
Web protocolHTTP(S)WebsocketsWebsocketsWebsockets
Recommended deploymentKubernetes (Dash Enterprise)Shiny 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
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
Dynamic LayoutsPattern-Matching Callbacks
Long Running Tasks✔️✔️
Year founded2017201220192013
Funding (USD)$20M$8M$27M
GitHub contributors475554462
GitHub Stars12.5k3.9k10.1k13.7k