Picking your school (first sign-in)
Why Keybaki bounces Kenyan teachers to /onboarding/school on first sign-in, what the picker does, and what happens if your school isn't in the registry.
The first time a Kenyan teacher signs in, Keybaki redirects you to /onboarding/school — a single-step gate that asks you to pick your school. You can't reach /, /plans, /library, or any other surface until you've answered. This article explains why and what your options are.
Why the gate exists
The library, CEA pool, and plan templates are scoped per school in two ways that need a school on file:
- Per-school plan visibility — your school's supervisors (HOD, DOS, principal) read your plans through
/school/plans. Without a school they wouldn't know whose plans to fetch. - Per-school timetable + class streams — your timetable blocks bind to class streams the school owns. Without a school, the block-edit dialog has nothing to bind against.
The gate only fires for role: teacher + country: KE. Parents, students, admins, and non-KE teachers skip it; they have their own scoping (children for parents, claimed-child for students, unrestricted for admins).
What the picker does
- Type your school name. The picker autocompletes against the KICD registry (22,000+ schools in Kenya).
- Tap your school. The page shows a confirmation card with Level, Type, County, Sub-county, KNEC code.
- Confirm writes
currentSchoolIdto your account. The gate releases — next navigation lands you on/.
You're now attached to the school, but as pending: you can browse the library and build your own plans right away, but you won't see students or appear to school staff until a verified school contact or admin confirms you actually teach there. See Getting confirmed at your school.
You can also fall through with Skip for now at the bottom, but the gate fires again on every navigation until you pick. We don't recommend it.
When your school isn't in the registry
The picker has an Add my school affordance when no autocomplete matches your query. The flow:
- Fill the new-school form: name, level (Primary / JSS / SSS), type (public / private), county, sub-county. KNEC code is optional but speeds up admin review.
- Submit. The school enters the registry with status
pendingand is attached to your account. - The gate releases — you can use the app immediately. Your school shows the Pending admin review chip until an admin verifies it.
Admins reach the queue via Admin → Verify schools. They confirm the school exists (county education office records, MoE listings, etc.), flip its status to active, and your account inherits the active state.
Once you've picked
The gate doesn't fire again. If you change schools later, use Transfer schools from /profile — see Transferring schools. Don't create a duplicate or pick a different school in the registry; the transfer path preserves your plan history.
Common issues
- My school's in the registry but the picker doesn't find it. Try a shorter / different spelling. The picker matches on substring, not phonetic. If still nothing, Add my school with the same name; admin will dedupe on review.
- I tapped the wrong school. Open
/profile → School affiliation → Transfer schools. Don't try to sign out and sign back in — your account is already attached. - Gate keeps firing even after I picked. Sign out, sign back in. The JWT carries
currentSchoolId; a stale session can still report null. Sign-out + sign-in mints a fresh JWT. - I'm a teacher but not in Kenya. Set your country in
/profile → Country(or pick Other (not yet supported) at signup). The gate is KE-only — non-KE accounts route directly to/without picking.
Related