Prototypes, Demos, and Your Portfolio

Five years ago, "deploy a demo" wasn't on a data scientist's job description. You'd show a slide deck with plots during a meeting.

Something changed after ChatGPT. Stakeholders started expecting to interact with what you built — to type a query into a search box and see the results, to adjust a slider and watch the output change, to actually interact with the model rather than passively receive a presentation about it. This expectation has propagated down from executive demos into technical reviews, internship portfolios, and hiring decisions.

Building a working demo is now a real, increasingly non-negotiable data science skill. It's also the single highest-return-on-time investment you can make for your career right now. A recruiter who clicks through your deployed app and sees it work will remember you in a way that a bullet point on a resume cannot match.

Demo Frameworks
FrameworkWhat it isBest forDeploy on
Streamlit
Python
Fastest path from model to interactive demo — write Python, get a web app. No frontend knowledge needed.
Fastest to demo
Tight timelines, Python-only workflows, internal stakeholder demos
Streamlit Community Cloud · HF Spaces
Gradio
Python
ML-specific demos with built-in components for image, audio, and text. Excellent for model showcases on Hugging Face.
ML-native UI
Vision, NLP, and audio models; anything you want to share on Hugging Face
Hugging Face Spaces (free)
Flask
Python
Custom backends with full control over routing, auth, and API design — when Streamlit's layout isn't enough.
Full control
Custom APIs, complex backend logic, or pairing with a separate frontend
Any Python host · Docker · cloud VM
Next.js
JavaScript / React
Polished, production-grade web applications. What you'd build if this were a real product — used by Notion, eBay, The Washington Post.
Production-grade
Portfolio sites, products someone will rely on, anything that needs real UI polish
Vercel (free for personal) · Railway
PWA
JS / HTML / CSS
Mobile-first experiences that install like native apps without an app store. Works offline, installs to the home screen.
Mobile-first
Latency-sensitive or offline-capable tools; mobile-first user experiences
Any web host

Tight timeline and Python-only? Streamlit or Gradio. Want polish or a real product? Next.js. Most portfolios use at least two of these simultaneously — a Streamlit demo on Hugging Face Spaces linked from a Next.js personal site.

Streamlit LabStep 1 of 4
🤖

Step 1: Save your model

Before you can wrap a model in a demo, you need a saved model artifact. In scikit-learn, use joblib or pickle.

Codepython
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
import joblib

# Train
X, y = load_iris(return_X_y=True)
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X, y)

# Save
joblib.dump(model, "model.joblib")
print("Model saved → model.joblib")

Do these tasks to complete this step:

This lab uses the Iris dataset as a stand-in. Repeat the same steps with any model from your projects.

Streamlit Is for Demos, Not for Products

Streamlit is a remarkable tool for rapidly demonstrating an idea. It is not an appropriate foundation for a system that other people depend on — it wasn't designed for multi-user production traffic, fine-grained access control, or complex UI state.

💭Reflection

Think about the projects you've done in this program so far. Pick one and design a demo for it. What framework would you use? What would a user be able to do with it? What would you need to build that you don't currently have?