← Work
04
One Project One MonthFrontend Lead · 2025

OPOM Portfolio

The problem.

One Project One Month is a Myanmar developer community that ships things — every month, a new project, a new team. The portfolio platform was the community's public face: portfolios, developers, ideas, timelines. It also had to be a workspace, with an admin panel that could actually govern a growing community without becoming a moderation nightmare.

The frontend was led by a small group of us, and that only worked because we spent the first weeks agreeing on shape — how routes would be guarded, how the client would store an auth token safely, how the Axios instance would handle a refresh mid-request without blowing up ten in-flight calls. Those weren't nice-to-haves. They were the seams the rest of the code hangs off.

Then there were the developers we were mentoring. A shared codebase is a mirror — every shortcut you take shows up as a shortcut someone else has to work around. Leading meant writing less clever code, more legible code, and reviewing pull requests slowly enough to explain why, not just what.

Shared frontends are only faster if you agree on shape before you write anything.
Request401RefreshQueue + retryResume
Refresh-token interceptor — in-flight calls queued during refresh
React 19 + Vite·TanStack Query + Zustand·Radix + Tailwind v4·Axios interceptor·AES-encrypted store
Admin panel — portfolios, ideas, users, timelines
Admin panel — portfolios, ideas, users, timelines

Leading a shared frontend isn't writing more code. It's writing the parts that would otherwise get invented three times — the Axios client, the auth store, the route guards — and writing them so the next person can extend them without asking permission. The interceptor queue and the encrypted store are the boring parts. They're also the parts I'd build first, next time.