Back to experience

MegaETH · Flux · Product and UX rebuild

Flux

Rewriting the complete UI and defining UX beyond Figma

Flux is MegaETH’s official token-staking portal, with KPI milestones driving token unlocks and distribution. Before launch, I rewrote the complete UI in two days alongside the evolving design and defined UX beyond the mockups. It launched after handoff.

20k+
UI lines rewritten in one weekend
1 weekend
Complete UI delivery
Beyond Figma
UX rules and states defined
Back
Mobile overlays close through history

8 chapters · 2m 18s

01

Six design rounds show how product focus moved

Figma V1–V6 and live V7 record the full evolution: long Portfolio pages, homepage marketing, slogans, brand stories, KPI dashboards, and multiple action panels. Enlarging the desktop frames in sequence shows the homepage repeatedly shifting between actions, narrative, and product data. V7 ultimately stops forcing everything into one homepage: Overview owns product guidance, participation guidance, and overall KPI progress, while the separate KPIs page owns progress for each KPI.

02

I proposed a preferred option and a fallback around user tasks

My January 29 feedback on V6 addressed page responsibilities, information priority, and exposed concepts: first consider a separate introduction page; if the structure stays, reprioritize Home. The TL and PM said these judgments closely matched investor feedback and the redesign goals. The final pages settled on separate Overview and KPIs responsibilities.

  • Prefer a separate introduction page so Home can focus on global KPIs; let Portfolio answer personal stake, estimated rewards, and earned rewards first
  • If the introduction stays on Home, consider replacing the right-hand Updates with Active KPIs to bring decision-relevant progress into the first view
  • Rewards are allocated by how long MEGA remains staked: longer staking means higher maturity and reward weight
  • Each stake creates a Position; multiple Positions are combined by MEGA amount into weighted maturity
  • Keep Stake / Unstake primary, and explain Position or maturity only in How It Works, the staking dialog, and My Commitments

03

The UI followed the design; the UX still needed definition

The evolving mockups explain why the UI needed repeated alignment; they were not the source of the UX decisions. I completed the full UI rewrite while separately defining information hierarchy, route-aware Drawers and Modals, mobile Back, stable headings and visual anchors, motion timing, and same-size skeletons beyond the mockups.

04

Every overlay became a reversible route

The useRouteStack implementation retained in Terminal illustrates how to organize this interaction: createRouteStack("drawer") creates an isolated Context, Provider, and hooks so URL state, React state, and browser history share one stack. An overlay becomes a reversible, restorable path rather than just an open boolean. The film illustrates URL and drawer changes with screenshot animation.

  • URLSearchParams.getAll / append: repeated drawer parameters encode every layer in order
  • stack + stackRef + pushedDepthRef: update the UI immediately and track which history entries belong to overlays
  • pushState / replaceState / back / go: open, replace, remove one layer, or close the owned stack
  • usePathname / useSearchParams + Credenza: restore URL state, rendering a desktop Modal or full-height mobile Drawer

05

Consistency is more than a color system

I standardized title copy, heading regions, content regions, CTA placement, and close semantics across related overlays. Desktop Modal and mobile Drawer use different containers but carry the same content and state; changing overlay content or steps does not move the title or primary visual anchor.

06

Motion and loading still have to preserve layout

Headings reveal character by character, progress moves from its initial value to the target, and component entrances keep a shared rhythm. Every asynchronous region reserves the final content dimensions, so removing its skeleton replaces content without reallocating space or pushing the surrounding layout.

Evolution and delivery

V1–V3

Features and pages kept accumulating

Portfolio, KPIs, action panels, and guidance kept appearing together before page responsibilities and visual weight were stable.

V4–V6

From brand narrative back to the product dashboard

The homepage moved through a slogan and brand story before returning to a desktop with overall and per-KPI progress. Active KPIs still sat below the fold while Updates occupied the right column.

Jan 29 · V6 feedback

Proposed a preferred option and a fallback

Separate the introduction so Home can focus on global KPIs; if it stays, consider replacing the right-hand Updates with Active KPIs. Also raised personal-information priority and concept exposure in Portfolio.

Pre-launch weekend

UI delivery and UX definition ran in parallel

Followed the evolving mockups through a 20,000+ line UI rewrite while separately defining hierarchy, route stacks, mobile Back, overlay consistency, motion, and loading behavior.

Live product

Overview and KPIs split responsibilities

Overview presents product guidance, participation guidance, and KPI Overall Progress; the separate KPIs page shows progress for each KPI.

Evidence

Evidence boundary: the original Flux repository is unavailable. Product claims use Figma history, the product-feedback screenshot and project notes I retained, plus live behavior observed on September 3, 2026. The Route Stack chapter documents the same implementation preserved by the author without inferring other internal code.