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

Languages SupportedPythonR onlyPython onlyPython
OSS LicenseMITAGPLApache 2.0BSD
Back-end ArchitectureStatelessStatefulStatefulStateful
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
Dynamic LayoutsPattern-Matching Callbacks
Long Running Tasks✔️✔️
Year founded2017201220192013
GitHub contributors9668135536
GitHub Stars16.7K4.7K19.6K16.4K