← All projects

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