Renzi: Selling Romanian Landlords Relief From the Tax Office

How a property-management SaaS leads with the one feature that sells and prices against a fine, not a competitor

After [SingleFax](https://singlefax.com), I kept looking for the same shape of opportunity: a boring, real problem in a market nobody is excited to serve. I found another one close to home. [Renzi](https://renzi.ro) is a property-management SaaS for Romanian landlords, and like SingleFax, it works because it removes a specific, expensive pain rather than because it is clever.

![renzi.ro homepage](/screenshots/renzi.png)

## Lead with the painkiller

Renzi does a lot of unglamorous things: rent and payment tracking, utility invoices, contracts, document storage. But none of that is what sells it. The feature that sells it is the one that pre-fills the Declaratia Unica, the unified annual tax declaration, ready to submit in ANAF's online SPV portal. So that is what the homepage leads with. The rest is the feature list; the tax declaration is the painkiller.

:::advice{slug="lead-with-the-painkiller-feature" category="product" person="mircea" title="Lead with the one feature that sells, not the feature list"}
Renzi tracks rent, invoices, contracts, and documents, but it sells because it pre-fills the annual tax declaration for Romanian landlords. Mircea leads with that one painkiller feature and lets everything else be supporting cast. Most products bury their single most compelling feature inside an even list of ten, which dilutes the one thing that actually drives the purchase. Find the feature that closes the sale, put it in the headline, and let the rest live on the spec page. Lead with the painkiller, not the inventory.
:::

## Sell relief from the deadline

Landlords do not buy Renzi because they love property-management software. They buy it because of ANAF. The homepage leads with a number: one ANAF fine costs as much as two years of the app. The honest version of that math is not the modest statutory fine but the full exposure behind it: retroactive tax on undeclared rent, daily interest and penalties, the tax authority's own higher estimate of what you owe, and the account garnishment that can follow. For 2026, ANAF has more visibility than ever, pulling signals from banks and from platforms like Airbnb and Revolut. Renzi sells relief from that whole stack of consequences, for roughly 22 to 89 lei a month.

:::advice{slug="sell-relief-from-the-deadline" category="business" person="mircea" title="Sell relief from a specific, escalating, dated risk"}
Renzi's buyers are not shopping for software, they are afraid of ANAF, and the product sells relief from that fear. A specific, escalating, time-bound risk (a tax deadline with growing penalties and a tax authority that now sees your bank and your Airbnb income) is one of the strongest reasons a person ever buys anything. When your product removes a concrete, dated consequence, make that consequence the center of the pitch. People act on a clear, looming risk far faster than on a list of conveniences, and the more real and imminent the risk, the smaller the price feels.
:::

## Fix the bounce before you scale the traffic

On the SEO side, I had been chasing a high bounce rate before doing anything to grow traffic, and that order is deliberate. There is no point pouring visitors into a page they leave immediately; you are just paying to fill a leaky bucket. Fix the page that loses people first, then send more people to it.

:::advice{slug="fix-bounce-before-you-scale-traffic" category="seo" person="mircea" title="Fix the bounce rate before you pour traffic into a page"}
Mircea worked on Renzi's bounce rate before working on growing its traffic, because sending more visitors to a page people abandon just scales the waste. A high bounce rate means the page is failing the visitors it already has, and more traffic only multiplies that failure. Diagnose and fix why people leave (slow load, unclear value, a mismatch with the query that brought them) before you invest in bringing more of them. Growth poured into a leaky page is money spent to lose users faster. Patch the bucket, then turn up the tap.
:::

## Run the same playbook again

Renzi is not a departure from how I built [SingleFax](https://singlefax.com), it is the same playbook run a second time. Find a boring market with a real, recurring pain. Build a narrow product that removes it. Position it sharply, and let SEO bring in the people who are already searching for the problem. I told the [full SingleFax story](/journeys/mircea-singlefax) separately; Renzi is that same engine pointed at a new market.

:::advice{slug="run-the-same-playbook-again" category="mindset" person="mircea" title="Run the same proven playbook on a new boring market"}
Renzi is Mircea running the SingleFax playbook again: a boring market, a narrow product that kills one specific pain, sharp positioning, and SEO that catches people already searching for the problem. Once you have a repeatable way to find and ship these, the playbook itself becomes the asset, not any single product. Indie builders often treat every new product as a blank page; the faster path is to codify what worked last time and point it at the next boring, underserved market. The second product is easier than the first because you are no longer inventing the method, only the application.
:::

## Local regulation is a moat

There is a quiet advantage in building Renzi for Romania specifically. The product's value depends on knowing the exact shape of the Declaratia Unica, the flat-rate calculation, the deduction rules, and how ANAF's SPV portal actually behaves. That local regulatory knowledge is hard for a foreign competitor to replicate and pointless to copy if you are not in the market. The narrowness that makes the total market smaller also makes it defensible.

:::advice{slug="local-regulation-is-a-moat" category="business" person="mircea" title="Local regulatory knowledge is a moat competitors lack"}
Renzi is hard to clone from outside Romania because its value is wired to local tax rules, deduction rates, and the quirks of ANAF's portal. Deep, country-specific regulatory knowledge is a real barrier: a larger foreign competitor cannot easily acquire it, and a generic global tool cannot match the precision. A market that looks too small or too local to bother with is often exactly the one a solo builder can own, because the same narrowness that caps the size keeps the giants out. Local and regulated is not a limitation, it is a moat.
:::


The $5 Fax: How a Weekend Project Became a Micro-SaaS

Why I built the simplest possible fax service and let SEO do the selling

After 20+ years of running Monocube, my dev agency, I thought I'd seen every client request imaginable. Then I noticed a pattern: half our clients needed to fax documents. IRS forms, legal filings, signed contracts. They all complained about the same thing. Every fax service wanted them to create an account, pick a monthly plan, and commit to a subscription they'd use twice a year.

## The problem nobody wanted to solve

Faxing is not exciting. Nobody is building a fax startup to pitch at YC Demo Day. But millions of people still need to fax the IRS, send signed documents to their lawyers, or file paperwork with government agencies that refuse to join the 21st century.

The existing solutions all assumed you were a power user: sign up, pick a plan, enter your credit card for a recurring subscription. For someone who needs to send one fax to the IRS, that's absurd.

## The weekend MVP

I already had our agency's SaaS template (Nuxt 4, TypeScript, PostgreSQL, Stripe) ready to go. On a Friday evening, I stripped it down to the absolute minimum: upload a file, enter a fax number, pay $5, send. No signup. No account creation. No subscription.

By Sunday night, it worked. [singlefax.com](https://singlefax.com) was live.

:::advice{slug="product-simplest-version" category="product" person="mircea" title="Build the simplest version first"}
Mircea built SingleFax in a weekend by refusing to add anything beyond the core action: upload, enter a number, pay, send. No user accounts, no dashboards, no analytics. If your v1 takes longer than a week, you're building too much. Strip it down until a complete stranger can use it in under 60 seconds.
:::

## No signup, no subscription, no friction

This was the key decision that made everything else work. I'd watched agency clients abandon fax services at the signup wall. They didn't want another account, another password, another monthly charge showing up on their credit card statement.

SingleFax asks for nothing except a file and a fax number. You pay $5, the fax goes out. Want to receive faxes? Same deal: $5 per received fax, or grab a lifetime fax number for $99 (one-time, no recurring).

:::advice{slug="product-remove-friction" category="product" person="mircea" title="Remove all friction: no signup, no subscription"}
Every form field you add, every account creation step, every subscription commitment is a point where customers leave. I removed all of them. No signup, no login, no monthly plan. Just pay and use. For occasional-use products, this is the difference between making money and making nothing.
:::

## Letting SEO do the selling

I had zero marketing budget and zero audience. But I knew something useful: people don't search for "online fax service." They search for "how to fax documents to the IRS" and "send fax online without subscription." These are purchase-intent queries. The person searching already has a document in hand and a deadline.

I wrote 9 blog posts targeting exactly these searches. How to fax IRS Form 2848. How to send a fax without a fax machine. Small business fax solutions. Each post ended with a simple call to action: send your fax now for $5.

The posts took a few months to rank, but when they did, the traffic was incredibly high-quality. These weren't tire-kickers. They were people holding a document, looking for the fastest way to fax it.

:::advice{slug="seo-how-to-queries" category="seo" person="mircea" title="SEO for 'how to' queries drives purchase-intent traffic"}
Most indie hackers target broad keywords like "best fax service." Instead, target the specific "how to" queries your customers actually search for. "How to fax documents to the IRS" attracts someone who needs to fax right now, not someone comparison-shopping. Mircea's 9 blog posts drive nearly all of SingleFax's organic traffic, and these visitors convert at a much higher rate than any other channel.
:::

## The $99 tier that customers asked for

I didn't plan the lifetime fax number. Customers emailed asking for it. Small businesses and solo practitioners who received faxes regularly didn't want to pay $5 per incoming fax, but they also didn't want a subscription. "Can I just buy a number and keep it forever?"

So I added it: $99, one-time payment, your fax number for life. It took an afternoon to implement. Now it accounts for a meaningful chunk of revenue, and those customers require essentially zero support.

:::advice{slug="business-premium-tier" category="business" person="mircea" title="Add a premium tier based on what customers ask for"}
Don't guess what people will pay for. Wait for them to tell you. Mircea never planned SingleFax's $99 lifetime tier. Customers asked for it by email, he built it in an afternoon, and it became a significant revenue stream. The best product roadmap is your inbox.
:::

## Agency experience is the real unfair advantage

I see indie hackers spend months learning to deploy, struggling with Stripe integration, figuring out database schemas. After 20 years at the agency, all of that is muscle memory for me. I had a SaaS template, a deployment pipeline, and a Stripe integration I'd built dozens of times.

The weekend MVP wasn't a heroic coding sprint. It was just applying skills I'd been honing for two decades on someone else's dime. Every agency project, every client deadline, every production outage at 2 AM: it all compounds into the ability to ship fast and ship reliably.

:::advice{slug="mindset-agency-superpower" category="mindset" person="mircea" title="Agency experience is a superpower for shipping fast"}
If you've spent years building software for clients, you already have the hardest skill in indie hacking: the ability to ship. You know how to scope, build, deploy, and handle payments. Stop thinking of agency experience as a disadvantage. Mircea built SingleFax in a weekend because he'd already solved every technical problem it required, just for other people's businesses.
:::

## The boring micro-SaaS that runs itself

SingleFax is not going to be a unicorn. It will never be on the front page of Hacker News. It solves one problem (sending and receiving faxes) for people who need it occasionally, and it charges a fair price with zero friction.

It runs itself. There's no customer success team, no onboarding flow, no feature roadmap meetings. Just a simple service that works, a handful of SEO posts that bring in steady traffic, and a payment system that deposits money into my account.

After 20 years of building complex systems for clients, the simplest product I've ever made is the one that actually works for me.

Build the simplest version that solves the problem, then stop

Remove every ounce of friction between the user and the purchase

Target 'how to' search queries where the reader is ready to buy

Let customers tell you what to build next

Twenty years of agency work is the best product bootcamp you'll ever get


Oria: Shipping Photorealistic 3D Property Tours With a Big-Domain SEO Mindset

How a Kink.com SEO veteran is launching a Gaussian Splatting product on a zero-authority domain

I spend my days doing SEO on [Kink.com](https://www.kink.com), one of the oldest and highest-authority domains on the web. That work taught me what compounds over years: real content, genuine trust signals, and a steady publishing cadence that search engines learn to trust. Then I built something that is the opposite of an old domain: [Oria](https://realoria.com), a brand-new product on a brand-new site with zero authority and nobody searching for it yet. Oria delivers photorealistic 3D property tours, the kind you walk through in your browser, pitched as Google Street View quality but for the inside of a building.

![realoria.com homepage showing a photorealistic 3D property tour](/screenshots/realoria.png)

## Productizing a rendering technique for one vertical

The technical core of Oria is Gaussian Splatting, the rendering technique that has been quietly taking over real-estate walkthroughs. It is not something I invented, and that is the point. The hard research is already published; my job was to wrap it into a product that does one concrete thing for one concrete buyer. I did not build a general 3D-capture platform that could do museums, factories, and weddings. I built tours for property, because real estate is a market where a better walkthrough has obvious, immediate value: a listing that lets a buyer move through the rooms before they drive across town.

:::advice{slug="productize-a-rendering-technique-for-one-vertical" category="product" person="petru-popa" title="Productize a cutting-edge rendering technique for one concrete vertical"}
Oria takes Gaussian Splatting, a rendering technique already proven in research, and aims it at exactly one vertical: real estate. Petru did not build a general 3D-capture platform that could serve a dozen markets, because a technique that does everything for no one in particular is hard to sell and harder to demo. The leverage for an indie builder in 2026 is to find the cutting-edge capability that is already available, then pick the single market where it solves an obvious, expensive problem and build only for that. A focused product on top of a strong technique beats a generic platform that buries the same technique under too many use cases.
:::

## Browser delivery so a tour is just a link

I made one deliberate delivery decision: Oria runs in any browser at over 100 frames per second with nothing to install. That is not a technical footnote, it is the whole shape of how the product gets used. A real-estate agent can paste a link into a listing or a message, and the prospective buyer is inside the property in one tap, on whatever device they already hold. Every install step, every download, is a place where a casual viewer drops out, so I removed them all. The tour is just a link that opens, which is the lowest-friction path I could build for someone who is only mildly curious about a property.

:::advice{slug="browser-delivery-removes-the-install" category="product" person="petru-popa" title="Deliver in the browser so a tour is just a link that opens"}
Oria's tours run in any browser with nothing to install, so sharing a property is as simple as pasting a link that opens instantly on any device. Petru treats that frictionlessness as a core product decision, not a detail, because every install or download step is a place where a low-commitment viewer drops out. When your audience is casual and easily distracted, like someone half-interested in a listing, the value has to arrive in one tap or it does not arrive at all. Look at every step between a user and the payoff and ask which ones you can delete, because the install is often the softest, most expensive friction you are choosing to keep.
:::

## Studio service first, self-serve later

It would have been tempting to build the self-serve product first: an app that lets anyone film their own property on a phone and get a tour back automatically. That is the eventual plan, slated for later in the year. But I started with the unscalable version on purpose. Oria today is a done-for-you studio service: we film the property and deliver a finished tour, with turnaround from filming to delivery in 48 to 72 hours, starting at 350 euros per property. Doing it as a service first means I control the quality, I see exactly where the pipeline breaks, and I learn what a good tour actually requires before I ask a stranger with a phone to produce one.

:::advice{slug="studio-service-before-self-serve" category="business" person="petru-popa" title="Start as a done-for-you studio before you ship a self-serve product"}
Oria launched as a studio service (Petru's team films the property and delivers a finished tour in 48 to 72 hours, starting at 350 euros) with a self-serve, film-it-yourself version planned for later. Starting done-for-you is deliberate: the service lets him guarantee quality, watch exactly where the capture-and-render pipeline fails, and learn what a good tour requires before automating it. Self-serve built too early ships all of that uncertainty straight to the customer, who then blames the product for a tour they filmed badly. Earn the right to automate by doing the work manually first, because the service teaches you the playbook the self-serve product will have to encode.
:::

## Big-domain patience on a zero-authority site

Here is where the day job feeds the side project. On Kink.com I work with decades of accumulated authority, where the levers are structural and slow: real content, trust signals, a publishing cadence that does not spike and spook the algorithm. Oria has none of that. It is a fresh domain with no history, no rankings, and no shortcut that manufactures authority overnight. The instinct of most founders launching something this novel is to chase a viral moment and expect rankings to follow. I know from the other side of the table that authority is earned over months of consistent, genuine work, so I am bringing the same patience to a domain that has everything still to prove.

:::advice{slug="bring-big-domain-seo-patience-to-zero-authority" category="seo" person="petru-popa" title="Bring big-domain SEO patience to a brand-new domain"}
Petru's day job is SEO on Kink.com, one of the oldest and highest-authority domains on the web, and Oria is the opposite: a new site with zero authority and no search history. The discipline he carries over is patience, because a fresh domain cannot be shortcut into authority no matter how novel the product is. Treat a new domain as a multi-month project of consistent, genuine content and trust-building rather than a launch that should rank immediately, and resist the urge to chase one viral moment in place of steady work. The same compounding that built the big domain over years is the only thing that builds the small one, just from a standing start. Founders who expect a new domain to behave like an aged one tend to abandon the effort right before it would have started paying off.
:::

## Specialist depth is its own credibility

The last thing is harder to measure but real. When a brand-new product has no track record, the honest question is why anyone should believe it will compete. My answer is not a feature list. It is that I have spent years inside large-scale content and search on one of the most demanding domains on the web, and I am pointing that experience at a new problem. Deep expertise in one specialty does not transfer one-to-one to a new product, but it does buy you a hearing. People extend trust to a launch when the person behind it has visibly gone deep on something hard, because depth in one place is evidence of the seriousness they hope to see in another.

:::advice{slug="specialist-depth-lends-launch-credibility" category="mindset" person="petru-popa" title="Deep specialist expertise lends credibility to a fresh launch"}
Oria is a brand-new product with no track record, and the credibility Petru brings to it comes from years of deep SEO work on one of the web's most demanding domains. That specialist depth does not directly build the product, but it earns a fresh launch a hearing it would not otherwise get, because people read demonstrated mastery in one hard area as a signal of seriousness in another. If you have gone genuinely deep on a specialty, that expertise is launch capital you can carry into a new venture, so name it openly rather than presenting yourself as a first-time founder starting from nothing. Depth is transferable as trust even when the underlying skills do not directly transfer.
:::


Building the Anti-Hustle Job Board: $19/year for Calm Companies

How getting fired for caring about culture led to a curated community of sustainable workplaces

I spent six years at startups. At one of them, I tried to push for a better work culture: fewer pointless meetings, async communication, respecting people's time. I got fired for it. Not laid off, not "let go due to restructuring." Fired, because the way things had always been done was more important than whether people were actually thriving.

## The realization nobody talks about

When I started job hunting again, I noticed something obvious that nobody seemed to be solving: there was no way to filter for company culture. Every job board lets you filter by salary, location, tech stack. None of them tell you whether the company actually respects its people or just says it does on the careers page.

I started keeping a spreadsheet. Companies I'd heard good things about, companies with transparent policies, companies where people actually stayed for more than two years. Buffer, GitLab, Doist, Zapier. I researched each one personally, reading Glassdoor reviews, checking employee tenure on LinkedIn, looking at their actual policies (not just what they claimed on their careers page).

:::advice{slug="product-manual-curation" category="product" person="raul" title="Manual curation is a moat, not a limitation"}
Algorithms can scrape job boards. Nobody can automate the judgment call of "is this company actually calm or just marketing itself as calm?" Raul manually researches every company in his directory, checking employee tenure, real policies, and community feedback. That process is slow, but it's the entire value proposition. What feels like a bottleneck is actually what customers are paying for.
:::

## From spreadsheet to side project

I shared the spreadsheet with a few friends who were also frustrated with toxic workplaces. Their reaction surprised me. Not "cool, thanks" but "can you keep this updated? Can you add companies in Europe? Can I share this with my partner?"

That was the signal. People didn't just want a list; they wanted someone they trusted to maintain the list. The curation itself was the product.

I threw up a simple site at [calmcompanies.club](https://calmcompanies.club). A free company directory, a blog, and a weekly email newsletter every Monday with curated job openings from the companies I monitored. Last week's issue had 150+ jobs across 60+ companies.

:::advice{slug="mindset-personal-pain" category="mindset" person="raul" title="Build from personal pain, not market research"}
Raul didn't do market research or competitive analysis. He built exactly the thing he wished existed when he was fired and job hunting. Personal pain gives you an unfair advantage: you know the problem deeply, you can tell real solutions from fake ones, and you won't lose motivation when growth is slow because you genuinely care about the problem.
:::

## The $19/year decision

Every SaaS playbook says to charge $49/month minimum. I went the opposite direction: $19 per year. Not $19/month. Nineteen dollars for twelve months.

Why? Because I didn't want pricing to be a decision. I wanted someone to see the newsletter, think "that's less than a coffee," and subscribe without a second thought. The goal was subscribers, not revenue per subscriber. I figured if the content was good enough, the audience would compound and other revenue opportunities would follow.

It worked. The conversion rate from "visits the site" to "pays $19" is absurdly high compared to anything I've seen in SaaS. No free trials, no feature gating, no "upgrade to pro" friction. Just one price, one product, done.

:::advice{slug="business-ultra-low-price" category="business" person="raul" title="Price so low it removes all friction"}
$19/year sounds like leaving money on the table. But consider the alternative: a $19/month subscription requires convincing someone your product is worth $228/year, handling cancellations, dealing with failed payments, and competing with every other subscription fighting for budget. At $19/year, the price is never the objection. Raul's conversion rate proves that removing friction can beat optimizing price.
:::

## SEO through genuine helpfulness

I started writing blog posts about the problems I'd lived through. "[Signs of a Toxic Workplace (and How to Screen It in Interviews)](https://calmcompanies.club/blog/signs-of-a-toxic-workplace)" (because I'd missed them). "[Remote Work Policy Red Flags Before You Accept an Offer](https://calmcompanies.club/blog/remote-work-policy-red-flags)" (because I'd been burned). "[How to Recover From Burnout at Work Without Repeating the Pattern](https://calmcompanies.club/blog/how-to-recover-from-burnout-at-work)" (because I'd learned the hard way what recovery actually looks like).

Twenty-five posts and counting. Not a content farm, not keyword-stuffed filler. Real advice from real experience. The toxic workplace post gets shared in Slack channels I've never heard of. The burnout recovery post resonates with people who've been through the same thing. Together, the blog brings in steady organic traffic that feeds the newsletter.

:::advice{slug="seo-pain-point-content" category="seo" person="raul" title="SEO blog posts that solve real pain points drive organic growth"}
Raul wrote 25 blog posts, all addressing problems he'd personally experienced. They rank well because they're genuinely helpful, not because they're optimized for keywords. "Signs of a toxic workplace" and "how to recover from burnout" are searches people make when they're frustrated, and content written by someone who's been through it resonates differently than generic advice. Write fewer posts, but write them from real experience.
:::

## What I'd tell someone starting today

Don't build a SaaS. Don't build an app. Open a spreadsheet and start curating something you care about. The spreadsheet phase taught me what people actually valued before I spent a single dollar on hosting. It forced me to do the work manually, which is exactly how I discovered that manual curation was the product, not a stepping stone to automation.

I'm still @RaulOnRails on X. Still bootstrapped. Still no VC. Still manually checking every company before adding it to the directory. The scale is deliberately small, and that's the point.

:::advice{slug="product-start-simple" category="product" person="raul" title="Start with a spreadsheet, not a SaaS"}
Raul's entire business started as a personal spreadsheet shared with friends. He didn't buy a domain, set up payments, or write a line of code until real people asked him to keep going. A spreadsheet forces you to do the work manually, which teaches you what the actual product is. If your idea can't survive as a spreadsheet first, it probably won't survive as a SaaS either.
:::


ebaza.ro: Bolting a Product Onto Traffic That Already Existed

How a four-year-old parked domain became an insurance funnel, and what the news taught me about SEO

Four years before [ebaza.ro](https://ebaza.ro) did anything, I bought it, along with a handful of other Romanian domains, and let it sit. Nothing happened for a long time. Then over the last few months the Domain Rating climbed, organic traffic followed, and conversions started showing up. The story of eBaza is really two lessons: the patience of domains, and what you do once the traffic finally arrives.

![ebaza.ro homepage](/screenshots/ebaza.png)

## Let the domain age

There is no clever trick to the first part. I bought relevant .ro domains, parked them, and waited. Domain age and accumulated authority compound quietly in the background, and the domain that looks dead for years can become the asset that ranks the moment the market and the content line up. Buying and holding relevant domains is a cheap bet with an asymmetric payoff.

:::advice{slug="let-domains-age-into-authority" category="mindset" person="raul" title="Buy relevant domains early and let their authority age"}
Raul bought ebaza.ro and several other Romanian domains four years before they earned a cent, and the quiet accumulation of domain age and authority is part of why they rank now. A relevant domain is a cheap, asymmetric bet: small holding cost, and a real payoff if the market or a news cycle eventually heats up around it. You cannot manufacture domain age later, so the time to acquire the domains for markets you believe in is now, even if you will not build on them for years. Patience is a legitimate SEO strategy when the asset is appreciating in the background.
:::

## Build where the traffic already lives

Once eBaza had real, high-intent insurance traffic, the smart move was not to start a brand-new site for a new product. It was to bolt the product onto the audience that was already there. I built a full RCA quote flow (RCA is Romania's mandatory car-liability insurance, a renew-on-a-schedule purchase every driver has to make) directly onto the domain that was already ranking for adjacent insurance queries. The traffic was already arriving; I just gave it something to buy.

:::advice{slug="build-the-product-where-traffic-already-lives" category="business" person="raul" title="Build the product where the traffic already lives"}
ebaza.ro was already pulling high-intent insurance traffic, so Raul built the RCA quote flow onto that same domain instead of launching a fresh site that would start from zero. The hardest part of most products is getting in front of people who want them; if you already have an audience or ranking pages in an adjacent space, the fastest path to revenue is to put the product where that attention already lands. Look at the traffic you already have before you go chasing new traffic. Monetizing an existing audience beats building a new one almost every time.
:::

## Internal linking is the first lever

The first thing I did once traffic arrived was internal linking: rewiring related pages so they point at each other with descriptive anchors. It is unglamorous and it moved the needle immediately. When a page starts to rank, its newfound authority is a resource you can route to neighboring pages, and descriptive internal links are how you do the routing.

:::advice{slug="internal-linking-is-the-first-move" category="seo" person="raul" title="Internal linking is the first lever when a page starts ranking"}
The moment ebaza.ro started ranking, Raul's first optimization was internal linking: connecting related pages with descriptive anchor text. It is the cheapest, fastest SEO lever there is, and it works precisely when a page has authority worth distributing. A ranking page is a source of link equity you can route to the pages you want to lift next, and descriptive anchors tell Google what those pages are about. Before chasing new backlinks, make sure the authority you already have is flowing through your own site. Internal linking is the first move, not an afterthought.
:::

## Do not let the CTA lie

When I demoed the RCA flow, the room caught something I had stopped seeing. The button said "see the price," and clicking it did not show a price; it pushed the user one step deeper into the funnel. That is a small dishonesty, and small dishonesties teach users not to trust the next button. The fix is binary: either show the price there, or label the button for what it actually does. Trust is the whole game in a purchase flow.

:::advice{slug="make-the-cta-tell-the-truth" category="product" person="raul" title="Never let a call to action lie about what it does"}
Raul's RCA flow had a button that promised to "see the price" and then, on click, just pushed the user deeper into the funnel instead of showing a price. That gap between what the button says and what it does is a small dishonesty, and each one teaches the user to distrust the next button you ask them to press. In a flow where trust is the currency, a CTA must do exactly what it claims. Either deliver what the label promises right there, or rewrite the label to match reality. A misleading button buys one extra click and costs you the user's belief in everything after it.
:::

## For apps, the marketplace backlink wins

One side lesson from the same evening: for an app, a backlink from a relevant marketplace listing is worth more than most content-based backlink tactics. A marketplace exists specifically to send qualified buyers to tools like yours, so its link carries both authority and intent in a way a generic guest post never will. When the product is an app, getting listed where buyers already shop beats writing another article purely for a link.

:::advice{slug="marketplace-backlinks-beat-content-backlinks" category="seo" person="raul" title="For apps, a marketplace listing beats most content backlinks"}
For an app, a backlink from a relevant marketplace or directory is worth more than most content-driven backlink tactics, because the marketplace's entire purpose is to send qualified, ready-to-buy traffic to tools like yours. That link carries authority and high intent at the same time, while a generic guest-post link carries neither. If your product is an app, prioritize getting listed where your buyers already shop over grinding out articles purely for links. The best backlinks come from pages whose job is to route buyers to you, not from content you wrote to game a ranking.
:::


doesmyemail.work: A Free Tool as the Top of the Funnel

How a thirty-second email diagnosis becomes a lead magnet, and the same move grows a psychology app

[doesmyemail.work](https://doesmyemail.work) answers one plain question: does your email reach the inbox, or the spam folder? You hand it a domain, it scans your SPF, DKIM, DMARC, and MX records, and it tells you in plain English what is broken. No signup. It is free on purpose, because it is not the business. It is the top of the funnel.

![doesmyemail.work homepage](/screenshots/doesmyemail.png)

## Make the invisible problem legible

Email deliverability is an invisible, jargon-heavy problem. Most people have no idea what SPF or DKIM even are, only that something feels off when their emails get no replies. So the tool does not lecture. It translates: SPF becomes "does your domain say yes, I sent this," DKIM becomes "are your emails signed," DMARC becomes "do you have rules for handling fakes." Making the invisible problem legible is most of the value.

:::advice{slug="translate-jargon-into-plain-english" category="product" person="vali" title="Translate an invisible technical problem into plain English"}
doesmyemail.work could have reported "SPF: softfail, DKIM: none" like every other tool and helped no one. Instead it says "does your domain say yes, I sent this." Turning opaque jargon into a sentence a non-expert understands is not decoration, it is the product, because the user's real problem is that they cannot tell what is wrong. When your tool surfaces a technical diagnosis, spend the effort to say it in the user's language. The translation is often worth more than the diagnosis itself.
:::

## The answer screen is everything

A free tool lives or dies on one screen: the one where the user gets their answer. That is the activation moment, and it has to be effortless. The diagnostic part is easy. The active check (actually sending a test email to confirm mail flows end to end) is where it got fragile, especially on mobile, and that is where I learned the next lesson.

:::advice{slug="obsess-over-the-activation-screen" category="product" person="vali" title="For a free tool, the answer screen is the whole product"}
A free, no-signup tool has exactly one moment that matters: the screen where the user gets their result. Everything before it is setup and everything after it is upsell, but that one screen is where the user decides whether the tool was worth their time. For doesmyemail.work, the diagnosis screen is the product. Pour disproportionate care into that single moment (speed, clarity, zero friction) because a lead magnet that fumbles its activation screen never gets to the lead part.
:::

## Never make them switch apps

The active check originally showed a seed address with a "Copy" button and asked the user to switch to their mail app and send a message to it. On a phone, the hand-off from a browser tab to a native mail client is exactly where people lose the thread. The fix was concrete: replace the copy-and-switch dance with a single mailto link that pre-fills the recipient, the subject, and the body, collapsing two taps and a paste into one tap. Any hand-off between apps is a place users fall out.

:::advice{slug="remove-the-app-handoff" category="product" person="vali" title="Never make a mobile user switch apps and come back"}
doesmyemail.work asked mobile users to copy an address, switch to their mail app, paste, and send, and that hand-off is exactly where people abandoned the flow. The fix was a single mailto link that pre-fills everything, turning four steps into one tap. Every time you ask a user to leave your app, do something elsewhere, and return, you are betting they make it back, and on mobile many do not. Collapse cross-app hand-offs into one action wherever you can. The smoothest flow is the one that never leaves the screen.
:::

## The same move, a different product

doesmyemail.work is one application of a single idea: earn attention with something free and useful, then monetize behind it. I run the same playbook on [Dr. Ursula](https://drursula.ro), a React Native psychology and personal-development app I build for the psychotherapist Dr. Ursula Sandner. There the free top-of-funnel is short-form video, which earns real reach and puts the app in front of people who would never search for it, and I bring them back with short written insights delivered as gentle push notifications. Different audience, different product, same shape: free reach first, paid layer second.

:::advice{slug="one-playbook-many-products" category="distribution" person="vali" title="Reuse one top-of-funnel playbook across products"}
Valentin runs the same move twice: a free diagnostic tool fronts a business email product, and free short-form video fronts a consumer psychology app. Both start with something genuinely useful and free that earns attention, then attach the paid layer behind it. A distribution playbook that works is not single-use; once you have one that reliably earns attention, it transfers across very different products. Find your repeatable top-of-funnel motion, then apply it again instead of reinventing distribution for every launch.
:::

## Share the real numbers

Dr. Ursula sits at roughly 50 paying monthly actives on top of about 620 free ones. I share numbers like that openly, and it is not bravado. Honest numbers (including the unflattering ratio) earn more trust and far better feedback than vague claims of traction. People help you when they can see where you actually are.

:::advice{slug="share-the-real-numbers" category="mindset" person="vali" title="Share real numbers; honesty earns trust and feedback"}
Valentin will tell you Dr. Ursula has about 50 paying users on top of roughly 620 free ones, the exact ratio most founders hide. Sharing real numbers, including the ones that are not impressive yet, earns a kind of trust and a quality of feedback that polished vanity metrics never will. People can only help you with the real situation, and an audience that watches you build honestly becomes the audience that roots for you. Round numbers up in your head, not on the slide.
:::

For a free tool, the answer screen is the entire product

Reuse one top-of-funnel playbook across different products


Building sisif.ai: an AI Video API

How I went from 0 customers to growing MRR by abandoning traditional marketing

I spent 15 years as a backend and DevOps engineer, building production infrastructure and writing code I was proud of. I knew how to architect systems and ship reliable software. None of that prepared me for finding my first paying customer.

## Starting from scratch

![sisif.ai homepage](/screenshots/sisif-ai.png)

In December 2024, I started building [sisif.ai](https://sisif.ai): an AI video generation API that turns a text prompt into a video in 2-5 minutes. The tech was solid. I used SaaS Pegasus (a Django boilerplate) to move fast on the product side and focused my energy on the AI pipeline.

By early 2025, I had a working product. Time to get customers, right?

:::advice{slug="mindset-stop-polishing" category="mindset" title="Stop polishing code, start finding customers" person="vlad"}
As an engineer, your instinct is to keep improving the product. Resist it. A mediocre product with great distribution will outperform a great product with no distribution every single time. Vlad spent months polishing sisif.ai before realizing that nobody knew it existed. The hardest shift for technical founders is accepting that code quality doesn't drive revenue.
:::

## The zero-customer desert

I did everything the indie hacker playbook says. I posted on Twitter/X. I launched on ProductHunt. I wrote threads about building in public. I invested time in SEO.

The result? Zero paying customers. Eight Twitter followers. A perfectly functional product that nobody was using.

This wasn't a product problem. It was a distribution problem. And it forced me to confront something uncomfortable: all the marketing channels that work for founders with existing audiences are nearly useless when you're starting from zero.

:::advice{slug="mindset-traditional-marketing-slow" category="mindset" title="Twitter and ProductHunt are slow for unknown founders" person="vlad"}
Building in public, Twitter threads, and ProductHunt launches all share the same assumption: someone is already listening. If you have 12 followers, tweeting into the void won't generate customers. Vlad tried the standard playbook for months and got nothing. These channels compound over time, but if you need traction now, you need to go where attention already exists.
:::

## The n8n breakthrough

The turning point came when I stopped trying to build my own audience and started borrowing someone else's. I discovered [n8n](https://n8n.io), the workflow automation platform, and realized its community was full of people who needed exactly what sisif.ai offered: a simple API to generate videos programmatically.

I built workflow templates. A TikTok automation workflow. An Instagram Reels generator.

![n8n TikTok workflow template](/screenshots/n8n-tiktok-workflow.png) Each template showed how sisif.ai plugged into a workflow people already wanted to build.

![n8n creator profile with 14,860 views](/screenshots/n8n-creator-profile.png)

The templates got thousands of views. Signups started flowing in. Not because I'd cracked some marketing code, but because I'd put my product where people were already looking for solutions.

:::advice{slug="distribution-platform-led-growth" category="distribution" title="Ride existing waves with platform-led growth" person="vlad"}
Instead of building your own audience from scratch, find platforms where your target users already gather. Vlad built n8n workflow templates (TikTok automation, Instagram Reels) that showcased sisif.ai's API. The templates got thousands of views and drove real signups. The key is contributing genuine value to the platform's ecosystem, not just dropping links.
:::

## Pricing: the 4x MRR lesson

My first pricing was simple: $9/month, one plan. It felt "fair." It was also leaving money on the table.

![Sisif.ai MRR growth after pricing change](/screenshots/sisif-revenue.png)

When I switched to tiered pricing ($10/$50/$200), MRR jumped 4x. Some users needed the basic tier. Others were running production workflows and happily paid $200/month for higher limits. A single price point forces everyone into the same box, and most of them don't fit.

:::advice{slug="business-tiered-pricing" category="business" title="Tiered pricing unlocks hidden revenue" person="vlad"}
Vlad's single $9/month plan seemed simple and fair. Switching to three tiers ($10/$50/$200) increased his MRR by 4x. The lesson: different users get different amounts of value from your product. A hobbyist and a business running production workflows should not pay the same price. Start with tiers early. You can always simplify later, but you can't recover the revenue you've been leaving on the table.
:::

## What I know now

The engineer in me wanted to build the best AI video pipeline. The indie hacker I'm becoming knows that distribution is the whole game. A product that reaches the right people will always beat a product that's technically superior but invisible.

:::advice{slug="distribution-beats-product" category="distribution" title="Distribution beats product, every time" person="vlad"}
Vlad had a working AI video API and zero customers. The product didn't change when he started getting signups. The distribution did. If you're a technical founder, this is the hardest pill to swallow: the market doesn't reward the best product. It rewards the product that shows up where buyers are looking. Spend at least half your time on distribution, especially in the early days.
:::

The playbook that worked: stop shouting into the void. Find a platform where your users already live. Build something valuable for that community. Let the platform's existing traffic do the heavy lifting. Then price your product to capture the value you're actually delivering.

Distribution beats product: find where your users already hang out

Platform-led growth lets you ride existing waves instead of creating your own

Tiered pricing unlocks revenue you're leaving on the table

Traditional indie marketing (Twitter, ProductHunt) is painfully slow for unknown founders


From a Rejected ThemeForest Template to 70k a Month

How Flowbite grew an open-source component library into a bootstrapped, two-person business

My co-founder Robert and I did not start with a product. We started with outsourcing: building software for other people, on other people's timelines, for other people's margins. [Bergside](https://bergside.com) was supposed to be our way out of that, and the first attempt did not go well.

## The rejection that did not stop us

We decided to sell templates instead of hours. We built one, submitted it to ThemeForest, and it got rejected. That is the part of the story most people would quietly delete. We kept going. We submitted more, kept improving the work, and paid attention to what the market reacted to.

:::advice{slug="persist-through-early-rejection" category="mindset" person="zoltan" title="A rejection is a data point, not a verdict"}
Bergside's first ThemeForest template was rejected, and the company that grew out of it now does 70k a month. The rejection was information about one submission, not a judgment on the whole idea. Most founders treat an early no as proof the plan is wrong and quit one iteration before the thing that works. Zoltan and his co-founder treated it as feedback, shipped the next version, and kept shipping. Separate the verdict on a single attempt from the verdict on the direction, and keep going.
:::

## The Black Friday that pointed at the market

The turning point was a single night. We had built a Tailwind and Figma design system kit, and on one Black Friday it sold 3,000 euros in a few hours. That spike was the clearest signal we ever got. The market was not "templates," it was Tailwind components, and people were ready to pay for them right then.

We doubled down on exactly that. We built more Tailwind components, designed them in Figma, started building in public, and that work became [Flowbite](https://flowbite.com).

![Flowbite homepage](/screenshots/flowbite.png)

:::advice{slug="follow-the-spike-to-the-market" category="product" person="zoltan" title="Let one big spike tell you where the market is"}
Bergside sold one Tailwind and Figma kit for 3,000 euros in a single Black Friday night, and that one spike redirected the entire company toward Tailwind components. A sudden, sharp sales response is the market telling you where the demand actually lives, in a way no survey or roadmap meeting ever will. When something you ship spikes far beyond the rest, do not treat it as a lucky one-off. Treat it as a map. Drop what is flat and pour your effort into the thing the market just voted for with its wallet.
:::

## Open source as the whole funnel

[Flowbite](https://flowbite.com) is an open-source UI component library: over 30 million npm downloads, more than 9,100 GitHub stars, and 600+ components, sections, and pages built on Tailwind CSS and designed in Figma. The open-source library is free, and that is not charity. It is the top of the funnel and the funnel itself. Every developer who installs Flowbite to build something is a developer who already knows and trusts the brand when they need more.

The money comes from the layer on top: pro components, full website sections, and framework integrations for React, Vue, and Svelte. All of it sold as one-time purchases, no subscriptions. Two people, bootstrapped, no outside money, and that model reaches 70k a month.

:::advice{slug="open-source-as-distribution" category="distribution" person="zoltan" title="Open source can be your distribution channel"}
Flowbite's free open-source library has over 30 million npm downloads, and those downloads are the marketing. Instead of buying attention, Bergside gives away a genuinely useful core and lets adoption carry the brand into millions of projects. The developers who already build with the free components are the warm audience for the paid pro components and framework integrations. If your product can have a free core that people install and depend on, the open-source version is not lost revenue, it is the cheapest and most durable distribution you will ever own.
:::

:::advice{slug="free-core-paid-extras" category="business" person="zoltan" title="Give away the core and sell the extras once"}
Flowbite reaches 70k a month with no recurring revenue at all: the library is free, and pro components, sections, and framework integrations are one-time purchases. A free core removes the adoption decision, and one-time pricing removes the renewal anxiety that makes buyers hesitate. Bergside proves you do not need a subscription to build a real business. Pick the smallest valuable thing to charge for, sell it once at a fair price, and let a large free top-of-funnel feed it.
:::

## What to build next is a search query

With 600+ components, the obvious question is how you decide what to build next. We do not guess. We use [Semrush](https://semrush.com) to see what developers are actually searching for. When we saw real volume behind "avatar tailwind" or "datepicker tailwind," we built those components and captured the traffic the search demand was already creating.

## Premium pricing, and never a discount

The most heated thing I tell people is to never discount. Cheap pricing scares away serious clients, and the moment you start discounting, customers learn to wait for the next sale instead of buying now. We hold premium prices, and it has not slowed growth. For distribution we lean on influencers over ads (a single well-placed creator video outperforms most ad spend for developer tools), story-driven posts on Reddit rather than sales pitches, and articles on Medium and dev.to with the canonical URL pointed back at our own domain.

## The next bet: the layer AI still leaves missing

The project I am most excited about now is [TypeUI](https://typeui.sh), a CLI tool that applies a consistent design layer on top of AI-generated code. You run it with npx, and it pulls a complete "design skill" (Paper, Bento, Neobrutalism, and others) into your project so the AI-generated components come out looking like a designer touched them. It is early, open source under MIT, and pre-revenue. The bet is simple: as more code gets generated by AI, the missing piece is a consistent design system that works natively with those workflows instead of fighting them.

![TypeUI homepage](/screenshots/typeui.png)

:::advice{slug="bet-on-the-layer-ai-cant-replace" category="mindset" person="zoltan" title="Own the layer AI coding tools still leave missing"}
TypeUI is a bet that as AI generates more of the code, the scarce thing becomes the consistent design layer on top of it. The general pattern for founders in 2026: do not compete with the AI on the work it does well, find the adjacent layer it leaves missing and own that. AI can generate a hundred components; it cannot yet make them feel like one designed product. Look at where the new tools are strong, then build for the gap they create rather than the one they fill.
:::

We have shipped a lot of products over the years (Flowbite, [Themesberg](https://themesberg.com), [Glass UI](https://ui.glass), [src.club](https://src.club)), and the throughline is always the same: give people something genuinely useful for free, charge a fair one-time price for the part that saves them real work, and never compete on being the cheapest.

A rejection is a data point, not a verdict: keep shipping

Give the core away as open source and sell the extras once

Let one big sales spike tell you where the market really is

Premium pricing and zero discounts attract better customers

Own the design layer that AI coding tools still leave missing


Indie TM #10: Four Builds and the Reach Problem

What we learned at our tenth meetup, this time at DevPlant in Timisoara

The tenth edition, and we leaned into the number: we held it on the tenth of the month, in a room we had not used before. We moved out of our usual home at Cowork and into DevPlant, another Timisoara coworking space, on a properly hot summer day, made properly memorable by an air conditioner that almost certainly worked fine and that none of us could figure out how to turn on, so the room baked while the demos ran and everyone pretended not to notice. Four builders presented. [Mihai](/people/mihai-balint) opened with the case for why a purpose-built OCR engine still beats a general AI model at reading documents. [Doru](/people/doru-bota) came back with [Dentor](https://dentor.ro) and a blunt update on what is actually selling it. [Camil](/people/camil) showed a desktop app that lifts any sound you can describe out of a video. [Valentin](/people/vali) closed with a psychology app and the growth loop he is using to turn free listeners into paying ones.

If the ninth meetup was about friction, the tenth was about reach. The technology in the room was solid across the board: the builds worked, the demos held up. The question that kept surfacing was the one that comes after the code runs, who has this problem and how do you get in front of them. Doru had the bluntest answer, learned the expensive way, and it set the tone for the night: the cold email went nowhere, walking into the clinic did.

## Mihai argues for OCR over a general LLM

![ocrskill.com homepage](/screenshots/ocrskill.png)

[Mihai](/people/mihai-balint) opened with [OCRskill](https://ocrskill.com) and the question everyone now asks about any document task: why build OCR at all when you could just hand the image to ChatGPT? His answer was specific and measured. For turning documents into structured data, a purpose-built OCR pipeline is both cheaper to run and, in his own testing, more accurate than any general model, including the Anthropic ones. OCRskill takes an image to clean markdown and pulls structured records out of sources like SEAP, Romania's public procurement portal (Sistemul Electronic de Achizitii Publice). The whole thing runs on bare metal in an air-conditioned room rather than on rented per-call GPUs, which is how the unit economics survive at volume.

The API design was the part the engineers in the room leaned toward. You do not write a prompt; you describe the fields you want, first name, last name, whatever the schema calls for, and the service returns structured output that matches it. Under the hood, PydanticAI drives an agent loop: it knows from the schema how to keep talking to the model until the result validates, so the caller gets a typed object instead of a paragraph it has to parse and pray over.

:::advice{slug="specialized-model-beats-general-llm" category="product" title="Reach for a purpose-built model before a general LLM" person="mihai-balint"}
The reflex in 2026 is to throw every task at the biggest available model, but for a narrow, repetitive job a specialized model often wins on both cost and accuracy. OCRskill turns documents into structured data more cheaply and, in head-to-head testing, more accurately than a frontier LLM, because reading a scanned form is exactly the bounded problem a dedicated OCR pipeline was built for. Before you assume the largest model is the answer, benchmark a purpose-built tool on your actual inputs: the general model is paying, on every call, for capabilities your task never uses. The lesson generalizes well beyond OCR. When the job is narrow and high-volume, the specialist usually beats the generalist on the only two numbers that matter, price per call and error rate.
:::

:::advice{slug="schema-driven-extraction-loop" category="product" title="Let the schema drive extraction, not the prompt" person="mihai-balint"}
When you extract structured data with a model, do not prompt-and-pray and then parse the prose. Define the output schema first and let a framework like PydanticAI run the model in a loop, feeding validation errors back in until the result conforms. OCRskill's API takes the fields you ask for and returns a typed object that already matches your schema, so the caller never writes brittle string parsing. The pattern turns an unreliable text generator into a dependable function: the schema is the contract, the loop is the enforcement, and the caller gets data instead of a paragraph. Any time you are tempted to regex an LLM's answer, reach for structured output with a validation loop instead.
:::

## Doru reports back on Dentor

![dentor.ro homepage](/screenshots/dentor.png)

[Doru](/people/doru-bota) brought [Dentor](https://dentor.ro) back to the room, one meetup after it first showed up at the ninth. Last time the conversation was about the health-data constraint that shapes the whole product. This time it was about sales, and the update was refreshingly free of spin. He had polished the brand, tightened the colors and the marketing copy, and then gone looking for customers. The cold email campaign, the obvious first move, produced nothing. What is working is the least scalable thing on the list: showing up in person at small and individual dental clinics and pitching the owner face to face.

:::advice{slug="go-in-person-when-cold-email-dies" category="distribution" title="When cold email dies, sell in person" person="doru-bota"}
Cold email is the default first channel because it scales from a laptop, but it assumes your buyer lives in their inbox and trusts a stranger's link. For a local, high-trust, offline buyer like a dentist, that assumption is wrong, and Doru found it out the direct way: the cold campaign produced nothing, walking into small clinics and pitching the owner produced customers. The uncomfortable truth for builders is that the channel has to match the buyer, not your preference for staying behind a screen. Early on, the least scalable channel is often the only one that converts, because in-person presence carries the trust a cold email cannot manufacture. Do the unscalable thing until you have proof and a reference list, then worry about scaling it.
:::

## Camil pulls any sound out of a video

![soundscrub.video homepage](/screenshots/soundscrub.png)

[Camil](/people/camil) demoed [SoundScrub](https://soundscrub.video), a desktop app with an unusually clean premise: describe a sound in plain words and it will remove that sound from your video, keep only that sound, or just turn it down. It is built on an open-source audio model (Meta's SAM Audio), wrapped in an Electron app with a Python backend that runs the model on RunPod GPUs. A nice privacy property falls out of the architecture: the video never leaves your machine, only the extracted audio is uploaded for processing, and it is deleted right after.

The origin story was the most relatable part. Camil had gone on holiday, filmed a lot of footage to show his parents, and come back with clips ruined by background noise. The fix started as a script he ran from the terminal, and the real question he brought to the room was the one every tinkerer eventually hits: this solves my problem, but is it a product? He decided it was, and built the desktop app for the much larger group of people who would never open a terminal.

He was honest about the edges. The prompt does a lot of work, and it has a hard limit: you can describe what the sound is (a dog barking, people speaking) but not where it sits in the frame. The longest clip he had run through it was about twenty minutes. And the comparison that made the room sit up was with DaVinci Resolve, the editor most of them use: its built-in tools do not isolate a specific sound anywhere near this cleanly.

:::advice{slug="single-purpose-tool-beats-suite-feature" category="product" title="A focused tool can beat a feature buried in a giant suite" person="camil"}
Every video editor already owns a do-everything suite, so the instinct is that a single-purpose tool has no room to exist. SoundScrub is the counterexample: it isolates and removes any sound you can name, and it does that one job noticeably better than the audio isolation built into DaVinci Resolve. Editors will keep their main editor and still pay for a focused tool when it does a specific painful task markedly better than the all-in-one does. The play is not to compete with the suite on breadth, it is to find the one operation the big tool does badly and own it completely. Depth on a single job beats breadth across many when the job hurts enough.
:::

:::advice{slug="sell-where-people-describe-the-problem" category="distribution" title="Sell where people already describe the problem" person="camil"}
You do not have to create demand for SoundScrub; people generate it daily in their own words. Travel vloggers get demonetized over background music, videographers fight wind and crowd noise, and they post the exact symptom on Reddit and YouTube: how do I remove this sound from my clip. The distribution move is to show up in those threads with a genuinely useful answer and a tasteful mention of the tool, because the audience that is already typing the problem is pre-qualified in a way no cold ad audience ever is. Search for the complaint, not the keyword: every post that describes your problem out loud is a warm lead and a free piece of validation. Be helpful first and the plug forgives itself.
:::

## Valentin grows Dr. Ursula

![Dr. Ursula on the App Store](/screenshots/drursula.png)

[Valentin](/people/vali) closed with [Dr. Ursula](https://drursula.ro), a psychology and personal-development app he builds in React Native for the psychotherapist Dr. Ursula Sandner. It packages her work, articles, audio, ebooks, and an AI chat assistant, into a mobile app with a free tier and paid tiers handled through RevenueCat. The numbers he shared were honest and instructive for anyone running a content app: roughly 50 paying monthly actives sitting on top of about 620 free ones.

The growth loop was the interesting half. Short-form video is doing the awareness work: the shorts get real reach and introduce the app to people who would never search for it. Then, to bring those people back without nagging them, he turns short written insights, pulled from the same social content, into push notifications, a sentence or two that lands on the lock screen quietly, there to be read whenever the user is ready rather than demanding attention in the moment.

:::advice{slug="short-form-video-for-awareness" category="distribution" title="Use short-form video for awareness, not conversion" person="vali"}
Short-form video is the cheapest reach available right now, but it is a top-of-funnel instrument, not a checkout. Valentin's shorts for Dr. Ursula earn real awareness, putting the app in front of people who would never type its name into a search box, and that is exactly the job to ask of them. The mistake is expecting a fifteen-second clip to close a sale; its purpose is to make a stranger aware the thing exists, then hand them to a funnel that does the converting. Measure shorts on reach and new awareness, not on direct installs, and build the step that turns that awareness into a user separately. Match the metric to the stage and the channel stops looking like it is underperforming.
:::

:::advice{slug="content-as-gentle-push-notifications" category="product" title="Repackage your content as push notifications that respect attention" person="vali"}
A push notification is usually an interruption, which is why people mute them; Valentin inverts that. He takes short written insights drawn from the app's own social content and sends them as notifications that sit quietly on the lock screen, a sentence or two to be read whenever the user is ready, not a demand for attention right now. That reframes the notification from a nag into a small gift, and it doubles as a retention loop that pulls people back into a content app without burning the goodwill that aggressive notifications destroy. The principle: the value has to be in the notification itself, not in the tap it is trying to extract. If the user would be glad to have read it even without opening the app, you have a retention channel; if not, you have an unsubscribe waiting to happen.
:::

## Ten editions in, the same question

Ten editions is enough to see the patterns repeat, and the tenth was a clean illustration of one: the building is rarely the bottleneck. Mihai's extraction pipeline, Camil's audio model, Valentin's app, all of it worked. What separated the night's stories was reach, the unglamorous and often unscalable work of getting in front of the exact people who feel the problem. Doru said it most plainly by accident, the cold email that went nowhere and the in-person pitch that landed, and the rest of the room was solving versions of the same puzzle: Camil in the Reddit threads, Valentin in the short-form feed, Mihai with a product so much cheaper than the alternative that the price itself does part of the selling. Strong tech is table stakes now. Distribution is the edition we keep coming back to.


Indie TM #11: An Intent Graph and the Hunt for Users

What we learned at our eleventh meetup, back at DevPlant in Timisoara

The eleventh edition, back at DevPlant, ran lean: three builders, and a night that kept circling the same unglamorous problem. [Octavian](/people/octavian-chis) opened with Intersect, a tool that turns the question every meetup half-answers, who here is working on what, and who needs what, into a graph you can actually query. [Raul](/people/raul) soft-launched [eBaza](https://ebaza.ro), now reshaped from an insurance funnel into a renewal-reminder app, and handed the room thirty users and a request to break it. [Valentin](/people/vali) closed by showing the head-to-toe redesign of [doesmyemail.work](https://doesmyemail.work), which had grown a personality since we last saw it.

If the tenth meetup was about reach, the eleventh was about the audience itself. Octavian's product is infrastructure for the scene to find each other, and both Raul and Valentin spent their slots on the same gap between a product that works and the people who are supposed to use it. The honest constraint kept surfacing in different costumes: a matching engine with too few people in it, a free beta with thirty users, a utility that had to make itself memorable to get noticed at all.

## Octavian maps the scene with Intersect

[Octavian](/people/octavian-chis) is one of Romania's original indie hackers, with more than two hundred projects behind him from years before the term meant anything locally, and Intersect is the kind of thing you build when you have spent that long watching builders talk past each other. The premise is a small protocol he calls an intent graph. Each person keeps a handful of cards across six types, what they are working on, what they need, what they can offer, what they are questioning, what they are thinking about, and what they have discovered, and an AI agent reads those cards to generate that person's profile so nobody has to write a bio.

From there the system does the introductions a room never gets around to making. It clusters the "working on" cards into projects and shows who gathers under each, with the shared topics as tags. It rolls every card up by topic and flags the ones where two or more people overlap. And the part that earns the name, it computes the intersections between people and ranks them by a semantic match score: a project that lines up with someone else's stated interest, two cards that share a tag, and the most valuable kind, a need on one side met squarely by an offer on the other. What is usually lost the moment a meetup ends becomes a queryable map.

:::advice{slug="model-intent-as-matchable-cards" category="product" title="Turn fuzzy intent into structured cards a machine can match" person="octavian-chis"}
A conversation about what everyone is building evaporates the moment the room empties out. Intersect keeps it by asking each person to file their intent as typed cards: what they are working on, what they need, what they can offer, what they are questioning, what they are thinking about, and what they have discovered. Once intent has a fixed shape instead of being buried in chat, software can do the introductions a busy human never gets to: cluster the projects, find the topics two people share, and pair a need on one side with an offer on the other. The general lesson is that matching people is only hard while the inputs are unstructured prose, so give the same information a small, fixed schema and the overlaps compute themselves. The next time you reach for a feed, ask instead what the handful of card types are, because typed intent is the thing a machine can actually act on.
:::

He was clear-eyed about what Intersect still needs, and none of it was a clever feature. He wants better semantic matching and a graph view to make the connections visual, but the real ask to the room was blunter: more users. An intent graph only produces a useful intersection once enough people have filled it, which is the catch underneath the whole idea.

:::advice{slug="matching-networks-are-dead-until-dense" category="business" title="A needs-and-offers network is worthless until it is dense" person="octavian-chis"}
Octavian named Intersect's real constraint without flinching: it is not a missing feature, it is a missing crowd. An intent graph only surfaces a useful intersection when enough people have added enough cards, so with a handful of users the cleverest matching engine finds almost nothing. This is the cold-start tax every marketplace and matching product pays, invisible in a seeded demo and brutal in the wild. The takeaway for anyone building two-sided or network-effect software is that the first job is density, not polish: seed the graph yourself, recruit the first cohort by hand, and only judge the product once it is full enough to fire. Until it is dense, the thing you are testing is not your algorithm, it is your ability to fill it.
:::

:::advice{slug="be-prolific-the-body-of-work-compounds" category="mindset" title="Be prolific, because a large body of small tools compounds" person="octavian-chis"}
Octavian has shipped more than two hundred projects, most of them small tools, since before anyone in Romania called this indie hacking. That volume is not noise, it is the strategy. Every finished tool sharpens your taste, widens the surface area where luck can land, and leaves behind an audience and a reputation that a single big bet never accumulates. Indie hackers tend to over-invest in one idea and agonize over whether it is the one, while the prolific builder simply ships the next thing and lets the portfolio do the arguing. You cannot predict which small tool finds its people, so the rational move is to keep the cadence high and let quantity manufacture both the quality and the lucky breaks. Longevity in this game looks less like one masterpiece and more like a long, unbroken streak of finished things.
:::

## Raul soft-launches eBaza

![eBaza homepage](/screenshots/ebaza.png)

[Raul](/people/raul) brought [eBaza](https://ebaza.ro) back, but the product had changed shape since the room last saw it. The earlier version was an RCA quote flow bolted onto an aging insurance domain; this one is a renewal reminder. A Romanian driver carries three recurring obligations that all sting if you forget them, the RCA mandatory liability insurance, the ITP roadworthiness inspection, and the Rovinieta road-use vignette, and eBaza tracks all three per vehicle, checks them against official sources, and nudges you by email and phone before each one lapses. It is sitting at about thirty users and free while it is in beta. Raul has kept it a deliberate soft launch, with no public announcement on social yet, and is letting it grow through the SEO channel while he gathers feedback and his first real cohort of users.

:::advice{slug="bundle-the-deadlines-people-dread" category="product" title="Productize the recurring deadlines people already dread" person="raul"}
eBaza's new shape is almost embarrassingly simple: a Romanian driver has three recurring obligations that all bite if you forget them, the RCA insurance, the ITP inspection, and the Rovinieta road tax, so eBaza tracks all three per vehicle and reminds you before each one expires. The product is not insurance, it is relief from forgetting, and the value is the avoided fine and the avoided last-minute scramble. There is a whole category hiding in the obligations people carry in their heads and resent: renewals, inspections, filings, subscriptions, anything with an expiry date and a penalty attached. Pull a set of those into one place, remind people reliably before the deadline, and you are selling peace of mind, which is one of the easiest things to charge for once the habit forms. Find the deadlines your users dread and miss, then become the thing that remembers for them.
:::

Because a soft launch is exactly when you want this caught, Raul asked for the roast, and the room obliged on polish rather than substance. Two notes landed. Kill the emojis scattered through the interface, the same tell Raul has been hunting out of his AI-generated copy for a couple of meetups now. And drop the colored left border on the cards, which reads as a default framework accent nobody chose rather than a deliberate design decision. Neither breaks anything, which is exactly why they matter before he opens the doors wider.

:::advice{slug="strip-the-tells-that-look-unfinished" category="product" title="Strip the small visual tells that make a product look unfinished" person="raul"}
The room's roast of eBaza was not about features, it was about two small tells: emojis sprinkled through the interface and a colored left border on the cards that read as a default framework accent rather than a deliberate choice. Neither breaks anything, and that is precisely why they are dangerous. They are the quiet signals that whisper "template" or "AI draft" to a user who cannot articulate why a page feels unfinished. Polish at this stage is mostly subtraction, removing the stock flourishes that come free with the tools you built on, because a stray emoji and an unconsidered accent border are the fastest way to look like everyone else's first draft. Walk your own interface hunting for the things you did not decide on purpose, and delete them. The credibility you need in a payment or trust flow is built out of exactly these small, unglamorous removals.
:::

## Valentin redesigns doesmyemail.work

![doesmyemail.work homepage](/screenshots/doesmyemail.png)

[Valentin](/people/vali) closed by showing what [doesmyemail.work](https://doesmyemail.work) had become. The function is the same one the room saw before, a free, no-signup check of whether your email is configured to reach the inbox or the spam folder, but the presentation had grown a whole personality. The new site is dressed head to toe as a postal inspection: you file an "inspection request" on Form DMEW-1, address an envelope with your domain, and the service opens and inspects it from the other end, with the count of firms it has already studied sitting under the field as proof.

:::advice{slug="wrap-a-dull-utility-in-a-familiar-metaphor" category="product" title="Wrap a dull utility in a metaphor people already understand" person="vali"}
Valentin's redesign of doesmyemail.work takes a dry technical chore, checking whether your mail authentication is set up so messages actually land, and dresses it as a postal inspection: you fill in an inspection request on Form DMEW-1, address an envelope, and the service opens and inspects it from the other end. The metaphor does real work beyond looking charming. It hands a non-technical user an instant mental model of an otherwise invisible process, and it turns a forgettable utility into something memorable and shareable. When your product does something abstract or intimidating, borrowing the language and imagery of a familiar real-world ritual can carry more of the explanation than any paragraph of copy. The craft is to choose a metaphor that genuinely maps to what happens, then commit to it everywhere, because a consistent little world is what turns a tool into a brand people remember.
:::

:::advice{slug="turn-your-data-into-credibility" category="distribution" title="Turn the data your tool collects into visible credibility" person="vali"}
The new doesmyemail.work leads with a number, thousands of firms studied, and frames part of the site as field research drawn from what the tool has measured across every domain it has checked. That is the quiet, compounding advantage of running a free utility: each check feeds an aggregate dataset nobody else has, and surfacing it turns your own usage into proof, content, and a reason to trust the verdict. A first-time visitor deciding whether to believe a deliverability score is reassured by "we have looked at thousands of these," and the same research doubles as link-worthy material that ranks. If your product generates data as a byproduct, do not let it sit in a table. Aggregate it, publish it, and let it work as both marketing and a moat. The tool earns the data, and the data earns the next user.
:::

## Eleven editions in, the cold-start problem

The thread under the night was the least glamorous one in the whole indie playbook: it is not enough to build the thing, you have to fill it. Octavian said it most directly, because Intersect cannot prove its worth until the room is in it, but Raul's thirty-user beta and Valentin's redesign are the same story told two other ways. One is recruiting the first cohort by hand, one is earning trust before a public launch by removing the tells that make a soft launch look unfinished and letting search bring the users in, and one is making a utility memorable enough that a stranger bothers to try it. The building keeps getting easier. The part where you go and get the users is still the work.