Skip to content
Build in Public

The first page that actually looked like something

Up to now, the new Book A Sloth looked like a database in a trench coat. Real data, sure, but it rendered like a tax form. Today I built the first page that…

SD
Shubham Datarkar
· 3 min read
Updated

Up to now, the new Book A Sloth looked like a database in a trench coat. Real data, sure, but it rendered like a tax form. Today I built the first page that actually made me feel something — the public profile. The page a stranger lands on when they click a host's link. The face of the whole product.

I made a deliberate, slightly weird choice here: I built the part users see before I built the part the host uses. No dashboard yet. No settings. Just the shop window. And I did that on purpose, because of a motivation trick I've learned the hard way — when you build the boring internal machinery first, you spend two weeks staring at admin forms with no soul, and you lose the thread of why you're even doing this. Build the beautiful, visible thing early. It reminds you what you're working toward. It's fuel disguised as a task.

The profile page needed to hold a few things and hold them well: the host's name and bio, their avatar, a theme color that's theirs, and the cards for each service they offer. That's it. But "that's it" is where products are actually won or lost. Anyone can list data. Making a coach feel professional in the four seconds before their client decides to book — that's the entire job.

First problem: I had no real hosts yet. So I did what you do — I hardcoded a fake one. Gave him a name, a bio, three fake services, a color. Designed the whole page against this imaginary person. There's something freeing about designing for a fake user: you're not protecting real data, you're just chasing "does this feel right." I'll swap him for real auth later. For now, he's my muse.

Second problem, and the one I had to consciously stop myself from drowning in: colors. I will spend four hours nudging a hex code if you let me. So I didn't let me. I picked Tailwind and committed to a tiny, fixed set of design tokens — a handful of colors, a couple of font sizes, set spacing — and made a rule: I'm only allowed to use what's in the set. The second you give yourself infinite choices, you stop building and start decorating. Constraints aren't a limitation here, they're the thing that lets me actually ship. Pick your few colors, then go.

And then I pulled the host's theme color through so each profile tints itself. A small thing. A host picks "their" color and the page wears it. But that's the difference between "a listing on a platform" and "my page." Ownership is built out of small touches like that.

Then it happened — the moment I do this whole job for. I refreshed the page, and it looked nice. Clean. Intentional. Like a real product someone might actually pay for, not a college project. I leaned back and just looked at it for a minute. "Oh," I said out loud to an empty room. "This could actually be good."

That feeling doesn't last. It's not supposed to. By tomorrow I'll be neck-deep in the next problem and this page will feel obvious and unremarkable. But you have to catch those moments when they come, because they're rare and they're what carry you through the weeks when nothing works.

Behind the curtain, almost everything is still faked. No login. No booking. No payment. You can look at this beautiful page and do absolutely nothing on it.

Which is a perfect problem to have, because it means tomorrow I have to build the hard part: auth. And auth, I promise you, is where this story stops being fun for a while.

by Shubham DatarkarBuild in Public

Reactions

How was this article?

Newsletter

Never miss the next one

Get the latest playbooks, build logs, and the occasional unpublished idea straight to your inbox. One signal a week — no noise.