REPLO
A dark, brutalist-leaning training app for serious lifters — designed and built end to end, from routine planning to an AI coach wired to your own data.

I design and build digital products end to end — from the design system and the interface down to the code that ships them.
I'm a senior full-stack developer who likes owning the whole arc of a product — the architecture and the APIs as much as the interface on top of them.
Day to day that's React and TypeScript on the front end against Node, Python and PHP services behind it: REST APIs, JWT and OAuth flows, web-socket rooms, payment and search integrations, and the performance work that keeps a dense interface fast. REPLO, SYNAPSO, Listofonik and QUIZIKAL are the side of that I own end to end — architected, built, shipped — and a design background is why they don't look like developer side projects.
A dark, brutalist-leaning training app for serious lifters — designed and built end to end, from routine planning to an AI coach wired to your own data.

A light, calm workspace for the whole self — habits, tasks, daily mood and energy, and a library of the ideas, films and books worth keeping. Designed and built end to end.

A shared jukebox for a room full of people. Join a session by QR or party code, add songs, and upvote each other's picks to decide what plays next — queue, votes and chat synced over web sockets.

A live quiz you run from one seat. The host drives every round and question from a control panel while friends play along from anywhere — kept in sync over web sockets.

REPLO is a dark-mode, brutalist-leaning fitness app for serious lifters. I designed it as a connected, multi-screen product — routine planning, live in-gym set logging, post-session analysis, and an AI coach that reasons over the user's own training data — plus a marketing site to launch it.
Visit the live app →
A persistent AI coach that answers from your real training history.
Exercise selection treated as real search, not a dropdown.
The in-gym screen, sized for sweaty hands and one thumb.
Every finished workout becomes a read-only analysis page.
Timer and stopwatch in one, opened from a header clock.
The loop that brings people back: plan, train, review, adjust.
An MCP server exposes each user's training history to any AI client they authorise. In-app, a persistent Coach widget opens a drawer that reads real logs to answer questions — grounded in the user's own numbers, not generic advice.
MOTIFS — faint grid background, radial accent glow, left accent rail on cards, 999px pill tags, a pulsing live dot and a conic light-trail on the coach widget.
SYNAPSO — your mind, organised. A personal operating system that holds habits, tasks, daily mood and energy, and a growing library of ideas, films and books — in one light, unhurried workspace. Designed and built end to end, and the tool I actually run my own projects from.
A week-at-a-glance that covers the body and the mind.
Build streaks across the days that matter.
A calm board that moves work from idea to done.
A commonplace book for everything worth keeping.
Structured capture without the friction.
Somewhere to park a thought before it's gone.
Most organisers stop at tasks. SYNAPSO puts a daily mental check-in on the home screen, right next to the to-do list — mood, energy, focus and stress, plus a line of reflection — so the work sits beside the state you did it in.
MOTIFS — soft 16–20px card radii, pill category chips, rounded avatar tokens, violet→magenta gradients on primary actions, and an animated particle field of nodes and links behind the login.
Listofonik is a real-time collaborative playlist — a shared jukebox for a room full of people. One person hosts a session; everyone else joins by scanning a QR code or typing a short party code, then adds songs and upvotes each other's picks to decide what plays next. Queue, votes, the now-playing and a live chat all stay in sync over web sockets.
Visit the live app →
A jukebox the whole room controls.
Scan a code and you're in.
A music video, or the visualiser — your call.
Search and queue in a couple of taps.
The party talks back.
Everything broadcast over web sockets.
Listofonik turns a playlist into something a group builds together. Add a track, upvote someone else's, and the queue re-sorts live — the crowd decides what plays next. Votes, queue order, the now-playing and the chat are all broadcast over web sockets, so every phone in the room stays on the same beat.
MOTIFS — a pulsing purple→magenta orbit visualiser, album art in its eye, glassy queue rows with upvote arrows, gradient wash along the bottom of the stage, and a chat rail down the side.
QUIZIKAL is a real-time, remote quiz platform. One host drives the whole game from a control panel — advancing rounds and questions, revealing answers, pausing and ending — while everyone else plays along from wherever they are, on a phone or a laptop, kept in sync over web sockets. Built to run a proper Christmas quiz with friends spread across the country.
Visit the live app →
One screen runs the whole room, live.
Write once, reuse every year.
Join with a code, play on any screen.
Not just text — the fun kind of question.
The payoff between every question.
Real rooms with a live pulse.
QUIZIKAL is built around one authoritative host. From a single panel they drive the session — advancing rounds and questions, revealing answers, pausing and ending — and every change is pushed to every player instantly over web sockets. The players just watch their screens keep up.
MOTIFS — big display numbers, a living green→amber→red gradient on every score card, green “go” states, gold highlights on the active question, and a compact control-panel layout for the host.