Recommendation rails
Rails that rank themselves.
“You may also like.” “Complete the look.” “Recommended for you.” Rails that personalize from a shopper’s first visit and update after their next product view.
Machine learning engineer · Coframe · San Francisco
I build the machine learning that decides what you see next.
Recommendations, search and feeds at Coframe, built end to end: from raw shopper events to models serving live storefronts. Father of two. I think interfaces should be alive.
Everything here is drawn in ink, and everything works. Press things.Everything here is drawn in ink. Turn on JavaScript and the drawings come alive.
Big buttons. Real things happen.
01 — The shelf
A real recommender, running in this tab. Every drawing on this page sits somewhere in five topics. Play with one and the shelf updates what you seem to like, scores everything against it, keeps rows from turning into an echo chamber, saves one slot for exploring, and reorders itself. It learns only from what you deliberately open or play. Nothing is stored and nothing leaves your browser.
Cold start: these are Jonathan’s picks.
| Step | On this page | At Coframe |
|---|---|---|
| What gets ranked | Twelve drawings | Live product catalogs |
| What it learns from | The drawings you open and play | Real shopper behavior, from the first visit |
| The model | A Dirichlet over five topics | Learned embeddings and rankers |
| How it stays fresh | Updates after every open | Updates after the next product view and retrains on schedule |
| Where it runs | Your browser, in a fraction of a millisecond | A production ML API, fast enough to add no visible wait |
| How we know it works | You watch it move | Every model ships as an A/B test against what was already there |
02 — The workshop · At Coframe
All machine learning. All live.
Coframe uses AI to optimize and personalize websites. I build the machine learning underneath, end to end: the models that decide what each shopper sees, the platform that trains and serves them for every client, and the experiments that prove they work. Each machine below runs the real idea. Press its buttons.
Rails that rank themselves.
“You may also like.” “Complete the look.” “Recommended for you.” Rails that personalize from a shopper’s first visit and update after their next product view.
Words in. The right products out.
Models that rerank results by what a shopper means, trained on how people actually search and click across many stores.
Every grid, ordered for one person.
Collection pages and homepages ordered for each visitor. One product view and the grid reorders toward their taste.
Raw events in. Live models out.
Events, features, training, evaluation, publishing and serving in one place. A client’s full ML stack is a routine launch, and models retrain on schedule.
Live shoppers decide.
Every model ships as an experiment against what was already on the page, including established personalization vendors in their own slots.
Every experiment feeds the next.
Every test, won or lost, teaches an engine that proposes the next ideas for every client. Agents build them; people review them.
One loop, run for every client, every day. Raw events come in, live models go out, the experiment says whether they won, and the result feeds the next model.
03 — Side A · Three songs
Three songs for my family. Every word lands on the voice.
Songs made with Suno. The picture show is drawn live in your browser, in ink.
04 — The arcade · Track 02, as a game
Now playing
Follow the stolen ship for one song.
A five-minute action game set to “Three Hearts Inside a Stolen Ship.” Run an unwritten road through a hollow world while the Blight eats it behind you. Your weapons fire by themselves; every level is a choice that branches and evolves, so no two runs play the same.
Play Unwritten StarsKeyboard, touch or gamepad · Sound on
Game night
Guess the number. Price the room.
A trivia game for friends who think they know things. Everyone locks in a guess, the guesses become an odds board, and you bet on whoever you think is closest without going over. Play at a live table now, or start a room and text the link so everyone plays on their own phone, with voice chat and AI guessers who explain their terrible reasoning in the group chat.
Play Priced In05 — Raising two kids
Let kids meet hard things and find out they can learn them, with someone close by. Most of what I believe about learning, I believe more since becoming a father.
From “help me” to “I do it.”
The best sound in parenting is “help me” turning into “I do it.” A balance bike gets there faster than any lecture.
The little boat is Maggie.
On the walk home along the water, every boat gets a job in the family. The little boat is Maggie. The fat boat, I am told, is Daddy.
If it rolls, it gets studied.
Monster trucks, fire trucks, trains, cranes. If it has wheels, it requires investigation, ideally from very close up.
Five is the largest reasonable number.
Five books, every night, because five is currently the largest reasonable number in the universe. So far, the books are winning.
Five little ducks, in Mandarin.
Our home runs in Mandarin and English. The songs we sang to our kids, they now sing back to us.
He mixes. She eats the cheese.
He mixes the batter with great seriousness. His little sister supervises and handles the cheese.
A walk home from preschool can take three hours. Every boat, fire truck and unusual machine requires investigation.
Pay attention. Try things. Keep what works. Change your mind when reality disagrees. Leave room for surprise.
The same rule, at work and at home.