ekalazim.com
This portfolio — a working demonstration of senior frontend engineering: Next.js 15, a hand-tuned design system, and a strict performance budget.
- Role
- Designer & developer
- Year
- 2026
- Next.js 15
- React Server Components
- Tailwind v4
- Design tokens
Problem
A portfolio for a frontend engineer is itself the strongest sample of work — reviewed line by line by hiring panels. It had to look distinctive rather than templated, stay fast enough to pass a strict Lighthouse budget, and prove architectural intent in every decision, all while remaining trivial to extend phase by phase.
- The code is public and read as a hiring signal
- Distinctive brand without sacrificing performance or accessibility
- A structure that scales cleanly from foundation to blog to projects
Approach
I built on Next.js 15's App Router with Server Components as the default, dropping to client components only for genuinely interactive islands — the theme toggle, mobile nav, and tag filter. Every visual value flows through a design-token system in CSS variables, so light and dark modes are matched-mood expressions rather than a mechanical inversion.
Rendering strategy is deliberate per route: static generation for stable pages, incremental regeneration for the Notion-backed blog. Framer Motion is lazy-loaded, and the whole thing is linted and formatted with Biome to keep the codebase consistent.
- Server Components by default; client islands only where needed
- Three-accent design-token system shared across light and dark
- Per-route rendering strategy (SSG / ISR) chosen intentionally
Tradeoffs
Holding a strict performance budget means saying no to convenient dependencies and animation-heavy flourishes that would blow the JavaScript budget. The discipline shows up as restraint — accents used sparingly, motion reserved for moments that earn it.
A token-first system takes more upfront design work than hardcoding values, but it makes theming and future redesigns a change in one place instead of a hunt across components.
Outcome
The site ships as a static, accessible, token-driven build that holds its performance budget while carrying a warm, intentional brand. Just as importantly, the architecture makes each subsequent phase — blog, richer projects, contact — an additive step rather than a rewrite.
- Lighthouse performance held to the project's ≥95 target
- Accessible by default: keyboard-navigable, visible focus, semantic landmarks
- Phase-friendly architecture that extends without rework