Skip to main content

Code Therapy: How I Built Two Startups for 0 Users

Constantin Potapov
7 min

32,600 lines, 196 tests, 11 MVP stages, CI/CD, Sentry. Living users: zero. I was not writing a market. I was writing a sandbox without legacy.

I wanted a booking platform for experts. Calendly, only "for the Russian market." I did not know what that meant. Lawyers, psychologists, consultants, coaches. One person puts up slots, another books. The hole looked obvious.

I named it expert-booking.ru. I took a TypeScript full stack, a familiar hammer: Node.js, Express, React 18, Vite, PostgreSQL, Knex, Docker, a stub for YooKassa, Feature-Sliced Design on the front.

First pass

The code grew. The platform for people I had not met yet came out complete.

Backend about 1,600 lines: 14 migrations, 12 API modules, JWT with client, expert, admin roles, a payment stub.

Frontend about 31,000 lines: an admin with analytics, an expert calendar, bookings with payment confirmation, ESLint on layer borders, Tailwind.

Infrastructure: Docker Compose, Nginx, SSL, deploy scripts, Redis for sessions.

Technically it could launch. Next to it sat a 21-page marketing strategy: ₽1M a month in 18 months, four stages, AI on the fourth because it was 2024. Nobody read the document except me.

I did not stall on the code. I stalled on the first twenty experts. Whom to sell to, how to pull them off a working Calendly or a Telegram bot, what pain I was even closing. The plan to take Everest was ready. I had not left the house.

32,600 lines and 21 pages of text for people I had never spoken to.

Second pass, already in Python

A few months later I decided it would be different this time. FastAPI instead of Node: the hammer was familiar again. A shorter name, slot-me.ru. First three to five living people, then code.

I did talk to a few experts I knew: what they use to take bookings, where it rubs, how much they would pay, whether they would sit down in a new service this week.

Then I went back into code. Not for a week. For months. Not an MVP. Production.

FastAPI, 196 tests, 56% coverage. React and FSD again. 27 migrations. OAuth through Google and Yandex. Google Calendar and Yandex Calendar. Mail through SMTP and SendGrid. Reminders on APScheduler. CI/CD, Nginx, Sentry.

Eleven stages out of eleven closed. Users ready: zero.

It was not even about money. I wanted to put something of mine on the internet and see that I could. Instead of the hypothesis "people need this" there was a challenge: "I will build it with no legacy."

It was decent entertainment. Factorio, only the commits were real: another stack, two OAuth providers, 196 tests, 11 technical documents, backups, a health check. I called the game a startup.

Where the light is

In the first project, 1,600 lines of backend still looks like an MVP. 31,000 lines of frontend does not.

Before the first user I had time for: hard FSD layer checks for a team that did not exist; a ban on deep imports for myself alone; an admin with charts on zeroes; UTM and campaigns to measure traffic that was not there; a referral program so that zero users could bring more of the same.

An airport in the desert. I wait for the planes to land by themselves.

Code is a zone of control. A talk with a stranger is not. I looked where it was light, not where I had lost it.

Sentry watches the silence

slot-me is in production now. Tests are green, 196 of 196. CI/CD carries. Sentry stands watch over silence. Living users: zero. Now and then I log in myself to check that the house still stands.

The reminder system carefully sends mail 24 hours, one hour, and 15 minutes before a meeting. There are no meetings. It reminds emptiness of emptiness.

OAuth in one click. Nobody to click. A handsome door into an empty house.

Eleven documents on architecture, deploy, monitoring. The only reader is me, when I forget how it is built.

The features I wrote down as "user requests" I invented myself. Reminders, dashboards, calendars. My hypotheses about someone else's pain.

A doctor has a graveyard. A developer has one too. These two did not die of bad architecture. They died because nobody walked in.

expert-booking.ru is down. 32,600 lines, 21 pages of strategy, zero people. Epitaph: perfect architecture for a product that is not there.

slot-me is technically alive. I can leave it in the portfolio tagged "sandbox" and stop mixing the game with the till. Or I can find the first person with a name, a phone, and their own hole, not a persona aged 28-45 with an income of ₽80,000. If you are an expert and you actually need booking, write to me.