Cohort programmes
Sessions, resources and a coach/assistant/learner role split, with invitations that bind on first sign-in.
Web App · Marketing Site · Full Stack
A cohort school with paid enrolment, mentorship and OKR tracking — plus the marketing site, blog and newsletter that feed it, on one backend.
learn.kuzahub.africaSessions, resources and a coach/assistant/learner role split, with invitations that bind on first sign-in.
Registration carries payment state; learners file claims with a reference and hosts verify them. Per-host payment profiles for M-Pesa and bank.
Goal cycles on a weekly, fortnightly or monthly rhythm, with objectives, key results, check-ins and mentor assignment.
Sectioned forms with typed questions, saved drafts a learner can resume, submissions and feedback.
An editable programme catalogue, enquiry capture for every form, and applications routed to the right inbox.
Subscriber list with one-click unsubscribe, scheduled broadcasts through Brevo, and a tagged blog with view counts.
KuzaHub teaches professionals how to be visible in their field, and was running it on WhatsApp groups, spreadsheets and manual payment follow-up. Cohorts couldn't be enrolled without someone chasing each learner by hand, mentorship had no record between sessions, and the marketing site was a separate static thing that couldn't tell anyone a programme existed. They needed both halves — the school and the front door — and they needed them to know about each other.
The decisions that shaped the product, in the order we made them.
Started from the real rhythm — sessions, resources, assignments, payment chasing — instead of from a course-platform template. That is what surfaced mentorship and goal tracking as first-class needs rather than add-ons.
Every table is scoped to an organization on a shared schema, so a second course host is a row rather than a redeploy. KuzaHub is tenant one of a product, not a one-off build.
No card gateway. A learner registers, pays by M-Pesa or bank, and files a payment claim with a reference; the host verifies it in-app. The awkward step was already happening — it just wasn't written down anywhere.
kuzahub.africa stopped being a brochure: programmes, enquiry forms, the newsletter and the blog all read and write the same database the school runs on, so a new cohort is published once.
Page views and named funnel events are logged so the team can see which parts of the product nobody opens — and cut them instead of guessing.
Named in full, because the question behind it is usually whether your own team could take this over.
2 sites
School and marketing site, one backend
Multi-tenant
A second course host is a row, not a rebuild
In-app
Payment claims verified where the cohort lives