Streamlit Community Cloud is the default answer when someone asks "where do I deploy my Streamlit app?" It's free, it's official, and it works. But "works" has a lot of asterisks — sleeping apps, 1 GB RAM limits, no authentication, and no custom domains. At some point, most teams outgrow it.
The question is what to move to. The options range from $0 (self-host on a spare machine) to $500+/month (dedicated cloud instances), and the right choice depends on your actual requirements. This post breaks down every realistic option with honest pricing, real limitations, and specific use cases where each one makes sense.
Streamlit Community Cloud: what you actually get
Let's start with what's free, because it's more limited than most people realize.
Pricing: Free. No paid tier exists — Snowflake (which acquired Streamlit) pushes enterprise users toward Streamlit in Snowflake, not a paid cloud tier.
RAM: 1 GB per app. This is a hard limit. If your app loads a DataFrame larger than about 600-700 MB (accounting for Streamlit's own overhead), it crashes. No warning, no graceful degradation — the app restarts and shows an error.
App sleeping: Apps sleep after roughly 7 days of inactivity. When a visitor arrives, the app cold-starts in 30-60 seconds. This was previously more aggressive (closer to 3 days), but even 7 days means your Monday morning users will frequently hit the spinner if the app isn't visited over the weekend.
Authentication: None in any meaningful sense. You can restrict access to members of your GitHub organization, but that requires every viewer to have a GitHub account and be added to your org. There's no password protection, no SSO, no role-based access. For internal business tools with sensitive data, this is usually a dealbreaker.
Custom domains: Not supported. Your app lives at your-app.streamlit.app.
Secrets: Supported via the secrets management UI, but limited to approximately 2 KB. Fine for a database connection string and an API key, but tight if you have multiple credentials.
Repos: Community Cloud deploys from GitHub repos. Public repos work on any GitHub plan. Private repos require at least a GitHub Pro account.
Best for: Open-source projects, portfolio demos, personal prototypes, and small tools where cold starts and lack of auth are acceptable trade-offs.
Self-hosting on AWS, GCP, or a VPS
Self-hosting is the option with the widest range — it can cost $5/month on a cheap VPS or $200+/month on a properly configured cloud setup. The price difference is almost entirely about reliability and operational complexity.
The minimal setup: A single EC2 instance (t3.small, ~$15/month) or DigitalOcean Droplet ($12/month), Docker, nginx as a reverse proxy with WebSocket support, and Let's Encrypt for SSL. Total hosting cost: $12-20/month.
The production setup: A container service (ECS, Cloud Run, or Kubernetes), a load balancer with SSL termination, an auth proxy (OAuth2 Proxy, Cloudflare Access, or Authelia), monitoring, and log aggregation. Total hosting cost: $50-200/month depending on instance size and services used.
RAM: Whatever you provision. That's the point — you're not constrained to 1 GB.
Auth: Whatever you build. The cleanest approach is putting an authentication reverse proxy in front of nginx. Cloudflare Access is the least-effort option if you're already on Cloudflare. OAuth2 Proxy works with Google, GitHub, Azure AD, and most other providers. But you're building and maintaining this yourself.
App sleeping: None — your app runs continuously. This also means you pay continuously, whether anyone is using it or not.
Custom domains: Yes, full control.
Operational burden: This is the real cost. WebSocket configuration in nginx trips up most people (miss the Upgrade header and Streamlit shows an infinite "Connecting..." spinner). SSL renewal needs automation. Process supervision needs a solution. You're maintaining infrastructure, not just an app.
Best for: Teams with existing DevOps capacity, specific compliance requirements, or apps that need more than 4 GB RAM and justifies the operational investment.
Fastero
Connect your database. Ask questions. Get dashboards.
Postgres, BigQuery, Snowflake, and 10+ sources — live-connected, AI-powered, no dashboard builder learning curve.
Try free →Railway
Railway is a PaaS (think modern Heroku) that deploys Dockerized apps from Git repos.
Pricing: $5/month base subscription on the Hobby plan, plus usage-based billing. RAM costs approximately $10/GB per month, and vCPU is billed per minute at around $0.000463/min. A small always-on Streamlit app (512 MB RAM) runs roughly $10/month total. A 2 GB app runs closer to $25/month. The Pro plan ($20/user/month + usage) adds team features.
RAM: Not capped by the platform — you pay for what you use. Practical limit is your budget.
App sleeping: No sleeping on paid plans. The free trial gives you $5 of credit to test with.
Auth: None built in. You'd need to implement authentication in your Streamlit app (using streamlit-authenticator or similar) or add a reverse proxy with auth. Railway doesn't provide an auth layer.
Custom domains: Supported on all paid plans.
Operational burden: Low. Railway handles Docker builds, SSL, deployments, and basic monitoring. You push code, it deploys. Logs are accessible in the dashboard.
Best for: Developers who want simple deployment without infrastructure management and don't need built-in auth. Good option when you're comfortable adding auth at the application layer.
Render
Render is another PaaS in the Railway mold, with a slight emphasis on simplicity.
Pricing: Web services start at $7/month for the Starter tier (512 MB RAM, 0.5 CPU). Standard is $25/month (2 GB RAM). Pro is $85/month (4 GB RAM). Platform fee is $19/month for the Individual plan, $29/user/month for Teams.
RAM: Tied to your instance tier. 512 MB on Starter, scaling up to 4 GB on Pro. Higher tiers available on enterprise plans.
App sleeping: Free tier web services sleep after 15 minutes of inactivity — far more aggressive than Community Cloud. Paid tiers are always-on.
Auth: None built in. Same story as Railway — auth is your problem.
Custom domains: Supported on paid plans.
Operational burden: Very low. Git-push deploys, managed SSL, auto-scaling on higher tiers.
Best for: Teams already on Render for other services. The platform fee makes it less attractive as a standalone Streamlit host compared to Railway unless you're running multiple services.
Heroku
Heroku lost its free tier in November 2022 but remains a viable, if aging, option.
Pricing: Basic dynos are $7/month (512 MB RAM, no sleeping). Standard-1X is $25/month (512 MB, horizontal scaling). Standard-2X is $50/month (1 GB). Performance-M is $250/month (2.5 GB). Eco dynos ($5/month shared pool) sleep after 30 minutes.
Auth: None built in. Custom domains: Supported. Operational burden: Low — Heroku's developer experience is mature.
Best for: Teams with existing Heroku infrastructure. For new deployments, Railway or Render offer better value at comparable price points.
Ploomber Cloud
Ploomber is purpose-built for data app hosting — Streamlit, Dash, Panel, Voila, and Flask.
Pricing: Free tier gives you 2 apps with 512 MB RAM. Pro is $20/month for 10 apps and 2 GB RAM per app, including custom domains. Teams is $50/month for 25 apps, 4 GB RAM, team management, and password-protected apps.
RAM: 512 MB (free), 2 GB (Pro), 4 GB (Teams). These are per-app limits.
App sleeping: Not documented as aggressively as Community Cloud, but free-tier apps do sleep. Paid tiers are persistent.
Auth: Password protection available on the Teams plan ($50/month). No SSO integration on standard plans. This is better than nothing but not enterprise-grade.
Custom domains: Available on Pro and above.
Operational burden: Very low. Upload your app files, configure dependencies, deploy. Framework-specific — it understands Streamlit's requirements out of the box.
Best for: Teams deploying multiple data apps across different Python frameworks (Streamlit + Dash + Panel). The multi-framework support is the differentiator. If you only need Streamlit, other options may fit better.
Fastero
Fastero hosts Streamlit apps with authentication and secrets management as first-class features, not add-ons.
Pricing: Free tier gives you 1 GB RAM per app with built-in auth and secrets. Paid plans start at $20/month and unlock compute tiers up to 16 GB RAM per app.
RAM: 1 GB (free), 4 GB, 8 GB, and 16 GB tiers. You pick per app.
App sleeping: Apps currently restart when a viewer arrives (5-15 second cold start depending on dependencies and compute tier). Always-on mode is in active development but not shipped yet.
Auth: Built in by default. Every app sits behind Fastero's login gating. You can generate shareable links with either authenticated or open access. No streamlit-authenticator code, no OAuth setup, no auth proxy.
Secrets: Encrypted vault accessible via the standard st.secrets API. Same code you'd write for Community Cloud's secrets — no Fastero-specific imports.
Custom domains: Not available yet (on the roadmap).
Operational burden: Minimal. Upload a .py file or connect a GitHub repo, select a compute tier, set secrets, deploy. The platform handles containerization, TLS, and process supervision.
Best for: Teams that need auth without building auth, apps handling larger datasets (up to 16 GB), and use cases where the Streamlit app lives alongside broader data workflows (NL2SQL queries, metric monitoring, etc.).
The decision matrix
| Community Cloud | Self-hosted | Railway | Render | Heroku | Ploomber | Fastero | |
|---|---|---|---|---|---|---|---|
| Monthly cost | Free | $12-200 | ~$10-25 | $26-110 | $7-50 | $0-50 | $0-49+ |
| Max RAM | 1 GB | Unlimited | Unlimited | 4 GB | 14 GB | 4 GB | 16 GB |
| Auth built in | No | DIY | No | No | No | Teams only | Yes |
| Custom domain | No | Yes | Yes | Yes | Yes | Pro+ | No |
| App sleeping | ~7 days | Never | Never (paid) | 15 min (free) | 30 min (Eco) | Varies | Cold start |
| Setup effort | Minutes | Hours-days | Minutes | Minutes | Minutes | Minutes | Minutes |
The pattern is clear: you're trading between cost, auth, and operational burden. Free options give you no auth. Cheap options give you no auth. Self-hosting gives you auth but costs time instead of money. Purpose-built platforms include auth but cost more per month.
For most teams, the deciding factor isn't price — it's whether your users need to log in. If they don't (public dashboards, open-source demos), Community Cloud is hard to beat. If they do, you're either building auth infrastructure yourself or paying a platform that includes it. The build-vs-buy math usually favors buying once you account for the ongoing maintenance of a DIY auth setup.
Related: Best Platforms to Deploy Python Data Apps in 2026 | Streamlit vs Hex for Data Teams
Try Fastero free — deploy Python data apps with built-in auth, scheduling, and always-on hosting — no infrastructure to manage. No credit card required.

