Published

Elfi. Portfolio System

Portfolio system built on content architecture and reusable UI

Role
UX Engineer
Year
2026
Context
Self-initiated product
02

Overview

Scalable content system built on a unified architecture and reusable UI primitives. A shared content model drives pages, navigation, and component rendering.

Design SystemsReactTypeScriptFrontend ArchitectureSystem Governance
03

Problem

Most portfolio sites showcase visual quality but fail to demonstrate system thinking, maintainability, and implementation discipline.

  • The site needed to feel intentional without collapsing into a one-off marketing page
  • Case studies, navigation, and section patterns needed a shared structure to stay coherent over time
  • Design-system thinking had to be visible in implementation, not only in visuals
04

Solution

The portfolio was engineered as a content-driven application with shared UI primitives, typed case study data, and focused routes. Design-system thinking is expressed through reusable components, semantic patterns, and consistent page structure across the live site.

  • Built repeated patterns around reusable primitives such as Overline, SectionHeading, and AppButton
  • Modeled case studies as typed content so previews, detail pages, and navigation derive from one source
  • Separated route composition from content data to keep iteration faster and lower risk
05

Key Decisions

Separate content from presentation

Case studies use structured data to power previews, pages, and navigation

Define reusable UI primitives

Core elements are abstracted into reusable components to ensure consistent behavior

Decouple routing from content logic

Structure and data are separated to enable faster iteration and safer updates

06

Role

  • Defined the portfolio as a product system rather than isolated pages
  • Structured the case study model for consistent narrative and metadata
  • Established reusable UI patterns and content rules
  • Aligned content decisions with frontend constraints and maintainability
07

Process

01

Product Framing

The portfolio was framed as a working product surface whose role is to demonstrate decision quality, not just visual polish.

02

System Modeling

Shared content structures were defined so grid cards, detail pages, and cross-project navigation could read from one typed source.

03

Primitive Extraction

Repeated section labels, heading stacks, and CTA behaviors were moved into reusable primitives to reduce drift across the interface.

04

Route Composition

Page-level components were organized around focused routes so browsing, reading, and system documentation stay distinct but coherent.

05

System Documentation

System rules were embedded into the product itself, making implementation standards visible through the live interface rather than a separate documentation page.

08

Architecture

The system separates content modeling, route composition, UI primitives, and interface logic to maintain clarity and scalability.

01

Content Architecture

Typed case study data used to drive previews, detail pages, and cross-project navigation

02

Page Composition

Focused routes for home, about, case studies, and individual case studies

03

Design System

Reusable primitives and semantic patterns keep hierarchy, spacing, and CTA behavior aligned

04

Interface System

React, TypeScript, Tailwind, and motion patterns support a polished interface with maintainable structure underneath

09

Challenges & Trade-offs

Content abstraction vs setup complexity

Decoupling content from presentation requires a stricter typed model and route composition, increasing initial complexity but enabling scalable updates without rewriting logic.

System transparency vs visual freedom

Exposing reusable primitives and system rules limits purely visual experimentation, but makes the architecture inspectable, consistent, and maintainable over time.

10

Outcomes

Outcomes

  • Built a content-driven system that ensures consistency across case studies, navigation, and page structure
  • Defined reusable UI primitives to reduce duplication and maintain visual and structural coherence
  • Decoupled content and routing logic to enable faster iteration and safer updates

Key Learnings

  • Scalable systems require clear separation between content, structure, and presentation
  • Reusable primitives reduce long-term complexity and improve maintainability
  • Aligning content decisions with implementation constraints is critical for system stability
11

Tech Stack

Stack

ReactTypeScriptpnpmVercel

Focus

Design SystemsContent ModelingRoute Composition