← Table of Contents
Chapter 6

Building Love into Code: How I Made tomylovemiwa.com

Valentine's Day. Long distance. A girlfriend who always wants to play computer games with me, and a boyfriend who plays soccer, basketball, and occasionally a console game with friends. The solution was obvious: build her a world she could play in.

The Problem with Distance

Long distance has its own grammar. You learn to compress things — the small moments, the idle time, the shared boredom that in proximity just happens. When you're apart, you have to be more intentional about everything. Quality over the accidents of closeness.

One thing my girlfriend loves that I've never been able to fully give her is gaming. She wants to play together. She's always asking. I grew up playing soccer and basketball, sports where the competition is physical and the whole point is being in the same place. I'll play a console game with friends occasionally, but I am not a computer gamer. I don't have the muscle memory, the vocabulary, the library of shared experiences that make gaming feel like home.

So for Valentine's Day, I did what made sense to me. I couldn't give her a gamer. But I could build her games. Specifically: games about us, that only we could play, that required knowing our relationship to win.

Happy Hacking

This project was something new for me in spirit, not just in scope. By this point I'd built Popper, I'd built curly-hair-ai.com, I'd worked through serious product problems under real constraints. But those were all built under pressure — users, timelines, something at stake beyond the thing itself.

This was the first time I sat down to code purely for the pleasure of it. No roadmap. No backlog. No one waiting. Just Cursor, a blank canvas, and the specific person I was making it for. I can code for fun now. That realization, quiet and genuine, is one of the things I carry from this project. Happy hacking is real and it feels different from productive hacking in a way that's hard to describe until you've done both.

Vibe coding is the right word for how this got built. I wasn't planning features. I was following the feeling — what would make her laugh when she opened this? What would make her feel seen? What's the hardest question I could put in the relationship quiz that she'd get right immediately and I'd probably get wrong?

The Games

I built four games, all love-themed, all carrying our relationship inside them.

Snake — the classic, reskinned with our relationship: the things you collected were milestones, photos, inside references. The visual language was ours.

Matching — a memory card game where the pairs were images and moments from our time together. You had to remember where things were, the same way you remember where you were when something happened.

Wordle — relationship edition. Every word was something specific to us. The vocabulary of two people in love is its own language and I put it in the puzzle.

Relationship Quiz — the one I was most nervous about. Questions about us, our history, our preferences, our habits. She knew all of them. That's the point.

Each game was built from scratch with Cursor. No game engine, no framework with a steep setup cost. Just the frontend stack, moving fast, building things that worked well enough to be fun. The standard for "done" was: does this feel like something she'll smile at? Not: is this production quality? The constraint freed things up.

The Prize

Finishing all four games unlocked the prize. Not a badge or a leaderboard score — a full travel itinerary planner for our dream trip to Korea and Japan.

I built the planner the same way I built everything else on the site: vibe-coded from scratch, no templates, just the tools and specificity it needed. It wasn't a generic trip generator. It had the details of places I'd actually researched for us — neighborhoods in Seoul, specific areas in Kyoto and Tokyo that matched what she and I both wanted to experience. It had the tools and logistics that a real trip would require. It was a promise rendered as an interface.

Coding the prize was the most personal part of the whole project. The games were fun and the love theming made them ours, but the itinerary was something we both actually wanted. It turned a Valentine's Day gift into a shared plan — something to look forward to, made real in the only way I know how to make things real.

What This Was Actually About

The best things I've built started with caring about a specific person. Curly-hair-ai.com started with her hair and the gap nobody had filled. This started with her wanting to play games with me and the distance between us on a day that's supposed to close distances.

There's something that happens when you build for someone you love with no other agenda. The standards shift. You're not optimizing for users — you're optimizing for one face, one reaction, the specific thing that will make this person feel like you really saw them. That level of specificity produces something you can't get any other way. You can't design for it. You have to feel it.

I also learned, quietly, that I have a relationship with coding that goes beyond the professional. It's something I can pick up to express things that don't fit in a text or a gift or a phone call. That's not something I expected to discover, and it's one of the best things this period of building has given me.