Say you develop an interesting dashboard or machine learning model, how might want to share it with stakeholders? If you want them to run any amount of code (besides a small amount of JavaScript that can be run in the browser), you will need to find a way for your user to run your code. There are broadly three categories of deployment options. - **managed services**: these platforms as a service deal with most of the complexity of cloud hosting so you can focus on your app, but at a cost. - **cloud servers**: configure your own server on the cloud. Maximum flexibility and maximum complexity. - **vendor-specific**: if you are already using a specific library or tech, the vendor may have a plug and play option for deployment. Great option if available. You'll need to look at offerings including static sites, environments, custom domains, workflows (I like services that can deploy automatically when I push to my GitHub repo) and cold starts, runtime. ## managed services - [[Heroku]] - [[PythonAnywhere]] - Render - Deta.sh - Railway - Replit Agent: build and deploy web apps in minutes. - [Sevalla](https://sevalla.com/) ## cloud servers - Digital Ocean - Linode - AWS ElasticBeanstalk - [Google Cloud Run](https://cloud.google.com/run) ## vendor-specific - [Plotly Cloud](https://cloud.plotly.com/) (new!) - [Streamlit Cloud](https://docs.streamlit.io/streamlit-cloud) (free) - HuggingFace (Streamlit and Gradio) - [[base/Google Apps Script/Google Apps Script|Google Apps Script]] - Deepnote ### others - Google [[Cloud Functions]] - [[Kubernetes]] (on Google Cloud) (you don't need Kubernetes) - Google [[Compute Engine]] - Google [[App Engine]] ## running scripts online If all you need to do is run a script periodically online, you have a few more options. - [[GitHub]] with GitHub actions and a cron schedule. - Replit - Google [[Cloud Functions]] ## Web app tech stack options As new options become available or come to my attention, I add them here. ### Data Visualization & Dashboards * Plot.ly * Bokeh * Cufflinks * Folium (maps for dashboards) * Dash * Tableau * Ipywidgets, ipyleaflet, … * Microsoft PowerApps * PowerBI * Jupyter Notebook + Binder * Google Colab ### Web Deployment * Flask * Django * Streamlit * [Heroku](heroku.md) * GitHub Pages * Linode * Digital Ocean * Google Apps (Firebase, AppSheet, App Engine) ### Desktop Deployment * Tkinter * Cron Tab * PyOxidizer * Excel + VBA * Command Line Tools ### Databases & Back-ends * SQLite * PostgreSQL * MySQL * Google Sheets * AWS S3 ### Environments * Docker ### Geographic Data & Mapping * Pyproj (for projection conversion) * Google Earth Engine * Custom script tools using ESRI ArcGIS API (arcpy) * ESRI ArcGIS Story Map * ESRI ArcGIS Apps