Jan 2024 – Mar 2025
Block Power
Community engagement and voting platform
A customizable platform for US organizations working on health, wealth, power-building and civic campaigns. Community ambassadors earn points by inviting people and completing challenges, then redeem rewards. About 250 users.
- Role
- Sole frontend engineer
- Client
- Harvard professor
~250
users
1
app for every role
Problem
Ambassadors mostly used their phones, and several user types needed different features without a separate admin app.
Constraints
- One frontend engineer.
- Requirements came directly from the client on calls.
Architecture
What I built
Mobile-web-first
Designed for phone browsers first: forms, card UI, challenges, points, referral and reward flows, and voting and nomination screens.
Role-based access in one app
Multiple user types, each seeing different features, handled with role-based access control rather than a separate admin panel.
Direct client work
I estimated work and took requirement calls with the client alongside the project manager.
Decisions and trade-offs
No separate admin app
Choice: Role-based access inside one React app.
Trade-off: One codebase to maintain, with more care needed in routing and permissions.
Results
- Delivered the full frontend for about 250 users.
What I'd do differently
- Next time I would add automated tests around role permissions, so a change for one user type cannot leak features to another.
Next case study
Qbench →