Founder Notes7 min read

Code Is the Easy Part: 5 Months Building a Consumer Product as a Solo Dev

I thought building a consumer side project was mostly about writing great code. 5 months and 100 users into building Favly, I've realized code is the easiest part of the whole thing. Here's what actually turned out to be hard.

April 5, 2026Favly Blog

I used to think building a consumer side project was mostly about writing great code. Ship the features, polish the UI, and users would figure it out. Five months into building Favly as a solo dev, I've come to a different conclusion: code is the easiest part of the whole thing. Everything around the code — the details, the distribution, the positioning, the dozen tiny frictions that decide whether someone sticks around — is where the real work lives. And none of it is taught in a CS curriculum.

Quick context: Favly is a link-in-bio for entertainment lovers. Instead of listing your job title and where you went to school, you list the movies, shows, games, books, anime, music, YouTube channels, and podcasts that actually tell people who you are. I started building it on weekends as a vibe-coding project because I wanted a better way to tell someone "this is me" without turning it into a paragraph of awkward self-description. I'm a pure tech background person — backend, APIs, databases, the usual — and this is the first consumer product I've ever tried to take seriously.

Lesson 1: Consumer products are built from details you'd never notice as an engineer

A few weeks ago, a TikTok commenter told me my old domain, "fav-ly", was annoying to type because of the dash. I stared at the comment for a minute, then went to check the analytics — and realized that yeah, every time someone typed it, there was a tiny cognitive hiccup. A dash in the middle of a brand name. An extra key. A moment of "wait, was there a dash?" As an engineer, I would have dismissed it as a non-issue. As someone trying to get strangers to visit a site, I couldn't.

I spent that weekend rebranding everything from "fav-ly" to "favly" — new domain, new logo treatment, every reference in the codebase updated. It felt like a stupid amount of work for something so small. But that's the thing about consumer products: they're almost entirely composed of small things. Onboarding flows that need rewriting twice because the second step feels slightly wrong. Category sections that need to be draggable because users want to put their favorites first. Loading states that need to be 200ms faster because that's the difference between "snappy" and "clunky". None of these show up on a roadmap. All of them determine whether someone stays.

Side-by-side comparison of the Favly landing page before and after the rebrand from fav-ly to favly
Before and after the rebrand. Same product, one less dash, measurably less friction.

The shift I had to make, mentally, was from "what features should I build" to "what is every single user doing right now, and where are they getting stuck". The first question has a clear answer. The second one never stops having answers. That was uncomfortable at first. Now I think it's the actual job.

An early version of the Favly profile card on the old fav-ly.com domain, showing 129 total works
The current version of the Favly profile page with the updated branding, showing 223 works and a Prime badge
Left: one of the earliest versions of the profile, still on fav-ly.com. Right: where it is today after months of iterating on layout, categories, and visual hierarchy.

Lesson 2: Marketing is a universe I didn't know existed

Before I started, I thought marketing meant "post some stuff on social media and maybe run some ads." Then I actually tried to do it, and realized it's a discipline with as much depth as engineering — and I knew none of it. How do you define a target audience specifically enough to reach them? How do you write a hook that stops someone from scrolling? How do you design a landing page flow that takes a stranger from "what is this" to "I'll try it" in under thirty seconds? How do you measure retention in a way that's honest instead of flattering? Every one of these is a rabbit hole that goes deeper than I expected.

The realization that hit me hardest, though, was about where the moat now lives. With vibe-coding tools getting absurdly good, building a SaaS or an app is no longer the hard part — anyone with a weekend and Cursor can ship something that technically works. Which means the defensibility has quietly migrated out of the codebase. It's now in distribution, positioning, brand, community, and the hundreds of small decisions that determine whether your thing feels like the thing for a specific person. That realization alone rearranged how I spend my time. I still code every day — but I no longer assume the code is the leverage point.

A macOS Finder window showing a folder named "Favly marketing" containing 3.31 GB across 17 items
Five months of "the easy part", on disk. Not a single line of code in this folder.

Lesson 3: Being present beats being clever

I post a TikTok every two or three days. Most of them do nothing. Some take twenty minutes to film and edit. A few have brought in real users. I used to think "consistency matters" was the kind of motivational phrase people say when they have nothing specific to teach you. Now I think it's the most honest advice in the room.

Here's why: the algorithm, the audience, and luck all reward people who are in the room. You can't win a lottery you don't enter. You can't get lucky on a post you didn't make. And the weeks where I skipped posting because I was "focused on building" were always the weeks where nothing happened — no signups, no feedback, no momentum. The weeks where I forced out a quick twenty-minute video even when I didn't feel inspired were the weeks where something, however small, moved. Showing up is the infrastructure that everything else runs on.

A grid of TikTok videos posted for Favly, showing view counts ranging from 89 to over 12,000
A few months of TikToks. Most got buried. A couple broke through. The only pattern is that the ones I almost didn't post tend to be the ones that moved something.

Lesson 4: Cold outreach is less about conversion than about changing the person doing it

Every day I send around a hundred cold DMs on Instagram to college students, which is Favly's target audience. I literally go down the party school rankings and start messaging. About 95% of messages get ignored. Some people block me. A few are kind enough to reply with real feedback. A handful actually sign up.

On paper, this sounds like a terrible conversion funnel. But what I didn't expect was how much the exercise changed me, independent of the results. After you've sent a hundred cold messages in a single day, you stop caring what strangers think of you. The fear of looking desperate, the worry about "ruining your image", the hesitation before hitting send — all of it just evaporates, because you can't sustain those feelings at that volume. And that shift is worth more than any individual signup. It means the next time I need to email a stranger, pitch a feature, or ask for something uncomfortable, the friction inside my own head is gone. For a tech person who spent years avoiding exactly this kind of interaction, that's a quiet kind of superpower.

Screenshot of the Favly Instagram account's DM inbox with many "Sent" statuses indicating messages that never got a reply
A regular morning's outbox. Most go unread. A handful come back with real feedback, and occasionally with a signup.

Where I am now

Favly has around 100 real users as I'm writing this. Not a lot — I'm not going to pretend it's a rocket ship. But it's enough to answer the question that kept me up at night five months ago: is this a real need, or just my own weird itch? For some people, it turns out, it's real. They build profiles, share them, update them, care about how they look. That's enough to know the direction is right. What's left is figuring out which people, specifically, and how to reach more of them.

I've rewritten the Favly landing page copy more than twenty times. Every single version, at the moment I shipped it, felt like the final one. A week later, every single version felt wrong. I've made peace with the idea that this part might never end. "Explaining what your product is in one sentence" turns out to be one of the hardest problems in consumer software — and the fact that it sounds easy is exactly what makes it so hard.

Five months ago I thought shipping the product was the summit. Now I know it was the trailhead. Code is the part of the climb where you have gear, training, and a map. Everything after is the part where you learn to walk in weather you've never seen before.

If you're a tech-background builder thinking about consumer products

I don't have grand advice — I'm barely 100 users in. But if I could go back and tell myself one thing five months ago, it would be this: the skills that got you to "I can build anything" are necessary but nowhere close to sufficient. The hard stuff is on the other side of shipping. Making peace with that early, instead of treating marketing and distribution as distractions from "real work", would have saved me at least a month of frustration. The code is the easy part. Let yourself be a beginner at the hard part.

Favly is the product I've been learning all of this on. If you want to see the thing itself — or if you're curious what a consumer profile for your own entertainment taste would look like — you can build one in about thirty seconds. It's free, it's yours, and it's the best way to understand what I've spent five months obsessing over.

Build your free Favly profile and see your taste in one place.

Create your free Favly profile →

Found this useful?

Share it with someone who needs a better dating bio.

Share on Twitter