Three Django developers, a B2B app, nightly Celery tasks. The CTO hesitates: OVH VPS with home Ansible, or Clever Cloud "git push". PaaS costs €120/month all-in; VPS €20 plus roughly eight hours/month billed consultant ops.
The trade-off is not technical first — it is team attention capacity.
What managed removes from a small team
| Task | Django-friendly PaaS | Self-managed VPS |
|---|---|---|
| Deploy | Git push | Fabric/Ansible |
| HTTPS | Automatic | Certbot |
| Postgres | Managed add-on | You patch |
| Celery worker | Dedicated container | Supervisor |
| Scaling | Slider | Manual |
Managed does not remove Django bugs — it removes nginx nights.
What the server offers in return
Low infra cost if load is stable. System version freedom (geospatial libs, etc.). Low-level debug (tcpdump, pg_stat). No vendor lock-in on deployment. Trade-off: someone must own production — even at twenty percent FTE.
Frequent hybrid compromise
App and workers on PaaS. Managed cloud Postgres (RDS, Scaleway DB). Static/media on object storage plus CDN. Avoid Postgres on same VPS as Gunicorn — classic small-team mistake.
Checklist before choosing
How many hours/month infra incidents these last six months? Are Celery and Redis SLA-critical? EU compliance need (FR/CH host)? PaaS budget over 24 months vs VPS plus annual consultant?
The climax: the trade-off is who interrupts the sprint
Calculate opportunity cost of a feature not shipped during an incident.
Decide and move forward without blind spots
First assign a production owner — even part-time — or choose PaaS. Then separate database from app server. Test deploy and rollback on both options in staging. Finally compare Python offers via the compare tool and directory.
Frequently asked questions
Is there "managed Django" like managed WordPress?
Python PaaS manage runtime and deployment — not business framework or migrations. You remain responsible for code and data.
Celery and workers on PaaS?
Yes — workers billed separately; check whether Redis or RabbitMQ broker is managed or self-provisioned.
Minimum VPS for Django?
2 GB small traffic; 4 GB if Postgres and Celery on same machine. Separate database as soon as possible.
When does self-managed win?
Half-time ops available, atypical stack, or PaaS too expensive for modest stable load over 12–24 months.
Managed Django or server: the right trade-off is where nobody becomes sysadmin by accident on a Friday evening.
