Acoruss
Seven products. All running.
Web applications and platforms for businesses in Kenya and beyond. Django, Go, PostgreSQL, Docker. Four public, three internal. Here's the full list.
See the workPublic products
These face end users directly. Real traffic, real revenue.
Marketing site for a Nairobi interior studio. Six service pages (curtains, blinds, shutters, fabric sourcing, installation, restyling), a project gallery, FAQ, Google Reviews integration (5.0 from 21 reviews), behind-the-scenes video, and WhatsApp CTAs on every page. Mobile-first, Open Graph meta tags, responsive. Django, Tailwind, DaisyUI, PostgreSQL, Docker, GHCR.
Writing services platform with full order lifecycle: inquiry, payment, assignment, delivery, revision. Service catalog (ghostwriting, research, academic, policy, SEO, editing). Four role-based dashboards (client, writer, admin, superadmin). Writer invite system with earnings visibility. Integrated payments via Acoruss Payments API, file attachments via Azure Blob, transactional email via Acoruss Mailer. Google OAuth login. WCAG AA accessible. Playwright E2E tests. Django 5.2, PostgreSQL 16, Tailwind v4.
Group gifting for social events (weddings, birthdays, graduations, fundraisers). Hosts create an event and share one link. Guests contribute without signing up. Three contribution types: gift items, cash funds, general pools. 3% flat fee shown upfront. MPESA and bank transfer payouts. Instant receipts with reference IDs. Public withdrawal log for accountability. Live activity timeline. Flagged event moderation. Webhook-based payment callbacks with Cloudflare Tunnel for dev. Django 6, PostgreSQL 17, ASGI, Acoruss Payments + Mailer integration.
Event discovery for Nairobi. Browse by time (Today, Tonight, This Weekend) and filter by mood. Three dashboards: public discovery, organizer submissions, curator moderation. AI-powered ingestion pipeline extracts events from sources with a QA step before publishing. AI conversational assistant recommends things to do. UUID-based shareable event URLs with view/click analytics. Celery background tasks, Redis caching, django-celery-beat scheduling. Django 5, PostgreSQL, MinIO/Azure Blob, Google OAuth.
Internal products
Operator tools and infrastructure. These power the public ones.
The tool that built this page. A control plane for managing dozens of static marketing sites from one server. Each site is a single YAML manifest. Two tiers (basic-landing, small-business). No per-site Node build; sites are themed instantly from brand tokens over one shared stylesheet. CLI and authenticated dashboard drive the same core engine. Caddy serves with on-demand TLS and OWASP headers. Media in Azure Blob with short-lived SAS URLs baked at render time. Custom domains via GoDaddy API. Domain expiry monitor auto-flips sites to a branded dead page. Umami analytics (self-hosted) with optional GA4. Drift verification via simweb verify. Written in Go 1.26, deployed under systemd in prod.
AI CRM for social-commerce businesses. Pulls Instagram DMs and WhatsApp messages into a unified inbox. AI classifies intent (price inquiry, product question, complaint) and assigns priority. Every conversation auto-captured as a structured lead (name, contact, platform, product interest, status). Follow-up reminders at 12h, 48h, 5 days. AI reply suggestions grounded in the seller's product knowledge base. Auto-generated shareable product pages. Analytics dashboard (Chart.js) tracking message volume, lead conversion, response times. Instagram OAuth connection in under two minutes. Django 6, async ASGI, PostgreSQL, Ruff, pytest.
Transactional email platform that replaced Mailgun. REST API for single and bulk sending. Jinja2 templates with variable substitution. Real-time delivery feed over WebSockets (Django Channels). Email tracking: opens, clicks, bounces, complaints, reputation. Per-service isolation with separate quotas, tracking toggles, and fallback config. Scoped API keys with IP allowlisting. Primary SMTP with Mailgun fallback and a Redis circuit breaker. DKIM signing. Async sending via aiosmtplib. Celery + RabbitMQ for background jobs. OpenAPI docs with Scalar UI. Powers email for GoTo Writers, Zawadi, and SimWeb. Django 6, Python 3.14+, PostgreSQL.
How it's built
Backend
Django 5/6 or Go 1.26. PostgreSQL everywhere. Redis for caching and queues. Celery when async work is needed. Gunicorn + Uvicorn for ASGI. Ruff for linting, pytest for tests.
Frontend
Tailwind CSS v4 and DaisyUI on every project. Vite for builds where needed. No React, no Vue, no SPA complexity. Server-rendered Django or Go templates with progressive enhancement.
Infrastructure
Docker containers, GitHub Actions CI/CD, GHCR for images. Azure Blob Storage for all media. Caddy for reverse proxy and automatic TLS. Umami for privacy-respecting analytics. Systemd in production.
Internal services
Products consume each other. Acoruss Mailer sends email for three products. Acoruss Payments processes money for two. Google OAuth and django-allauth handle auth on every Django app. WhiteNoise serves static files everywhere.