Gunicorn expertise, directly from its creator.
Benoît Chesneau wrote Gunicorn in 2010 and still maintains it. We help teams serve Python applications in production, and we develop and maintain Python software around it.
When Gunicorn is in the critical path.
Most production problems with Gunicorn are not bugs in Gunicorn. They are mismatches between the worker model, the application and the traffic. We find which one, and fix it.
- Workers timing out, restarting or running out of memory under load
- Latency spikes you cannot reproduce outside production
- Choosing and tuning sync, threaded or async workers
- Upgrades across Gunicorn and Python versions
- Deployment behind nginx, load balancers and containers
- Bugs that need a fix in Gunicorn itself, released upstream
Three ways to work with us
The same engagement model as all our engineering work, applied to your Python services.
Focused
Production review
How Gunicorn runs in your environment, ending in a written report and prioritised changes.
- Configuration and worker model
- Proxy, timeouts and limits
- Failure behaviour
Scoped
A fix or a project
A latency issue, a migration, a crash under load, or development work, done with your team.
- Investigation on real traffic
- Changes in your code or in Gunicorn
- Hand-over notes
Ongoing
Maintainer partnership
Recurring time from the maintainer, for teams that run Gunicorn at scale or need fixes prioritised.
- Direct line to the maintainer
- Sponsored fixes and features
- Upgrade advice
Python and Erlang together
When a system needs both, we connect them: Python applications served by Erlang, or Python code called from Erlang services.
Gunicorn stays free and open source.
Commercial work pays for maintenance. It does not change the licence or put features behind a paywall.
- Community support
- GitHub issues and discussions, in public, best effort. Open an issue
- Commercial work
- Private work on your systems and schedule, under contract and NDA. Engineering partnership