Skip to content
Portfolio · 2026

Selected Work

A guided tour of things I've designed, built, and shipped.

→ Left / Right · Explore projects ↓ Down · Inspect the deep dive ESC · Bird's-eye overview

Use the arrows, your keyboard, or swipe.

Project 01

Affogato

A cozy focus timer where every minute on the clock earns beans to spend on voxel companions.

Astro React 19 zustand React Three Fiber drei

Affogato · Deep dive

The Challenge

[THE_CHALLENGE: describe the core problem Affogato solves and the key performance/architectural constraints — e.g. [TIMER_ACCURACY_CONSTRAINT], [PERSISTENCE_CONSTRAINT], [3D_BUDGET_CONSTRAINT]]

Engineering & Architecture

  • Stack choice: [STACK_RATIONALE: why [CORE_TECH_STACK] over the alternatives considered]
  • State management: [STATE_MANAGEMENT_DETAIL: store shape, selector strategy, and how the tick loop lives outside React]
  • Component ownership: [COMPONENT_OWNERSHIP_STRATEGY: boundary rules that keep the app extractable into a standalone build]

AI & Data Layer

[AI_DATA_LAYER: orchestration, data pipelines, or LLM/vector integration — or NOT_APPLICABLE]

Performance & Optimization

  • [ASSET_LOADING_OPTIMIZATION: how GLB models and the 3D chunk are loaded]
  • [RENDERING_OPTIMIZATION: frameloop policy, context budget, memoization strategy]
  • [BUNDLE_METRIC: eager vs lazy chunk sizes and what moved where]
Project 02

Evillevi Garden

A neobrutalist second brain where notes link, graphs render, and the design system is a living showcase.

Astro 6 Tailwind v4 React islands three.js uFuzzy D3

Evillevi Garden · Deep dive

The Challenge

[THE_CHALLENGE: describe the core problem the garden solves and the key performance/architectural constraints — e.g. [CONTENT_MODEL_CONSTRAINT], [ISLAND_HYDRATION_CONSTRAINT]]

Engineering & Architecture

  • Stack choice: [STACK_RATIONALE: why [CORE_TECH_STACK] for a content-first site with interactive islands]
  • State management: [STATE_MANAGEMENT_DETAIL: what stays server-rendered vs which islands own client state]
  • Component ownership: [COMPONENT_OWNERSHIP_STRATEGY: Astro kit vs React kit split and the design-token contract]

AI & Data Layer

[AI_DATA_LAYER: orchestration, data pipelines, or LLM/vector integration — or NOT_APPLICABLE]

Performance & Optimization

  • [ASSET_LOADING_OPTIMIZATION: content index generation and search payload strategy]
  • [RENDERING_OPTIMIZATION: 3D accent frameloop gating and reduced-motion behavior]
  • [BUNDLE_METRIC: per-island chunking results]
Project 03

[PROJECT_NAME]

[VALUE_PROPOSITION: single sentence stating the problem solved and for whom]

[CORE_TECH_STACK] [SECONDARY_TECH] [INFRA_OR_RUNTIME]
Live App [GITHUB_REPO_URL]

[PROJECT_NAME] · Deep dive

The Challenge

[THE_CHALLENGE: the core problem and the performance/architectural constraints — e.g. [LATENCY_CONSTRAINT], [SCALE_CONSTRAINT], [PLATFORM_CONSTRAINT]]

Engineering & Architecture

  • Stack choice: [STACK_RATIONALE: why [CORE_TECH_STACK] was chosen and what it was weighed against]
  • State management: [STATE_MANAGEMENT_DETAIL: [ARCHITECTURE_DECISION] and how state flows]
  • Component ownership: [COMPONENT_OWNERSHIP_STRATEGY: module boundaries and who owns what]

AI & Data Layer

  • [AI_ORCHESTRATION: agent/LLM orchestration approach, if applicable]
  • [DATA_PIPELINE: ingestion, storage, and vector/index integration]

Performance & Optimization

  • [ASSET_LOADING_OPTIMIZATION]
  • [RENDERING_PIPELINE_OPTIMIZATION]
  • [BUNDLE_SIZE_METRIC: before/after numbers]