Chama Cha Mimi na Wewe
A party's whole public platform, inside 500 MB.
The public website and admin content platform for a Kenyan political party. Part civic newsroom (policy documents, governance reporting), part public participation forum (idea submission, issue reporting, manifesto crowdsourcing, polls, membership).
| Status | Live. |
|---|---|
| Role | Sole builder |
| Stack | Next.js (App Router, TypeScript) · FastAPI · SQLite |
| Host | Safaricom Cloud cPanel · chamachamiminawewe.co.ke |
| Limit | 500 MB disk, 1 GB RAM, 1 CPU core |
The live product


The shape of it
How it works
- A normal npm install on the server would not fit in 500 MB, so the frontend is built off-server into Next's standalone output: about 37 MB (9 MB compressed).
- The backend is about 53 KB plus a roughly 60 MB Python virtualenv, which leaves around 380 MB for the database and every uploaded image.
- The database and uploads live outside the app directory, so redeploying the app never touches them.
- SITE_URL is set at build time, because robots.txt, canonical URLs and Open Graph tags on prerendered pages are baked in during the build.
- Two silent cPanel Python-selector bugs are documented with their fixes: a missing PassengerAppType wsgi in public_html/api/.htaccess, and passenger_wsgi.py overwritten with a stub that loads itself forever. Both surface as the same blank 500.
What is not claimed
- SQLite is the right choice on this plan because there is no PostgreSQL and the filesystem is persistent. It is a constraint-driven decision, not a general recommendation.