Everyday interfaces
Account pages, dashboards, and internal tools. I enjoy turning complex logic into an interface someone can figure out and get things done with.
- React
- Next.js
- Accessibility
zeRET / frontend developer
I build websites and web apps with React and Next.js. I enjoy figuring out how things work, making interfaces easy to use, and tinkering with animation.
Ideas become interfaces._
A little structure. A little motion. An interface that responds.
Move in to take over · click to explore
Open to project enquiries
Scroll to unfold ↓01 — 03What I do
The scene above breaks down into the things I enjoy building: useful products, reusable components, and thoughtful interactions.
Account pages, dashboards, and internal tools. I enjoy turning complex logic into an interface someone can figure out and get things done with.
When the same button appears in ten places, I’d like to change it once. I build shared components to keep pages consistent and make updates easier.
I like bringing interfaces to life through transitions, movement, and 3D. The trick is knowing when to stop, before a simple scroll becomes a theme park ride.
How I work
First I work out what someone needs to do. Then I build the screen and try it out. There’s usually something to simplify along the way.
01 / Understand the task
I start with questions: what is this screen for, where does the data come from, and what can someone do with it? The answers help me decide which components it needs.
02 / Build and check
Data can take a while to arrive, and requests can fail. I check these cases separately. Nobody wants to fill out a form and lose everything because one request went wrong.
03 / Work on the details
I adjust spacing, work on the visual hierarchy, and tune the animation. I check how the screen feels on a phone and whether it’s clear what happened after a button press.
Behind the interface
Interfaces change: new fields, pages, and requirements will come along. I try to make the next update easy to work on, whether it’s mine or another developer’s.
function calc(a: number[]) {
const x = a.reduce((s, n) => s + n, 0)
return x
}
const data = [120, 80, 40]
const result = calc(data)
A name should tell you what a function does or what a variable holds. I try to save the next reader a trip through several files to find out.