Application architectures on Replit at different scales. Replit's container model, built-in database, and Deployments feature support architectures from simple scripts to production web services.
Best for: Scripts, bots, automation, learning.
# main.py - everything in one file
from flask import Flask
from replit import db
app = Flask(__name__)
@app.route('/')
def home():
count = db.get("visits") or 0
db["visits"] = count + 1
return f"Visit #{count + 1}"
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 3000))) # 3000: 3 seconds in ms
Limits: Sleeps after inactivity (free plan). 512MB RAM. Replit DB (50MB).
Best for: Web apps, APIs, 100-10K daily users.
Replit Deployment -> External PostgreSQL (Neon/Supabase)
-> External Redis (Upstash)
-> External Storage (S3/Replit Object Storage)
# Structured project layout
# main.py -> routes/ -> services/ -> models/
import os
from flask import Flask
from sqlalchemy import create_engine
app = Flask(__name__)
engine = create_engine(os.environ["DATABASE_URL"]) # External Postgres
# Use Replit Deployments for always-on
# Use external DB for persistence beyond container lifecycle
Best for: Production services, microservices, 10K+ daily users.
CDN (Cloudflare) -> Replit Deployment (API)
|
External DB (Neon Postgres)
External Cache (Upstash Redis)
External Queue (Upstash Kafka)
|
Replit Deployment (Worker)
# API service (Replit Deployment 1)
# Worker service (Replit Deployment 2)
# Each in its own Repl with own Deployment
# Communicate via shared database/queue
| Factor | Single-File | Modular + External DB | Multi-Service |
|---|---|---|---|
| Users | Prototype | 100-10K/day | 10K+/day |
| Database | Replit DB | External Postgres | External + cache |
| Persistence | Ephemeral | Durable | Durable |
| Cost | Free | $7-20/mo | $20+/mo |
| Always-on | No (free) | Yes (Deployment) | Yes |
| Issue | Cause | Solution |
|---|---|---|
| Data loss | Using filesystem/Replit DB | Migrate to external database |
| Container sleeping | Free plan limitations | Use Deployments or keep-alive |
| Memory limit | Large in-memory datasets | Stream data, use external storage |
Basic usage: Apply replit architecture variants to a standard project setup with default configuration options.
Advanced scenario: Customize replit architecture variants for production environments with multiple constraints and team-specific requirements.