Hi, I'm Flex, a frontend engineer in Nairobi, Kenya. I work mostly with React and TypeScript.
Motif: a local-first productivity app
Motif puts tasks, projects, focus sessions, and analytics in one workspace. You don't need an account or subscription, and it sends no usage analytics. Your data stays in the browser unless you export it.
You can switch between a list, a board with work-in-progress (WIP) limits, an Eisenhower matrix, and a seven-day schedule. A quick note like draft proposal in 3 days #work !high ~1h fills in the due date, project, priority, and time estimate.
I added no-code automations, .ics calendar export, and readable JSON import/export. Contrast checks run in the build, so a design-token change that lowers contrast fails before it ships.
React 19 TypeScript strict Vite Tailwind Vitest Zod · 275 tests across 30 suites · MIT
Bagged Up: a storefront for a Kenyan boutique
Bagged Up is a 50-item online shop I built for a Kenyan boutique. I handed it over to the owner in October 2026.
Customers choose M-Pesa or cash on delivery, then use WhatsApp to confirm stock and delivery with the owner. Delivery is KSh 250 in Nairobi and KSh 400 countrywide. Orders over KSh 5,000 ship free. The site shows the expected arrival date before checkout.
It's a static site on an edge CDN, with no framework, bundler, or runtime dependencies. I also wrote handover notes for the owner.
HTML CSS JavaScript · 61 pages · 38 site checks + 25 behaviour tests
Self Check-out System (React 19, React Router 7) · Password Generator (HTML, CSS, JavaScript) · Basic BMI (my first shipped project, December 2024)
- Core: React 19 · TypeScript (strict) · Vite · React Router 7
- UI: Tailwind · Radix UI · token-based design systems · hand-written CSS for static sites
- Data: Zod · React Hook Form · React Context ·
localStoragewith migration paths - Testing and quality: Vitest · Testing Library · ESLint · Stylelint ·
html-validate· contrast checks - Deployment: GitHub Actions · Vercel · Cloudflare Workers · strict CSP and security headers
📧 brandonflex108@gmail.com · 💼 linkedin.com/in/flex-brandon · 🐙 @Brandonflex
Email me about a frontend role or project.



