Why I Build My UX Projects in Next.js
A designer who codes is a different kind of designer. Here's why I think in Next.js when I think about interfaces.
I started as a designer. I learned to code because I kept running into the limits of static prototypes, they couldn't capture motion, state, or real content. Learning Next.js changed the way I design.
Prototypes That Feel Real
When your prototype is a real application, you stop making the comfortable design decisions that only look good in Figma. Real data breaks layouts. Real users find edge cases. Building in Next.js forces those problems to surface early.
The Performance Constraint Is a Design Constraint
Next.js makes you think about load time as part of the design. Image optimisation, font loading, route prefetching, these aren't afterthoughts. They're part of the experience.
Server Components Changed How I Think About Data
With React Server Components, the distinction between "what the server knows" and "what the client needs" becomes a design decision. Do users need this information immediately? Can it load progressively? These questions shape the interface.
Type Safety as Design System Enforcement
TypeScript acts as a design system enforcer. If a component expects a `variant: "primary" | "secondary"` prop, it's impossible to use it in a way that breaks the design intent. Types make the design system load-bearing.
I still design in Figma. But I think in Next.js.
Enjoyed this post?
See more of my work or get in touch.