Technical overview
How I build production frontends
Frontend work for me starts with interfaces that survive real data: empty states, slow responses, long labels and mobile keyboards that change the viewport. I build component libraries with typed props and predictable state so the UI stays stable as the product grows.
Day to day I work with React, Vue and Astro, TypeScript, Tailwind or Sass, and careful client-side API integration. Content sites often fit Astro islands better than a full SPA; dashboards and SaaS apps usually need React or Vue with clear routing, form validation and measured loading states.
Performance and accessibility are part of the same job. I track LCP and CLS, split routes, lazy-load below-the-fold media and keep bundles lean. Markup stays semantic, focus order is intentional, and ARIA is used only where native HTML is not enough.
Common frontend tasks I help with
- How to rebuild a legacy jQuery UI as React or Vue modules
- How to fix CLS on product cards and image galleries
- How to split a large bundle without breaking shared state
- How to wire form validation to an existing REST API
- How to keep focus order correct in a multi-step modal
- How to lazy-load below-the-fold media without layout jump
- How to implement a design system with typed component props
- How to handle empty, loading and error states consistently
- How to add client-side routing without losing scroll position
- How to improve LCP on a marketing landing page

