{"id":"journey/bogdan-event-newsletter","type":"journey","url":"https://indie.md/journeys/bogdan-event-newsletter/","markdown_url":"https://indie.md/journeys/bogdan-event-newsletter.md","title":"Event Newsletter: A Side Project Built in the Margins","description":"Why I scoped a personalized weekly local-events digest small enough to run alongside two kids and a consulting career","content":"I have worked at Microsoft, started a small business, and led the engineering team at a high-growth startup. These days I work as a consultant, raise two kids, and build small things when I find the time. I call myself a dabbler, and I mean it. [Event Newsletter](https://event-newsletter.com) is one of those small things: an app that delivers a personalized weekly digest of local events based on what each person actually cares about, with AI doing the work of finding, curating, and summarizing.\n\n![Event Newsletter homepage with a retro design](/screenshots/event-newsletter.png)\n\nI brought it to Indie TM #5 in Timisoara, the meetup where each person gets seven minutes and then the room roasts what they built. I went last. The room liked the retro design and agreed the niche felt right: event discovery is a real problem, and nobody is solving it well for smaller cities. That was enough encouragement to keep going, and honest enough that I left with a long list of things to fix.\n\n## The product had to fit the life I already have\n\nI did not set out to build a startup. I set out to build something I could run in the margins of a life that is already full. That constraint shaped everything. A personalized weekly events digest is small on purpose: it has a narrow job, a predictable rhythm, and no expectation that I babysit it every day. If I had picked something that needed constant attention, it would have died the first busy week, and every week is a busy week.\n\n:::advice{slug=\"build-in-the-margins-of-a-busy-life\" category=\"mindset\" person=\"bogdan-moldovean\" title=\"Scope a side project to fit the life you already have\"}\nBogdan has a consulting career and two kids, so he deliberately scoped Event Newsletter to something he could run in the gaps rather than something that demands his full attention. The trick is to choose the product around your real available time, not around an imagined version of yourself with empty evenings. A tightly-scoped tool with a narrow job survives the busy weeks that would kill a more ambitious build. For a dabbler, the right size of project is the one that still gets shipped when life gets loud.\n:::\n\n## AI turns a firehose of events into one personal digest\n\nThe reason this is even possible solo is AI. There is a firehose of events happening in any city, scattered across listings, pages, and posts that no human side-project owner could read every week. So I let AI do the reading. It finds the events, curates them against each person's stated preferences, and summarizes them into something short and readable. The newsletter that lands in your inbox is the small, personal end of a very large, very messy pipe.\n\n:::advice{slug=\"let-ai-curate-the-event-firehose\" category=\"product\" person=\"bogdan-moldovean\" title=\"Let AI curate and summarize the firehose into something personal\"}\nEvent Newsletter works because AI handles the part a solo builder cannot: reading the constant flood of local events and turning it into a short, personal digest. Bogdan uses AI to find, curate, and summarize, matching events against each user's preferences so the output feels hand-picked rather than dumped. The leverage is not the AI by itself, it is pointing it at a firehose of information that a human could never process at the cadence the product needs. At Indie TM #5 the room also weighed in on which models might suit this job better, which is the kind of input he went looking for.\n:::\n\n## The niche is the cities everyone else skips\n\nThe honest insight here is small and specific. The big aggregators do event discovery acceptably for major cities and ignore everyone else. Smaller cities get thin, stale, or nonexistent coverage. That gap is the whole opportunity. I am not trying to out-aggregate the giants in places they already serve. I am trying to serve well the places they do not bother with, where someone genuinely cannot find out what is happening near them. The retro design is part of this too: it gives the product a bit of personality, which is cheap differentiation when you cannot compete on scale.\n\n:::advice{slug=\"serve-the-smaller-cities-aggregators-skip\" category=\"product\" person=\"bogdan-moldovean\" title=\"Serve the smaller cities the big aggregators ignore\"}\nBig event aggregators cover major cities and leave smaller ones thin or empty, and that ignored geography is the niche Bogdan is aiming Event Newsletter at. Picking the segment the incumbents skip means you are not fighting them where they are strong, you are serving people they have written off. The room at Indie TM #5 agreed this was the right wedge: a real problem that nobody handles well for smaller places. He also leans on the retro design as a cheap form of differentiation, since personality costs little and stands out when you cannot win on scale.\n:::\n\n## A weekly newsletter is a forgiving format\n\nThe newsletter format itself is a design decision, not just a delivery channel. Weekly means I am not promising real-time. It sets an honest expectation and gives the system a calm, predictable cadence to run on. Email also meets people where they already are instead of asking them to remember to open yet another app. For a side project that has to survive in the margins, a once-a-week digest is about as low-maintenance as a real product gets.\n\n:::advice{slug=\"weekly-newsletter-as-low-maintenance-format\" category=\"distribution\" person=\"bogdan-moldovean\" title=\"Use a weekly newsletter as a low-maintenance product format\"}\nBogdan chose a weekly newsletter for Event Newsletter partly because the format itself is forgiving: a once-a-week cadence sets honest expectations and removes the pressure of anything real-time. Email reaches people in a place they already check rather than competing for attention as one more app to open. For a project run in the margins, the delivery format can do real work to keep maintenance low. The cadence you promise is a product decision, so pick one your life can actually sustain.\n:::\n\n## Being the loudest learner paid off\n\nI was the most active questioner at the meetup, by a wide margin. Every time SEO came up, and it came up constantly, I asked about it, because I am not doing any SEO yet and I want to start. By the end of the night the room had effectively given me a crash course, just from me refusing to stay quiet. I have no SEO results to report, because there is nothing to report yet. What I have is a notebook full of tactics I did not know that morning, collected simply by being the person willing to keep asking.\n\n:::advice{slug=\"be-the-loudest-learner-in-the-room\" category=\"mindset\" person=\"bogdan-moldovean\" title=\"Be the loudest learner in the room\"}\nBogdan was the most active questioner at Indie TM #5, and being the loudest learner is exactly how he walked out with a crash course in the SEO he had not started yet. A room full of builders is a free education, but only for the person willing to keep asking instead of nodding along to protect their ego. He has no SEO results to show, only a list of things to try, and that is the honest output of an evening spent learning out loud. When you are early and behind on something, the fastest way to catch up is to stop pretending you already know it.\n:::","author":"Bogdan","author_url":"https://indie.md/people/bogdan-moldovean/","published":"2026-03-28","lessons":["Scope a side project small enough to run in the gaps of a busy life","Let AI curate and summarize a firehose of events into one personal digest","Serve the smaller cities the big aggregators ignore","A weekly newsletter is a low-maintenance product format","Be the loudest learner in the room and the room will teach you"]}
{"id":"journey/camil-soundscrub","type":"journey","url":"https://indie.md/journeys/camil-soundscrub/","markdown_url":"https://indie.md/journeys/camil-soundscrub.md","title":"SoundScrub: From a Terminal Script to a Product","description":"How a tool for cleaning up holiday footage became a focused app that beats the big editors at one job","content":"[SoundScrub](https://soundscrub.video) does one thing: you describe a sound in plain words, and it removes that sound from your video, keeps only that sound, or just turns it down. It did not start as a product. It started as a script I ran from the terminal to rescue my own footage.\n\n![soundscrub.video homepage](/screenshots/soundscrub.png)\n\n## From a personal fix to a product\n\nI had come back from a holiday with a lot of footage I wanted to show my parents, and a lot of it was ruined by background noise. So I wrote a script to strip the noise out. It solved my problem, and then I hit the question every tinkerer eventually hits: this fixes my problem, but is it a product? The answer turned out to be yes, because the noise problem is not mine alone, it belongs to every traveler and videographer who films in the real world.\n\n:::advice{slug=\"from-personal-fix-to-product\" category=\"product\" person=\"camil\" title=\"A personal fix becomes a product when others share the pain\"}\nSoundScrub began as a script Camil wrote to clean the background noise out of his own holiday footage. The leap to a product came from one question: do enough other people have this exact pain? Scratching your own itch is a great way to start, but it only becomes a business when you confirm the itch is widely shared and worth paying to scratch. Build the thing that solves your problem first, because you understand it deeply, then go check that travelers and videographers are loudly describing the same problem before you commit to productizing it.\n:::\n\n## Build the app for the people who fear the terminal\n\nThe script worked, but only for someone comfortable in a terminal. The product is the desktop app I built for the much larger group of people who would never open one. That is the whole gap between a useful script and a sellable product: the same capability, wrapped so a non-technical person can use it without thinking about Python or command lines.\n\n:::advice{slug=\"wrap-your-script-in-an-app\" category=\"product\" person=\"camil\" title=\"Wrap your script in an app for the people who fear the terminal\"}\nCamil's noise-removal script already worked; the product was wrapping it in a desktop app for everyone who would never touch a terminal. The market for a command-line tool is other developers; the market for the same capability behind a clean interface is everyone. If you have a script that genuinely solves a problem, the productizing work is mostly removing the technical barriers around it, not adding features. A good interface over a working script reaches an audience an order of magnitude larger than the script ever could.\n:::\n\n## Stand on an open model\n\nI did not train the audio model myself. SoundScrub runs on Meta's open-source SAM Audio, wrapped in an Electron shell with a Python backend that runs the model on RunPod GPUs. The hard research problem is solved by the open model; my job is the experience around it. Standing on open-source foundations is what let one person ship something this capable.\n\n:::advice{slug=\"build-on-open-models\" category=\"mindset\" person=\"camil\" title=\"Stand on an open model and build the experience around it\"}\nSoundScrub's audio separation is powered by Meta's open-source SAM Audio, not a model Camil trained. The leverage for a solo builder in 2026 is enormous: the hardest research is published and free, so your job is the product around it (the interface, the workflow, the trust). Do not try to out-research a frontier lab. Find the capable open model that does the hard part, and compete on the experience, the focus, and the polish that the raw model will never have on its own.\n:::\n\n## Let the architecture give you a feature\n\nA nice property fell out of how SoundScrub is built. The video never leaves your machine; only the extracted audio is uploaded for processing, and it is deleted right after. I did not design that as a privacy feature, it was just how the pipeline worked, but it is a genuine selling point for anyone nervous about uploading personal footage. Sometimes the architecture hands you a promise you can make to users.\n\n:::advice{slug=\"turn-architecture-into-a-promise\" category=\"product\" person=\"camil\" title=\"Let your architecture hand you a feature worth selling\"}\nSoundScrub uploads only the extracted audio, never the video, and deletes it right after, so users get a real privacy guarantee that fell out of the technical design rather than a marketing decision. When a property of your architecture happens to answer a fear your users have (privacy, speed, offline use), name it and put it on the page. The most credible selling points are the ones that are simply true because of how the thing is built. Look at your own stack for promises you can already make and are not yet making.\n:::\n\n## Be honest about the limits\n\nI was upfront with the room about where SoundScrub falls short. The prompt can describe what a sound is (a dog barking, people talking) but not where it sits in the frame, and the longest clip I had run through it was about twenty minutes. Saying that plainly did not weaken the pitch, it strengthened it, because the one comparison that made people sit up (it isolates a specific sound far more cleanly than DaVinci Resolve's built-in tools) was clearly coming from someone who knew exactly what his tool could and could not do.\n\n:::advice{slug=\"name-your-tools-limits\" category=\"mindset\" person=\"camil\" title=\"Be honest about the limits of your tool\"}\nCamil told the room exactly where SoundScrub breaks down (no spatial selection, a practical clip-length limit) and it made his strong claim, that it beats DaVinci Resolve at isolating a named sound, more believable, not less. Naming your limits signals that you understand your own product and are not overselling, which is precisely what makes your genuine advantages credible. Buyers trust a founder who volunteers the edges. Hiding the limits only means the user discovers them later, at the worst possible moment, and stops trusting everything else you said.\n:::","author":"Camil","author_url":"https://indie.md/people/camil/","published":"2026-06-10","lessons":["A personal fix can become a product once others share the pain","Wrap your script in an app for everyone who fears the terminal","Stand on an open model and add the experience around it","Let your architecture hand you a feature worth selling","Be honest about the limits of your tool"]}
{"id":"journey/cristian-cozmoslabs","type":"journey","url":"https://indie.md/journeys/cristian-cozmoslabs/","markdown_url":"https://indie.md/journeys/cristian-cozmoslabs.md","title":"A Decade of WordPress Plugins, Built One Slow Year at a Time","description":"Why Cozmoslabs says no to most ideas, lives on yearly renewals, and treats patience as a strategy","content":"I run [Cozmoslabs](https://www.cozmoslabs.com), and we build WordPress plugins. [TranslatePress](https://translatepress.com) makes sites multilingual, Profile Builder handles custom user registration, and Paid Member Subscriptions powers membership sites. Over the years that portfolio has reached more than 500,000 brands, with over 6 million plugin downloads behind it. When I closed the presentations at Indie TM #5, I did not talk about a growth hack. I talked about the opposite: how slow, deliberate building turned into a business that has lasted more than a decade.\n\n![Cozmoslabs homepage showing its WordPress plugin portfolio](/screenshots/cozmoslabs.png)\n\n## It started with content and no product\n\nIn the early days there was no product to sell. I was writing programming tutorials on the Cozmoslabs blog because they were useful, not because they fed a funnel. That content became the SEO foundation that still drives traffic today. The products came later, each one born from a problem clients kept asking me about. I have talked elsewhere about writing content before you have something to sell. The part I want to dwell on here is everything that happened after: the pace, the model, and why we keep saying no.\n\n## A year per product means one product per year\n\nEvery plugin we ship takes about a year to execute properly. That is not a complaint, it is a budget. A year is the most expensive thing I have, and a real product spends all of it, which means I get very few of these decisions in a lifetime. So most of what we could build, we do not. The constraint is not whether an idea is good. Plenty of good ideas show up. The constraint is that saying yes to one is saying no to everything else for twelve months, and that math makes me ruthless about what earns a slot.\n\n:::advice{slug=\"one-product-per-year-forces-no\" category=\"mindset\" person=\"cristian-antohe\" title=\"A one-product-per-year cadence forces you to say no to almost everything\"}\nEvery Cozmoslabs plugin takes about a year to ship properly, which means Cristian gets very few product decisions in a working lifetime. He treats that scarcity as the real filter: the question is never whether an idea is good, because plenty of good ideas appear, it is whether this one is worth giving up a whole year of everything else. That opportunity cost makes saying no the default and saying yes a rare, deliberate act. When each commitment costs a year, the discipline is not picking winners, it is refusing the merely-good in favor of the truly worth it.\n:::\n\n## The WordPress economy runs on renewals\n\nAt Indie TM #6 the room got into pricing, and I shared how we handle it. The contrast was sharp. Some products in that room make great money on one-time purchases. The WordPress plugin ecosystem works differently: it lives on yearly licensing and renewals. A customer buys an annual license, gets a year of updates and support, and renews to keep them. That recurring base is what lets us afford a year per product in the first place. Different market, different model, and ours rewards durability over a launch spike.\n\n:::advice{slug=\"annual-licensing-is-a-durable-model\" category=\"business\" person=\"cristian-antohe\" title=\"Annual licensing and renewals fund the long game\"}\nCozmoslabs runs on the WordPress ecosystem's standard model: customers buy an annual license and renew it for ongoing updates and support. At Indie TM #6 Cristian contrasted this with one-time pricing, noting that the WordPress economy lives on yearly renewals rather than launch-day spikes. The recurring base is exactly what makes a year-long build cycle affordable, because the business is not betting everything on a single sale. When your model rewards the steady renewal instead of the one-off purchase, you can afford to build slowly and think in decades.\n:::\n\n## Standing on a platform, not beside it\n\nWe never tried to build standalone software. We built on top of WordPress, and that choice shapes everything. The platform already has the users, the install base, and the distribution. Our job is to solve a problem inside an ecosystem people already use, not to convince them to adopt a brand-new tool from zero. When a client needs multilingual support or custom registration, they are already on WordPress, and the plugin meets them exactly where they are.\n\n:::advice{slug=\"build-on-an-existing-platform-ecosystem\" category=\"distribution\" person=\"cristian-antohe\" title=\"Build inside an existing platform ecosystem, not standalone\"}\nCozmoslabs builds plugins on top of WordPress rather than launching standalone software, and that decision is itself a distribution strategy. The platform already carries the users, the install base, and the demand, so a plugin meets people inside a tool they have already chosen instead of asking them to adopt something new. Cristian's products solve specific problems for an audience that is already present, which removes the hardest part of distribution. When a large ecosystem already holds your buyers, building inside it can beat building beside it.\n:::\n\n## One brand, several products\n\nCozmoslabs is not one plugin, it is a portfolio under a single name. TranslatePress, Profile Builder, and Paid Member Subscriptions each solve a different problem for a different need, yet they share the brand, the audience, and the content foundation. A customer who trusts us for one plugin is far easier to reach for the next. The blog that built authority years ago now lifts every product we attach to it. Each new plugin does not start from zero on trust, it inherits a decade of it.\n\n:::advice{slug=\"one-brand-many-plugins\" category=\"business\" person=\"cristian-antohe\" title=\"Run a multi-product portfolio under one trusted brand\"}\nCozmoslabs ships several distinct plugins (TranslatePress, Profile Builder, Paid Member Subscriptions) under one brand rather than spinning up a separate identity for each. The shared brand, audience, and content foundation mean a new product inherits the trust and SEO authority the earlier ones built, instead of starting from zero. A customer who already relies on one Cozmoslabs plugin is a warm prospect for the next. When your products serve the same broad audience, keeping them under one roof compounds every audience and trust asset you have already earned.\n:::\n\n## A decade is the moat\n\nWhat actually defends Cozmoslabs is not any single clever feature. It is that we are still here. More than ten years of shipping, supporting, and renewing builds a kind of durability that a competitor cannot copy by launching a flashier version next month. The content has aged into authority, the plugins have aged into reliability, and the brand has aged into trust. Being picky and slow looks like a handicap in a fast market. Over a decade, it is exactly what made us hard to displace.\n\n:::advice{slug=\"decade-of-shipping-is-the-moat\" category=\"mindset\" person=\"cristian-antohe\" title=\"Longevity across a decade is the real moat\"}\nAfter more than ten years of shipping, the thing that defends Cozmoslabs is not a single feature but its sheer durability. Content has aged into authority, plugins have aged into reliability, and the brand has aged into trust, and none of that can be cloned by a competitor launching something flashier next month. Cristian's pickiness and slow pace look like handicaps in a market obsessed with speed, yet across a decade they are precisely what made the business hard to displace. Longevity is not a byproduct of the strategy, it is the moat the strategy was built to create.\n:::","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","published":"2026-03-25","lessons":["A one-product-per-year cadence forces you to say no to almost everything","Annual licensing and renewals are a durable business model","Build on top of an existing platform ecosystem, not standalone","Run a multi-product portfolio under one trusted brand","Longevity across a decade is the real moat"]}
{"id":"journey/doru-dentor","type":"journey","url":"https://indie.md/journeys/doru-dentor/","markdown_url":"https://indie.md/journeys/doru-dentor.md","title":"Building Dentor in the Most Regulated Data Class There Is","description":"How a dental booking platform turned a GDPR constraint into a moat, and learned to sell in person","content":"[Dentor](https://dentor.ro) looks, on the surface, like a simple product: a 24/7 online booking link for a dental clinic, automated SMS and email reminders, centralized patient records, and an auto-generated website. The clinic runs on software instead of a receptionist's notebook, for 245 lei a month. Underneath that simplicity is the hardest constraint I have ever built around.\n\n![dentor.ro homepage](/screenshots/dentor.png)\n\n## The data class is the product spec\n\nThe moment Dentor stores a diagnosis, a treatment, or a dental image, it is processing special-category health data under Article 9 of the GDPR. That is prohibited by default and allowed only on a specific lawful basis, with a higher bar than ordinary personal data: a data protection impact assessment, encryption and pseudonymization, access restricted to staff bound by confidentiality, and a signed data-processing agreement that makes me the processor to each clinic's controller. When I first presented Dentor, the room walked me straight into this, and they were right. The binding constraint on a product like this is not the feature set, it is the data class.\n\n:::advice{slug=\"design-for-the-data-class-from-day-one\" category=\"product\" person=\"doru-bota\" title=\"In a regulated vertical, the data class is the product spec\"}\nWhen Dentor stores diagnoses and dental images, it is handling special-category health data under Article 9 of the GDPR, which is prohibited by default and allowed only under strict conditions. For a vertical SaaS in a regulated space, that data class dictates the architecture before a single feature does: encryption, pseudonymization, access control, a DPIA, and a processor agreement are not add-ons, they are the schema. Find out which regulated data class you are touching before you design the first table, and let it shape the product from day one. Retrofitting compliance onto a finished app is far more expensive than building for it from the start.\n:::\n\n## Sell the relief, not the features\n\nA dental clinic does not want \"centralized patient records.\" It wants fewer phone calls interrupting treatments, fewer no-shows eating the schedule, and a website it never had to commission. Every time I led with features, eyes glazed over. When I led with the relief (the receptionist stops fielding booking calls, the no-show rate drops because the system reminds patients automatically) the owner leaned in.\n\n:::advice{slug=\"sell-the-relief-not-the-feature-list\" category=\"product\" person=\"doru-bota\" title=\"Sell the operational relief, not the feature list\"}\nDentor's feature list (booking link, reminders, patient records, auto-generated site) means nothing to a dentist until it is translated into relief: fewer interrupting phone calls and fewer empty chairs from no-shows. Buyers do not purchase capabilities, they purchase the removal of a daily pain. Lead with the specific operational misery your product ends, in the buyer's own words, and keep the feature list for the spec page. The clinic owner does not care how it works; they care that Monday stops being chaos.\n:::\n\n## Cold email died, in-person sold\n\nThe expensive lesson came on the sales side. I polished the brand, tightened the copy, and ran the obvious first move: a cold email campaign. It produced nothing. What worked was the least scalable thing imaginable: walking into small and individual dental clinics and pitching the owner face to face. A dentist does not live in their inbox and will not trust a stranger's link, but they will trust a person standing in their waiting room who clearly understands their day.\n\n:::advice{slug=\"match-the-channel-to-the-buyer\" category=\"distribution\" person=\"doru-bota\" title=\"Match the channel to the buyer, even when it does not scale\"}\nDoru's cold email campaign for Dentor produced nothing; walking into clinics and pitching owners in person produced customers. Cold email is the default because it scales from a laptop, but it assumes a buyer who reads cold email and trusts links from strangers. A local, high-trust, offline buyer like a dentist is the opposite of that. The channel has to match where the buyer's trust actually lives, not your preference for staying behind a screen. Early on, the unscalable channel is often the only one that converts, so do it until you have proof and a reference list.\n:::\n\n## Compliance is a reason to buy\n\nThe interesting inversion is that the same GDPR burden that makes Dentor hard to build is something clinics are afraid of themselves. A clinic owner knows, vaguely, that mishandling patient data is dangerous, and most have no idea whether their current spreadsheet-and-WhatsApp setup is exposing them. A product that has visibly done the compliance work is not just safer, it is more attractive. The constraint became part of the pitch.\n\n:::advice{slug=\"turn-compliance-into-a-selling-point\" category=\"business\" person=\"doru-bota\" title=\"Turn compliance from a burden into a selling point\"}\nThe Article 9 requirements that make Dentor expensive to build are the same requirements clinics are quietly anxious about for their own data handling. Done properly and shown honestly (not a \"GDPR Compliant\" badge, but a real, explained posture on consent and data protection), compliance becomes a reason to choose you over the informal setup a clinic uses today. In a regulated market, the burden everyone else avoids is the differentiator. Do the hard work, then let prospects see that you did it, because their fear of getting it wrong is part of why they will pay you.\n:::\n\n## The hard niche is the moat\n\nThe in-person grind is slow, but everything that makes Dentor hard (health-data compliance, slow offline buyers, an unscalable sales motion) is also what keeps casual competitors out. A market that punishes shortcuts and rewards patience is a market where a committed builder can win and then defend the position. The difficulty is not a reason to avoid the niche, it is the reason the niche is worth owning.\n\n:::advice{slug=\"a-regulated-niche-is-a-moat\" category=\"mindset\" person=\"doru-bota\" title=\"A hard-to-serve, regulated niche is a moat\"}\nEverything that makes Dentor hard (health-data compliance, slow offline buyers, in-person selling) is also what keeps casual competitors out. A market that punishes shortcuts and rewards patience is one where a committed builder can win and then defend the position. The difficulty is not a reason to avoid the niche, it is the reason the niche is worth owning. When you find a vertical where the barriers are real (regulation, trust, an unglamorous sales motion), the same walls that slow you down will keep the next person out once you are inside.\n:::","author":"Doru","author_url":"https://indie.md/people/doru-bota/","published":"2026-06-08","lessons":["In a regulated vertical, the data class is the real product spec","Sell the operational relief, not the feature list","Match the channel to the buyer, even when it does not scale","Turn compliance from a burden into a selling point","A hard-to-serve, regulated niche is a moat"]}
{"id":"journey/fineas-aisafe","type":"journey","url":"https://indie.md/journeys/fineas-aisafe/","markdown_url":"https://indie.md/journeys/fineas-aisafe.md","title":"Selling Security Where SaaS Cannot Follow","description":"Why AISafe ships into corporate networks and air-gapped deployments, and what that choice does to the company","content":"I spent years as a security researcher and CTF player, which is a polite way of saying I spent years diving headfirst into the hardest subjects to find ways to exploit them. These days I run AISafe Labs and ship [AISafe](https://aisafe.io), a security product. The part that shapes everything is where we sell it: not as a SaaS anyone can sign up for, but into corporate networks, regulated industries, and air-gapped deployments, the places where running someone else's cloud service is simply not an option.\n\n![AISafe security product homepage](/screenshots/aisafe.gif)\n\nWhen I took the floor at Indie TM #7 in Timisoara, I did not bring a pitch. I brought a question: how do you price an on-prem deployment? The product works. What I had not figured out was what it should cost to put it inside a customer's own network, behind their own compliance boundary, with their own audit trail. The room had concrete answers on the pricing math, but the more interesting conversation, for me, was everything around that question: why this market, why this background, and what selling into it does to the company you build.\n\n## The constraint is the moat\n\nMost security tools today run as SaaS, because it is cheaper and faster to build. That model works beautifully right up until your customer is a corporation that wants the tool inside its own four walls: its own network, its own compliance boundary, its own audit trail. For a SaaS competitor, that requirement is a wall they cannot climb without rebuilding their whole company. For us, it is the front door. We sell into the market where running as a SaaS is not an option, and the exact constraint that makes the work harder is the same constraint that keeps the easy competitors out.\n\n:::advice{slug=\"the-constraint-is-the-moat\" category=\"business\" person=\"fineas-silaghi\" title=\"Choose the market where SaaS competitors cannot follow\"}\nAISafe sells into corporate networks, regulated industries, and air-gapped deployments, environments where running as a SaaS is simply not an option. Most security competitors are SaaS-only because it is cheaper and faster to build, which means they physically cannot serve a buyer who needs the tool inside their own network and compliance boundary. Fineas treats that requirement not as a limitation to apologize for but as the moat itself: the constraint that makes the product harder to ship is the same constraint that locks the convenient competitors out. When a market punishes the lazy approach everyone else takes, being the one who does the hard version is the whole advantage.\n:::\n\n## Building security from an attacker's eye\n\nI did not arrive at security through theory. I arrived through years of breaking things, of diving headfirst into the hardest subjects specifically to find how they could be exploited. That offensive instinct, the CTF habit of asking \"where does this fall apart,\" is not a detour from building a security product, it is the foundation of it. When you have spent your career attacking systems, you know exactly which assumptions a defender quietly makes and which ones an attacker will walk straight through. That background shapes AISafe far more than any feature checklist could, because the product is built by someone who has spent years on the other side of it.\n\n:::advice{slug=\"build-security-from-an-attackers-eye\" category=\"product\" person=\"fineas-silaghi\" title=\"Build the security product from an attacker's eye\"}\nFineas came to AISafe from offensive security: a researcher and CTF player whose habit was to dive into hard systems and find ways to exploit them. Building a security product on top of that background is an advantage, because the person designing it already knows which assumptions break under a real attack and which ones an attacker walks straight through. Founders who only ever read the documentation tend to protect against the threats they can imagine; founders who spent years attacking understand the threats that actually get used. If your edge is knowing how to break something, the strongest product you can build is the one shaped by that exact knowledge.\n:::\n\n## You are selling to procurement, not just the engineer\n\nIn a SaaS world the buyer and the user are often the same person clicking \"start free trial.\" Selling into corporations is not like that, and the room made it concrete when the pricing conversation turned to budgets. A corporation of a certain size already has a budget line for tools in our category and a procurement team that is used to spending it. The people who decide are not only the engineers who would run AISafe; they are the procurement and compliance functions that care the tool stays inside their own network, respects their compliance boundary, and leaves a clean audit trail. They speak the language of risk, budget, and control rather than features, and learning to sell to them is a completely different skill from impressing the person who will actually use the software.\n\n:::advice{slug=\"the-buyer-is-procurement-and-compliance\" category=\"distribution\" person=\"fineas-silaghi\" title=\"Sell to procurement and compliance, not just the end user\"}\nFor AISafe, the people who decide are not only the engineers who would run the tool; they are the procurement and compliance functions that sign off on it. The room made the point concrete on pricing: a corporation of a certain size already has a budget line for your category and a procurement team used to spending it, and those gatekeepers care that the software stays inside their network, respects their compliance boundary, and produces a clean audit trail. Fineas treats them as the actual customer, which means the pitch has to satisfy people who never touch the product but control whether it ships. When you sell into the enterprise, design the demo for the user and the paperwork for procurement, because both have to say yes.\n:::\n\n## The support reality reshapes the whole company\n\nHere is the part that surprised me most, and the thing that turned a pricing question into a company-design question. Once your software lives inside a customer's network, you lose almost everything you take for granted in SaaS. No live logs without a ticket. No quiet hotfix without their change window. No telemetry at all unless you negotiated it into the contract. That changes far more than a price tag. It changes how you staff support, how you write the software so it can be debugged blind, how you ship updates, and how patient your whole engineering culture has to be. The on-prem support reality is not a line item you bolt on at the end, it is a force that quietly redesigns the company around it.\n\n:::advice{slug=\"let-on-prem-support-reshape-the-company\" category=\"business\" person=\"fineas-silaghi\" title=\"Let the on-prem support reality reshape the whole company\"}\nWhen AISafe runs inside a customer network, Fineas loses live logs, the freedom to hotfix, and any telemetry he did not contractually negotiate. Beyond what that does to the price, it reshapes how the company is built: support has to be staffed for blind debugging, the software has to be written to be diagnosable without a live connection, and the whole engineering culture has to absorb slower, more deliberate releases. Founders selling on-prem should treat the support model as an architectural and organizational decision, not only a pricing input. The way you will have to support the product after the sale should influence how you build the product and the team long before the first contract is signed.\n:::\n\n## Bring the question, not the pitch\n\nI want to be honest about how that evening actually went, because it is the real lesson. I did not stand up with a deck and a closing line. I stood up with the one thing I genuinely had not solved: how to price an on-prem deployment when the product already works. Putting that unfinished question in front of a room of people who had shipped to enterprise customers got me two sharp answers that I would have circled for weeks on my own. The instinct to only present what is polished is exactly backwards. The polished parts do not need the room. The unsolved one does.\n\n:::advice{slug=\"bring-your-hardest-question-to-the-room\" category=\"mindset\" person=\"fineas-silaghi\" title=\"Bring your hardest unanswered question, not a polished pitch\"}\nAt Indie TM #7, Fineas took the floor with a question rather than a pitch: how do you price an on-prem deployment when the product already works? Because he led with the thing he had genuinely not solved, the room full of people who had shipped enterprise software handed him two concrete answers instead of polite applause for a demo. The reflex to present only the finished, impressive parts wastes the room, because the finished parts do not need help. Walk in with the single hardest open question you have, and let the people who have already been where you are going do the part you cannot do alone.\n:::\n\n## What the pricing question was really about\n\nI left the meetup with the pricing math I came for, but the bigger takeaway was that none of these threads are separate. Choosing the market where SaaS cannot follow, building from an attacker's background, selling to compliance, and designing the company around blind support are all the same decision seen from different angles. The on-prem price tag I still had to finish working out is just the most visible edge of a company shaped, top to bottom, by selling security exactly where the easy competitors are not allowed to go.","author":"Fineas Silaghi","author_url":"https://indie.md/people/fineas-silaghi/","published":"2026-05-02","lessons":["Choose the market where SaaS competitors physically cannot follow you","A security product built from an attacker's eye knows where defenses break","The buyer is procurement and compliance, not just the engineer who runs it","An on-prem support reality reshapes the company, not just the price","Bring your hardest unanswered question to the room, not a polished pitch"]}
{"id":"journey/flavius-pace","type":"journey","url":"https://indie.md/journeys/flavius-pace/","markdown_url":"https://indie.md/journeys/flavius-pace.md","title":"Pace: Building the Tool That Makes the Right Interview the Easy One","description":"Why structured interviews win in the research and lose in practice, and how Pace closes the gap","content":"I came to hiring sideways: computer science and psychology first, then neuroscience and organizational behavior, then five years actually hiring for teams across Europe. The whole time, one thing nagged at me. We know what a good interview looks like, and almost nobody runs one. [Pace](https://hirewithpace.com), the first product from [Human Nature](https://humannature.earth), is my attempt to fix that.\n\n![Pace hiring tool homepage](/screenshots/pace.gif)\n\n## The gap between known and done\n\nStructured interviews (the same questions, the same rubric, the same scoring across every candidate) are the single most validated predictor of on-the-job performance in the entire hiring research literature. And almost nobody runs them: not the agencies, not the startups, not big tech when you scratch the surface. I could not reliably run one myself under time pressure, even knowing exactly what it should look like. That gap, between the practice everyone agrees is right and the thing people actually do, is the product.\n\n:::advice{slug=\"make-the-right-thing-the-default\" category=\"product\" person=\"flavius\" title=\"Encode the best practice so the right path is the easy one\"}\nEveryone agrees structured interviews work, and almost nobody runs them, because doing it right is inconvenient under pressure. Pace closes that gap by building the framework into the workflow, so the structured interview becomes the path of least resistance instead of a discipline you have to summon. The richest product territory is any practice that experts endorse and operators skip because it is annoying: automated tests, double-entry bookkeeping, security keys, structured interviews. Build the tool that makes the correct thing the easy thing, and the onboarding pitch writes itself.\n:::\n\n## Automate the tax, not the judgment\n\nThe AI part of Pace is not a chatbot that decides who to hire. It runs beside the interviewer (a Chrome extension alongside Google Meet, with picture-in-picture and real-time transcription) so that by the end of the call the scorecard is mostly pre-filled and the recruiter just edits and signs off. I estimate it saves about 40 minutes per interview: scheduling, note-taking, write-ups, scorecard alignment. The human still makes the call. The machine removes the operational tax around it.\n\n:::advice{slug=\"automate-the-tax-keep-the-judgment\" category=\"product\" person=\"flavius\" title=\"Automate the operational tax, not the human judgment\"}\nPace does not decide who gets hired; it removes the 40 minutes of note-taking, write-ups, and scorecard wrangling around each interview so the human can focus on judgment. For tools that sit on high-stakes human decisions, that line matters: automate the busywork that surrounds the decision, and leave the decision to the person. Buyers trust a tool that makes them faster far more than one that tries to replace their judgment, and the busywork is where the real time is lost anyway. Find the operational tax around the decision and kill it, but keep your hands off the decision itself.\n:::\n\n## Two axes, not one number\n\nThe framework Pace encodes is a two-part model from organizational psychology: every candidate is scored on interview performance and on job fit, as separate axes. A candidate who aces the technical questions but bombs the fit signal is a fundamentally different decision from one who does the opposite, and collapsing them into a single score is where most hiring processes quietly fail. Inside each axis, the emphasis is on problem-solving over memorized domain knowledge, because the people who win on trivia tend to underperform in the actual work.\n\n:::advice{slug=\"separate-performance-from-fit\" category=\"mindset\" person=\"flavius\" title=\"Score interview performance and job fit as separate axes\"}\nPace scores every candidate on two independent axes: how they performed in the interview, and how well they fit the role. A strong performer who is a poor fit and a weak performer who is a great fit are different decisions, and averaging them into one number erases exactly the information you need. Whenever you are evaluating something multi-dimensional (a hire, a feature, a deal), resist the single composite score. Keep the axes separate so you can see the trade-off you are actually making instead of hiding it inside an average.\n:::\n\n## The adjacent product is a trap\n\nWhile I was demoing Pace, I sketched a second idea: an automated code-assessment layer downstream of the interview, with repository integration, vulnerability scanning, AI-filtered results. The room's response was immediate and correct: do not ship it until Pace has paying customers. The adjacent product always looks more interesting than the one you actually need to close this quarter. That is precisely why it is dangerous.\n\n:::advice{slug=\"finish-product-one-first\" category=\"product\" person=\"flavius\" title=\"Finish the first product before chasing the adjacent one\"}\nMid-demo, Flavius floated an exciting second product (automated code assessment) and the room told him to bury it until Pace has paying customers. The adjacent idea always looks more appealing than the one in front of you, because it is unspoiled by the boring work of actually closing customers. That appeal is the trap: every hour on product two is an hour product one does not get, and product one is the one that has to pay the bills. Write the second idea down, then go back to making the first one sell.\n:::\n\n## Be the best for one vertical\n\nThe sharpest challenge was about focus. Who is Pace for: internal HR, agency recruiters, hiring managers doing their own hiring? The room pushed me to go narrower still: be the best possible tool for technical interviews specifically (code tasks, system-design prompts, engineering panels) rather than an acceptable horizontal tool for every kind of role. Being the best product for one vertical beats being a tolerable product for all of them.\n\n:::advice{slug=\"win-one-vertical-not-all-roles\" category=\"business\" person=\"flavius\" title=\"Be the best tool for one vertical, not an acceptable one for all\"}\nPace could try to serve every kind of hiring, or it could be the unmistakably best tool for technical interviews and own that vertical completely. A horizontal tool that is acceptable everywhere loses to a vertical tool that is excellent in one place, because the buyer in that place feels it was built for them. Narrowing the target sharpens the features, the copy, and the demo all at once. Pick the one vertical where you can be the obvious best choice, win it, and expand from a position of strength rather than spreading thin from the start.\n:::","author":"Flavius D.","author_url":"https://indie.md/people/flavius/","published":"2026-04-28","lessons":["Encode the best practice so the correct path is the easy path","Automate the operational tax, never the human judgment","Score interview performance and job fit as separate axes","Finish the first product before chasing the adjacent one","Be the best tool for one vertical, not an acceptable one for all"]}
{"id":"journey/grigore-retently","type":"journey","url":"https://indie.md/journeys/grigore-retently/","markdown_url":"https://indie.md/journeys/grigore-retently.md","title":"Building Retently to Last, Not to Spike","description":"How a bootstrapped customer-feedback SaaS treats longevity, customer trust, and independence as the real strategy","content":"I run [Retently](https://www.retently.com), a customer feedback platform. It measures NPS, CSAT, and CES, collects reviews, and turns the raw responses into insights for Ecommerce stores and B2B SaaS teams. It is bootstrapped, profitable, and has been running for more than a decade. I have never raised money and never chased a launch-week spike. The thing I am most proud of is unglamorous: it is still here, customers still trust it with their feedback program, and it keeps getting better.\n\nRetently was not where I started. I built and sold a previous company, Noction, and afterward went looking for the next thing. The customer success category was just taking off then, with companies like Gainsight and Totango defining it, and I wanted in. I chose to enter through the piece I could do exceptionally well rather than the whole sprawling suite: measuring how customers actually feel. Retently began as an NPS tool and grew into a full feedback platform spanning NPS, CSAT, and CES, focused squarely on Ecommerce and B2B SaaS rather than trying to become another all-in-one customer success platform.\n\n## Win a focused lane, not the whole suite\n\nEntering a category that funded incumbents were racing to define, the instinct is to match them feature for feature. I went the other way. Instead of building a sprawling customer success suite I could never out-resource, I went deep on the part every one of those teams needs and few do really well: the measurement layer. NPS first, then CSAT and CES, done properly for Ecommerce and B2B SaaS. A focused product that nails one job beats a broad one that does ten jobs adequately, and that edge is sharpest when you are bootstrapped and the people across the table have raised serious money.\n\n:::advice{slug=\"win-a-focused-lane\" category=\"product\" person=\"grigore-raileanu\" title=\"Win a focused lane instead of matching funded incumbents feature for feature\"}\nWhen Greg entered the customer success category, well-funded incumbents were racing to define it, and the obvious move was to match them feature for feature. He did the opposite: rather than build a sprawling suite he could never out-resource, he went deep on the one layer every team in that category needs and few do really well, customer feedback measurement (NPS, then CSAT and CES). A focused product that nails a single job beats a broad one that does ten jobs adequately, and that edge is sharpest when you are bootstrapped and your competitors have raised serious money. Pick the wedge you can be the best in the world at, and let the incumbents carry the cost of trying to be everything to everyone.\n:::\n\n## Longevity is the strategy, not the byproduct\n\nMost SaaS advice optimizes for the first eighteen months: the launch, the growth curve, the round. I optimized for year ten. A product that is still standing after a decade has something a new competitor cannot clone by shipping a flashier version next month: it has aged into reliability. Customers have integrated it, trusted it with their feedback data, and built workflows on top of it. That accumulated durability is the asset, and everything else is in service of keeping it strong.\n\n:::advice{slug=\"outlasting-beats-outlaunching\" category=\"mindset\" person=\"grigore-raileanu\" title=\"Outlasting the category beats out-launching it\"}\nGreg built Retently to be standing in year ten, not to win launch week. A product that has run profitably for more than a decade earns something a faster competitor cannot copy on demand: it has aged into reliability and trust, customers have integrated it and built workflows on top of it, and that accumulated durability becomes the real moat. Optimizing for longevity instead of the early growth curve looks slow in a market obsessed with spikes, but the company that is still there after ten years, still trusted by its customers, is the one that compounded. Build for the decade, and durability stops being luck and becomes the strategy.\n:::\n\n## Independence is a feature customers can feel\n\nRetently is bootstrapped and profitable, which means the people it answers to are its customers, not a board chasing a quota or an investor who wants an exit on a schedule. That independence keeps the product stable and present for the long run. There is no pressure to pivot away from the people who rely on it, and no risk of it being sold out from under them and shut down. A team trusts a feedback platform far more when they know it will still be there next year, run by the people who built it. Owning the business outright is what lets me optimize for the customer's decade instead of an investor's quarter.\n\n:::advice{slug=\"bootstrapped-answers-to-customers\" category=\"business\" person=\"grigore-raileanu\" title=\"Bootstrapped and profitable means your roadmap answers to customers, not investors\"}\nRetently is bootstrapped and profitable, so the people it answers to are its customers rather than a board or an investor with an exit timeline. Greg treats that independence as a feature customers can feel: the product stays stable and present, there is no pressure to pivot away from the people who depend on it, and there is no risk of it being sold off and shut down. Teams trust a feedback platform more when they know it will still be there next year, run by the people who built it. Owning the business outright is what lets a founder optimize for the customer's decade instead of an investor's quarter.\n:::\n\n## Be the safe place to land when a tool shuts down\n\nWhen Delighted announced it was winding down, thousands of teams suddenly needed a new home for their NPS and feedback programs. The right response is not to treat that as a windfall to harvest, it is to be genuinely ready to receive those teams: a clean migration path, clear positioning, and the least possible friction for someone who already knows exactly what they need and just lost the tool that did it. Helping a displaced team move without losing their history earns trust that a cold pitch never will. When an incumbent in your category exits, the work is making the switch safe and easy, and the customers follow.\n\n:::advice{slug=\"help-teams-migrate-safely\" category=\"distribution\" person=\"grigore-raileanu\" title=\"Be ready to help teams migrate safely when a tool they relied on shuts down\"}\nWhen Delighted wound down, thousands of teams needed a new home for their feedback programs overnight, and Greg's read is that the right move is to be the safe place to land rather than to gloat over a windfall. A clean migration path, clear positioning, and the least possible friction for a buyer who already knows what they need can move more revenue than any cold-acquisition push, and helping a team migrate without losing their history earns trust a pitch cannot. Watch the incumbents in your category and be ready to receive their customers the moment one exits. Make the switch safe and easy, and the customers follow.\n:::\n\n## Value that compounds with use\n\nThe longer a customer runs Retently, the more it is worth to them. Years of NPS and CSAT history to trend against, integrations wired into their stack, and workflows their team relies on day to day. I built around the idea that the real value of a feedback platform is not any single screen, it is everything that accumulates on top of it over time. That compounding is good for the customer, because their data gets richer and more useful, and it is what makes the product something teams genuinely stay with for years rather than something they shop around every renewal.\n\n:::advice{slug=\"value-compounds-with-data\" category=\"product\" person=\"grigore-raileanu\" title=\"A feedback platform's value compounds with the data and integrations built on it\"}\nThe longer a customer runs Retently, the more it is worth to them: years of NPS and CSAT history to trend against, integrations wired into their stack, and workflows the team relies on. Greg built around the idea that the real value of a feedback platform is not any single screen but everything that accumulates on top of it over time. That compounding is good for the customer, whose data only gets richer and more useful, and it is what turns a tool into something teams stay with for years instead of reshopping every renewal. Build for the value that deepens with use, not just the feature that demos well on day one.\n:::","author":"Greg","author_url":"https://indie.md/people/grigore-raileanu/","published":"2026-06-30","lessons":["Win a focused lane instead of matching funded incumbents feature for feature","Outlasting the category beats out-launching it","Bootstrapped and profitable means your roadmap answers to customers, not investors","Be ready to help teams migrate safely when a tool they relied on shuts down","A feedback platform's value compounds with the data and integrations built on it"]}
{"id":"journey/ionut-laura","type":"journey","url":"https://indie.md/journeys/ionut-laura/","markdown_url":"https://indie.md/journeys/ionut-laura.md","title":"Laura: A One-Person Studio Selling a Synth Forever","description":"Why a niche audio plugin is a textbook solo product, and a perpetual license is a promise subscriptions cannot make","content":"I build audio plugins as a one-person studio called [Lost Synapse](https://lostsynapse.store). The first release is Laura, a software synthesizer written in C and C++ on top of JUCE. It is the most different kind of indie product you will see at a meetup full of SaaS founders, and the economics fit one person almost perfectly.\n\n![Lost Synapse running its Laura polysynth](/screenshots/lostsynapse.png)\n\n## Let the framework do the plumbing\n\nJUCE is the de facto standard C++ framework for audio plugins, the instruments and effects that load inside a digital audio workstation like Ableton Live, Logic Pro, or FL Studio. You write the processing code once and JUCE exports the same codebase to every major plugin format across desktop and mobile. Laura ships as an AU, VST3, and standalone instrument for macOS and Windows, and I did not write that cross-format, cross-platform plumbing myself. That is precisely the work that would otherwise eat a solo developer's entire timeline.\n\n:::advice{slug=\"let-the-framework-do-the-plumbing\" category=\"product\" person=\"ionut\" title=\"Let the standard framework handle the cross-platform plumbing\"}\nLaura ships in every major plugin format on macOS and Windows because JUCE, the standard audio framework, handles the brutal cross-format, cross-platform export. Ionut writes the sound once and lets the framework do the part that would otherwise consume a solo developer's whole timeline. In any domain with a mature standard framework, the leverage is to stand on it for the undifferentiated plumbing and spend your scarce time on the part that is actually yours. Do not hand-roll what a battle-tested framework already solves for everyone.\n:::\n\n## A promise a subscription cannot make\n\nLaura sells for 69 dollars, one time, with lifetime updates and no telemetry, direct from the site or through Gumroad. That perpetual license is not just a price, it is a promise: one purchase, every new build free, forever. A subscription tool structurally cannot say that. In a market of producers who are tired of renting their tools, \"you own this and the updates never stop\" is a real differentiator, not a discount.\n\n:::advice{slug=\"sell-a-promise-subscriptions-cant-make\" category=\"business\" person=\"ionut\" title=\"A perpetual license is a promise no subscription can match\"}\nLaura is a one-time 69 dollar purchase with lifetime updates and no telemetry, and that perpetual license is itself the pitch: own it once, every future build is free, forever. A subscription product cannot structurally make that promise, which means it is a differentiator you get for free by choosing the model. When your audience is tired of renting (creative tools, developer tools, anything with subscription fatigue), perpetual ownership is not money left on the table, it is a competitive weapon. Sometimes the pricing model is the marketing.\n:::\n\n## The moat is taste, not engineering\n\nIt would be easy to assume the hard part of a synth is the engineering. It is not, or not only. The moat in audio software is taste and DSP craft: a recognizable sound and a brand that producers trust. Anyone can wire up oscillators; very few can make them sound like something people want to reach for. That is where the durable advantage lives, and it is the part no framework and no competitor can copy.\n\n:::advice{slug=\"compete-on-taste-not-tech\" category=\"mindset\" person=\"ionut\" title=\"In a craft market, the moat is taste, not engineering\"}\nThe defensible part of Laura is not the code, it is the sound: a recognizable character and the trust producers place in the Lost Synapse name. In creative tools, taste and craft are the moat, because the underlying engineering is increasingly available to everyone. If you compete in a market where the output is judged by feel (audio, design, writing tools), invest in developing a recognizable point of view, not just shipping features. The taste is the part that compounds and the part nobody can fork.\n:::\n\n## Scope one instrument well\n\nLaura is pitched at sound designers who would rather not learn another ecosystem: four oscillator engines under one signal path, a mod matrix, and a button that rolls the dice when inspiration is late. That is a deliberately bounded instrument, not a do-everything synth. One well-scoped product that a specific kind of user reaches for beats a sprawling one that tries to be every synth at once.\n\n:::advice{slug=\"scope-one-well-made-thing\" category=\"product\" person=\"ionut\" title=\"Scope one well-made instrument, not a do-everything synth\"}\nLaura is four oscillator engines, one signal path, a mod matrix, and one delightful \"roll the dice\" feature, aimed at a specific kind of sound designer. It is deliberately not a synth that tries to do everything. A single, well-scoped product that one type of user reaches for instinctively beats a feature-maximal one that serves no one in particular. Decide exactly who the tool is for and what the one delightful thing is, then resist the urge to add everything. Focus is what makes a solo product feel finished instead of thin.\n:::\n\n## The channels already exist\n\nI do not have to build an audience from scratch. The distribution channels for audio plugins already exist: marketplaces like KVR Audio and Plugin Boutique, plus YouTube and the producer communities where people discover and demo instruments every day. My job is to show up where producers already gather, not to invent a new place for them to find me.\n\n:::advice{slug=\"use-the-channels-that-already-exist\" category=\"distribution\" person=\"ionut\" title=\"Use the distribution channels that already exist\"}\nIonut does not need to build an audience for Laura from zero, because the audio-plugin world already has its gathering places: KVR Audio, Plugin Boutique, YouTube demos, and active producer communities. The distribution work is showing up where the buyers already are, not manufacturing a new channel. Before you assume you have to grow your own audience the slow way, check whether your niche already has established marketplaces and communities. Plugging into existing demand is far faster than creating it, and most mature niches have more of it than newcomers expect.\n:::","author":"Ionut F.","author_url":"https://indie.md/people/ionut/","published":"2026-06-02","lessons":["Let the standard framework handle the cross-platform plumbing","A perpetual license is a promise no subscription can match","In a craft market, the moat is taste, not engineering","Scope one well-made instrument, not a do-everything synth","Use the distribution channels that already exist"]}
{"id":"journey/mihai-datadriven","type":"journey","url":"https://indie.md/journeys/mihai-datadriven/","markdown_url":"https://indie.md/journeys/mihai-datadriven.md","title":"DataDriven: Reading Every Public Tender in Romania, Alone","description":"How an ex-Microsoft engineer turned burnout into a solo company that crawls 10,000 sources, OCRs tender documents on a gaming GPU, and gets 300 firms to pay for the result","content":"I spent twelve years as a developer at Microsoft, two of them in the US on the Bing team. In 2021 I burned out and quit. In 2023, with zero experience as an entrepreneur, I founded a company and launched [DataDriven](https://www.datadriven.ro), a platform that monitors public tenders across Romania. Today it crawls more than 10,000 sources daily, reads the actual tender documentation with an OCR pipeline I run on a gaming GPU in my office, and serves over 300 paying firms at around 27,000 lei in monthly recurring revenue. I still work alone, and that is not an accident.\n\n![datadriven.ro homepage](/screenshots/datadriven.png)\n\n## An uncle lost in SEAP\n\nThe idea came from watching my uncle, a real estate appraiser who worked on public procurement contracts. He would spend hours inside SEAP, Romania's electronic public procurement system, because the interface gave him six different menus where a tender relevant to his business might be classified. For him there was one primary category where his work obviously belonged, but the authorities filing the tenders did not always agree. So he searched all six, every day.\n\nIt got worse after the search. To download a tender's documentation you receive a .p7s file, a cryptographically signed wrapper that Windows does not open. The standard move, for him and for everyone else in the industry, was to google \"p7s open\" and land on some piece of trialware. This is the daily reality of the people who sell to the Romanian state.\n\nI did the obvious engineer thing: I wrote a script that watched for new tenders in his domain, crawled the data in Azure, and emailed him whatever appeared. That script was the seed of the company.\n\n## A company of one, on purpose\n\nWhen I decided to build a business, I decided to build it alone. After the burnout I wanted to eliminate human contact from my working life, bluntly put. No cofounders, no meetings about meetings, nobody to negotiate the roadmap with. I wanted to build the application exactly the way I saw fit.\n\n:::advice{slug=\"solo-founder-by-design\" category=\"mindset\" person=\"mihai-negrea\" title=\"Design the company around the life you need, even if that means no cofounders\"}\nMihai came out of a burnout at Microsoft with a hard constraint: he needed to remove obligatory human contact from his working life for a while. So he designed the company around that constraint, no cofounders, no employees, full control over every product decision. The standard advice says find a cofounder, split the load, hire early, but standard advice optimizes for growth, not for the founder staying functional. A company shaped around your actual capacity is one you can run for years; a company shaped around a template is one you abandon. Constraints like health, energy, and tolerance for people are real inputs to company design, not weaknesses to overcome. Decide what you need to stay in the game, then build the business that fits inside it.\n:::\n\n## Launching into silence\n\nI founded the company in 2023 and got into a startup program with Azure cloud credits worth up to $150,000. I burned through about $100,000 of it on the AI scripts that crawled and processed everything. In February 2023 I launched, put up some ads, and waited for the server to crash under the load of eager customers.\n\nThe server was fine. Nobody converted. The first paying client arrived in April 2023, two months after launch, at 19 lei per month, roughly four euros. For a long time the business was 40 clients at 19 lei each, which is not a business, it is a hobby with invoices. Until 2025 I barely looked at marketing at all; I was heads-down on the crawler, the data pipeline, and the frontend.\n\n## The customers taught me the product\n\nThe shape of the real product came from two kinds of customers.\n\nThe first was a security services firm. Their tender-finding process was a browser bookmark folder organized by county, and every day someone opened the town hall websites one by one to check whether a new tender had appeared. That was a salaried human being clicking through bookmarks daily. They became my first serious contract at 2,000 lei per month for complete coverage of the sites they cared about.\n\nThe second group was catering firms, the companies behind school meal programs like the old \"cornul și laptele\" (now \"masă sănătoasă\"), where town halls receive budgets for sandwiches and related products. Catering is logistically bound to a county: you cannot deliver school meals two counties over. So each firm needs to watch every town hall in its county, and only those. That constraint made the product's value concrete: complete local coverage, zero noise from the rest of the country.\n\n:::advice{slug=\"replace-the-bookmark-folder-workflow\" category=\"business\" person=\"mihai-negrea\" title=\"Price against the manual workflow you replace, not the software you wrote\"}\nMihai's first serious customer was a security firm whose tender discovery process was a bookmark folder organized by county and an employee who opened town hall websites every single day. They happily paid 2,000 lei per month for complete automated coverage, a hundred times his 19 lei list price at the time, because the alternative was a salary. The lesson is that software is not priced against its build cost or against other software, it is priced against the manual grind it replaces. Find the customer who is already paying a human to do the thing badly, and the budget already exists; you are not creating a line item, you are shrinking one. Before setting a price, ask what the current workflow costs in hours and salaries, and anchor there.\n:::\n\n## Read the documents, not the labels\n\nThe deeper I got into tender data, the clearer one thing became: you cannot trust what the authorities write on the tin. The official CPV classification system has around 10,000 subcategories, and misclassification is routine. I have seen food accessories filed under laptops. Titles and descriptions are frequently vague, misleading, or simply wrong.\n\nSo DataDriven reads the actual documentation, the PDFs and scans behind each tender, and classifies from the content. I built my own taxonomy of about 180 categories, deliberately down-to-earth, meant to mirror how Romanian companies actually describe their work rather than how a European classification committee does. That is what lets the platform recommend exactly the products requested in a caiet de sarcini instead of shrugging out something generic like \"medical equipment.\"\n\n:::advice{slug=\"read-the-documents-not-the-labels\" category=\"product\" person=\"mihai-negrea\" title=\"Read the source documents, because official classifications lie\"}\nPublic tenders in Romania carry official CPV codes, a taxonomy of roughly 10,000 subcategories, and Mihai found the labels wrong often enough to be dangerous, including food accessories classified under laptops. So DataDriven ignores the metadata and reads the actual tender documentation, OCRing PDFs and scans, then classifies everything against a hand-built taxonomy of about 180 categories that mirrors how companies really describe their work. That is the product's core advantage: competitors who filter on the official codes inherit the errors, and their users miss winnable contracts. Whenever your product sits on top of someone else's data, ask whether the labels are trustworthy or just convenient. Going to the primary source is expensive, which is exactly why doing it becomes a moat.\n:::\n\n## The marketing that finally worked\n\nGoogle Ads was my first channel, and it mostly bought me branding. Conversion was terrible for a structural reason: people searched for construction work, clicked the ad, and landed on a platform full of tenders they were not eligible for. Public procurement has revenue thresholds, employee counts, and certification requirements, and an ad click cannot check any of them.\n\nCold email became the channel that actually worked, and the raw material was public data. SEAP exposes who has participated in tenders, who has won them, phone numbers, and activity domains. That is a pre-qualified lead list: these firms already sell to the state, they just find tenders badly. The market is roughly 20,000 firms, so I use Instantly.ai at about $150 per month, plus Google Workspace accounts at around $5 per address, to run multiple sending addresses across several domains with automated warm-up, keeping deliverability healthy at a deliberately limited throughput.\n\n:::advice{slug=\"cold-email-runs-on-public-data\" category=\"distribution\" person=\"mihai-negrea\" title=\"In a niche B2B market, public data plus cold email beats paid ads\"}\nGoogle Ads sent Mihai visitors who could never buy: public tenders have eligibility requirements around revenue, staff, and certifications that an ad click cannot filter for. Cold email inverted the problem, because Romania's procurement system publishes exactly who participates in tenders, who wins them, and how to reach them. A firm that already bids on public contracts is pre-qualified by its own history, so the public record becomes the lead list. With a market of roughly 20,000 firms, a modest cold email setup beats an ad budget: the targeting information ads cannot access is sitting in the open data. Before paying platforms to guess at your buyer, check whether a public registry, license list, or procurement record already names every one of them.\n:::\n\n## Escaping the cloud bill\n\nWhen the Azure sponsorship expired, reality arrived: 2,500 to 3,000 EUR per month across Azure Search, Cosmos DB, OpenAI, and storage. For a business then doing about 1,500 EUR in MRR, that is not a cost structure, it is a countdown.\n\nThe migration happened in pieces. Azure Search, at about $500 per 16GB instance and two instances for availability, became self-hosted Elasticsearch. The web backend moved to Hetzner. Storage moved to Hetzner's S3-compatible object storage, after I discovered what egress and ingress really cost: my pipeline downloads documentation from SEAP, OCRs it, re-uploads it to storage, and serves it to processing jobs and users, and all that shuttling produced surprises like a 700 EUR ingress line item in a single month. For overflow, when my local infrastructure has downtime, I spin up Azure Batch Low Priority instances for a few hours at a moderate hourly cost. The target architecture is three dedicated Hetzner servers, one each for Elasticsearch, MongoDB, and the web stack, plus temporary cloud instances when needed.\n\nThe move I expected to dread, Cosmos DB to MongoDB, took two to three days. I had Claude build a query translation layer, then ran Cosmos and the new Mongo layer in parallel with automated validation comparing results until they reached parity. Only then did I cut over.\n\n:::advice{slug=\"use-ai-to-derisk-a-database-migration\" category=\"product\" person=\"mihai-negrea\" title=\"An AI translation layer can shrink a database migration from months to days\"}\nMigrating from Cosmos DB to MongoDB is the kind of project that haunts a solo founder, so Mihai turned it into a verification problem instead of a rewrite. He had Claude build a translation layer for his queries, then ran the old Cosmos path and the new Mongo path in parallel, with automated validation comparing outputs until the two systems agreed on everything. Once parity held, the cutover was boring, and the whole thing took two to three days. The pattern generalizes beyond databases: when replacing a load-bearing component, do not aim for a heroic big-bang rewrite, aim for a shim that lets old and new run side by side while machines check the diff. AI assistants are unusually good at generating exactly this kind of mechanical translation code that nobody wants to write by hand.\n:::\n\nThe other half of the cost story is OCR. Azure Document Intelligence became Tesseract plus my own classifiers that validate output quality, running on an RTX 3090 with 24GB of VRAM sitting in my office, chewing through about 1,500 pages per hour. The office has solar panels that cover both the machine and its cooling, so the marginal energy cost is roughly zero, while the same GPU capacity in the cloud would be prohibitive. Last month the entire Azure bill was down to $1,500, and it keeps falling.\n\n:::advice{slug=\"watch-the-egress-not-the-compute\" category=\"business\" person=\"mihai-negrea\" title=\"Cloud egress, not compute, is what eats a data-heavy product's margin\"}\nMihai's Azure bill was not dominated by the compute he had planned for, but by data movement he had never priced: documents flowing from the procurement system into processing, into storage, back out to jobs and users, culminating in a 700 EUR ingress charge in a single month. Hyperscaler pricing makes exactly this traffic expensive while keeping headline compute prices attractive, which is why his migration to Hetzner dedicated servers and S3-compatible storage, plus a self-hosted OCR pipeline on a local GPU, cut a 2,500 to 3,000 EUR monthly burn to a fraction. If your product's core loop is moving files around, model the traffic before choosing infrastructure, because the cloud's convenience premium applies to every gigabyte, every direction, forever. Data-heavy products are precisely the ones where owning the pipes pays.\n:::\n\n## Thirty characters and a running start\n\nThe eligibility mismatch that killed my ad conversion also shaped onboarding. At signup I ask for a minimum of 30 characters describing the tenders you care about. The AI turns that free text into monitoring criteria, so your first login already shows relevant tenders instead of an empty dashboard. From there the system watches behavior, thumbs up and down, what you save, where you navigate, and adjusts the filtering, with changes reviewed so nobody gets surprised.\n\nSome users push back on even 30 characters, they want to \"just see the app.\" But without that input the recommendation quality craters on day one, and day one is when they decide whether to stay. I run two open training sessions every week, offer a short personalized setup meeting for free, and send scheduled emails on days 1, 2, 5, and 10 with practical suggestions instead of forcing a first-time tutorial nobody reads.\n\n:::advice{slug=\"ask-for-thirty-characters-then-do-the-setup\" category=\"product\" person=\"mihai-negrea\" title=\"Ask for thirty characters at signup and do the setup for the user\"}\nDataDriven's onboarding asks one thing: at least 30 characters describing the tenders you care about. AI converts that sentence into monitoring criteria, so the first login shows relevant results instead of an empty dashboard and a configuration wizard. Behavior then tunes the filters automatically, thumbs up and down, saves, navigation. Some users resist even that single question and want to see the app first, but Mihai holds the line, because without the sentence the first session shows noise, and the first session is where churn is decided. The general principle: do not make users configure your product, make them describe their problem in their own words, then configure it for them. One honest question plus AI setup beats a five-step wizard that gets skipped.\n:::\n\n## The numbers\n\nToday DataDriven is at over 300 paying firms and about 27,000 lei in MRR, roughly 5,000 EUR, up from about 1,500 EUR in September 2025. Total revenue last year was around 40,000 EUR. Growth is a steady, unglamorous 2 to 5 percent per month. The company has been profitable on paper for about three months, with minimal salaries for me and my wife, and Romania had a lesson waiting for me there: you cannot repay money you personally lent the company, or pay dividends, until the balance sheet turns positive. It was my own money, and I still could not touch it.\n\nPricing is public, no \"contact us for a quote,\" which in this market is itself a differentiator. The top plan is 290 lei per month and recently gained API access and an MCP server that customers can point Claude or ChatGPT at. The premium tier picked up its first 3 or 4 subscribers within a month of launching, which at this scale is a signal worth respecting.\n\n:::advice{slug=\"publish-prices-in-a-contact-us-market\" category=\"business\" person=\"mihai-negrea\" title=\"Publish your prices in a market that hides behind contact forms\"}\nEvery plan on DataDriven has a public price, topping out at 290 lei per month, in a category where the incumbent reflex is \"contact us for pricing.\" For small firms deciding whether to try a tool, the hidden price is a wall: it signals enterprise sales calls, negotiation, and wasted time, exactly what a two-person catering company will not endure. Transparent pricing lets the product sell itself to the long tail the incumbents ignore, and it filters out nobody who was actually going to pay. Mihai treats it as strategy, not cosmetics: his revenue is built from hundreds of small subscriptions rather than a handful of negotiated contracts, and that model only works when the price is on the page. If your competitors hide their prices, publishing yours is free positioning.\n:::\n\nWhat is next is more of the same compounding: an MCP server that turns tender documentation into clean, navigable markdown for the AI assistants my customers already use, an end-to-end agent that prepares complete tender submissions, and a slow expansion across more than 60 European procurement portals, with titles translated to Romanian for Romanian firms first. All of it still a company of one, which is how I designed it, and how I intend to keep it for as long as it keeps working.","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","published":"2026-07-13","lessons":["Design the company around the life you need, even if that means no cofounders","Read the source documents, because official classifications lie","Price against the manual workflow you replace, not the software you wrote","In a niche B2B market, public data plus cold email beats paid ads","An AI translation layer can shrink a database migration from months to days","Cloud egress, not compute, is what eats a data-heavy product's margin","Ask for thirty characters at signup and do the setup for the user","Publish your prices in a market that hides behind contact forms"]}
{"id":"journey/mihai-ocrskill","type":"journey","url":"https://indie.md/journeys/mihai-ocrskill/","markdown_url":"https://indie.md/journeys/mihai-ocrskill.md","title":"Why I Built a Specialized OCR Engine in the Age of ChatGPT","description":"How OCRskill beats general LLMs on the only two numbers that matter: price per call and error rate","content":"Every time I describe [OCRskill](https://ocrskill.com), someone asks the same question: why build OCR at all when you could just hand the image to ChatGPT? It is a fair question, and the answer is the whole reason the business works.\n\n![OCRskill homepage](/screenshots/ocrskill.png)\n\n## The specialist still beats the generalist\n\nOCRskill turns a document image into clean markdown and pulls structured records out of sources like SEAP, Romania's public procurement portal. For that specific job (reading a document and returning structured data) a purpose-built pipeline is both cheaper to run and, in my own head-to-head testing, more accurate than any general model, including the frontier ones. Reading a scanned form is exactly the bounded, repetitive problem a dedicated OCR engine was built for. A general model is paying, on every call, for a universe of capabilities the task never uses.\n\n:::advice{slug=\"the-boring-niche-is-the-moat\" category=\"mindset\" person=\"mihai-balint\" title=\"The boring, narrow niche is the moat\"}\nOCRskill extracts structured data from procurement documents. It is not glamorous, and that is exactly why it is defensible. A narrow, unsexy, high-volume job is one most founders skip while looking for something more exciting, which leaves the field open to whoever is willing to go deep on it. Mihai out-specializes general LLMs on document extraction precisely because he only does that one thing. Boring problems with real, repeated demand are where a solo builder can build something a frontier lab will never bother to beat.\n:::\n\n## The economics live in the hardware\n\nThe part people miss is where it runs. OCRskill runs on bare metal in an air-conditioned room, not on rented per-call GPUs. That single decision is what lets the unit economics survive at volume. When you rent GPU time by the call, your cost scales linearly with usage forever, and a high-volume API quietly bleeds margin. Owning the machines turns that variable cost into a fixed one you control.\n\n:::advice{slug=\"own-your-compute-for-margin\" category=\"business\" person=\"mihai-balint\" title=\"Own your compute to keep a high-volume API profitable\"}\nOCRskill runs on owned bare-metal hardware instead of rented per-call GPUs, and that is the reason the margins hold at volume. Per-call cloud inference is convenient at the start and brutal at scale: your cost grows in lockstep with every request, forever. For a product whose whole job is to be cheap per call and run constantly, owning the compute converts an unbounded variable cost into a fixed one. If your product's economics depend on doing one expensive operation millions of times, model the bare-metal version before you assume the cloud is cheaper.\n:::\n\n## The schema is the API\n\nOCRskill's API does not ask you to write a prompt. You describe the fields you want (first name, last name, whatever the schema calls for) and the service returns a typed object that matches. Under the hood, PydanticAI runs an agent loop that keeps talking to the model until the output validates against the schema, so the caller gets structured data instead of a paragraph to parse and pray over. The integration experience is the product. A developer does not want a model; they want clean data showing up in the shape they asked for.\n\n:::advice{slug=\"developer-experience-is-the-product\" category=\"product\" person=\"mihai-balint\" title=\"For a developer tool, the integration is the product\"}\nOCRskill's customers are developers, and what they buy is not the OCR model, it is never having to write brittle string parsing again. The API takes a schema and returns a typed object that matches it. For a developer tool, the quality of the integration (how few steps it takes to go from request to usable data) is the actual product, and the underlying technology is just how you deliver it. Spend disproportionate effort on the API surface, the docs, and the first five minutes. That is the part your buyer experiences and the part they tell other developers about.\n:::\n\n## SEO for a product whose users are developers\n\nAt an earlier meetup I sat through an evening of SEO advice aimed at consumer products and took notes the whole time, then went home with one question: does any of this apply when your customers are other developers? Most of it does. Programmatic pages built around each document type and use case rank for the long-tail queries developers actually search. Even FAQ schema, which feels like a consumer trick, earns rich results for the precise technical questions a developer types before they integrate a tool.\n\n:::advice{slug=\"programmatic-pages-for-developer-tools\" category=\"seo\" person=\"mihai-balint\" title=\"Programmatic SEO works for developer tools too\"}\nSEO advice is usually framed around consumer products, which makes technical founders assume it does not apply to an API. It does. Build a page per document type, per use case, per integration, each answering a real question a developer searches before they commit to a tool. Add FAQ schema for the specific technical questions they ask. Developers Google their problems exactly like everyone else, and a tool that ranks for \"extract structured data from a PDF\" gets found at the moment of intent. Do not skip programmatic SEO just because your buyer writes code.\n:::\n\n## When you are cheaper, the price does the selling\n\nThere is one more advantage to the specialist-plus-owned-hardware approach: the price itself becomes a sales argument. When OCRskill is meaningfully cheaper per call than handing the same work to a frontier model, I do not have to win the accuracy debate to win the customer. The math does part of the convincing before anyone reads the docs.\n\n:::advice{slug=\"let-price-do-the-selling\" category=\"business\" person=\"mihai-balint\" title=\"When you are far cheaper than the alternative, price sells itself\"}\nOCRskill is so much cheaper per call than the general-LLM alternative that the price tag does part of the selling on its own. When you have a real structural cost advantage (a specialized model, owned hardware, a narrower problem), put the comparison front and centre instead of hiding it. A prospect who can see that you cost a fraction of the obvious alternative for the same or better result has most of the buying decision made already. A genuine cost advantage is a marketing asset, not just an accounting one.\n:::","author":"Mihai","author_url":"https://indie.md/people/mihai-balint/","published":"2026-06-11","lessons":["A purpose-built model can beat a frontier LLM on a narrow job","Owning your compute is what keeps a high-volume API profitable","For a developer tool, the integration is the product","Programmatic SEO works for developer tools too","When you are far cheaper than the alternative, price sells itself"]}
{"id":"journey/mile-church-software","type":"journey","url":"https://indie.md/journeys/mile-church-software/","markdown_url":"https://indie.md/journeys/mile-church-software.md","title":"Building Church Software Before I Wrote a Line of Code","description":"Why I picked a slow, offline, unglamorous niche, and why distribution is the part I am solving first","content":"I am a software engineer who turned into a sales and marketing generalist, dad of one and co-founder of three, and I have sailed through the Java, WordPress, and Kubernetes seas. The thing I am building now is the least glamorous idea I have ever been excited about: a management app for churches. Congregation management, business operations, the whole administrative stack (schedules, memberships, donations, communications) that churches need and rarely have good software for. I brought it to Indie TM #6 as a concept, not a launched product, and the room did exactly what I hoped it would do. It found the real problem fast, and the real problem is not the code.\n\n## Why a church management app, of all things\n\nChurches are transaction-heavy organizations. They run schedules, track memberships, collect donations, and send communications, week after week, and most of them do it without software built for the job. The niche is real, the demand is steady, and almost nobody is building software specifically for it. That combination is exactly what attracts me. The stack I started with is Laravel and Alpine.js, deliberately boring and productive, because the interesting risk here was never going to be technical.\n\nI want to be honest about the stage: this is a concept in progress. There is no public URL, no launched tool, no customers, no revenue yet. I am writing this from the starting line, not the finish, and that is the whole point of telling the story now.\n\n:::advice{slug=\"choose-the-unglamorous-offline-niche\" category=\"mindset\" person=\"mile-rosu\" title=\"Choose a hard, offline, unglamorous niche on purpose\"}\nMile deliberately picked church management software, an offline, slow-moving, decidedly unglamorous niche, because that is precisely what keeps casual competitors away. Nobody is racing to pitch a church admin tool at a demo day, which leaves the field open to whoever is patient enough to learn the domain. A transaction-heavy organization with no software built for it is a genuine opportunity hiding behind a boring label. The unglamorous niche is not the consolation prize, it is the one a committed builder can own while everyone else chases something shinier.\n:::\n\n## The hard part is distribution, and I am solving it first\n\nThe moment I finished pitching, the room zeroed in on the thing I already suspected: distribution. Churches do not move fast. Buying cycles are long. Decision-makers are not hanging out on Product Hunt, and they are not going to discover my tool from a launch tweet. If I build the whole product first and then go looking for buyers, I will have spent months on something I cannot easily put in front of the people who would pay for it.\n\nSo I am inverting the usual order. Instead of writing the software and then worrying about how to sell it, I am working out the distribution path while the product is still mostly a concept. Who actually decides, how long the decision takes, which channel a church will trust, and what the first reference customer looks like. When the buyer is this slow and this offline, that sequencing is not premature, it is survival.\n\n:::advice{slug=\"distribution-before-code-for-slow-buyers\" category=\"distribution\" person=\"mile-rosu\" title=\"When the buyer is slow and offline, solve distribution before you write code\"}\nFor Mile's church software, the hard problem is not building it, it is reaching buyers who move slowly, decide over long cycles, and are nowhere near Product Hunt. When the buyer is that offline, distribution cannot be an afterthought you bolt on at launch, because there is no quick launch channel waiting for you. Map the path to the buyer (who decides, how long it takes, which channel they trust) while the product is still a concept, and let that path shape what you build. Writing all the code first and discovering you cannot reach anyone is the most expensive order to do it in.\n:::\n\n## One pain point, not the whole suite\n\nMy instinct, like every engineer's, was to imagine the full management suite: scheduling, memberships, donations, communications, all of it, beautifully integrated. The room pushed hard against that. Instead of building the entire stack, find one specific pain a church actually feels and solve that first. Billing? Scheduling? Member communication? Pick one and nail it before you so much as sketch the rest.\n\nThe risk they kept naming was the one I most needed to hear: building something too generic for a niche that needs something very specific. A church does not want a vague all-in-one platform. It wants the one annoying thing fixed. I genuinely believe in finding one pain point before building the full suite, and saying it is easy. Resisting the suite when you can already picture it is the hard discipline.\n\n:::advice{slug=\"narrow-to-one-pain-before-the-suite\" category=\"product\" person=\"mile-rosu\" title=\"Nail one specific pain before you build the full suite\"}\nMile's instinct was the full church management suite (scheduling, memberships, donations, communications) and the room talked him down to one pain point first: billing, or scheduling, or member communication, solved completely. The biggest risk in a specific niche is building something too generic to be worth switching to, a vague all-in-one that fixes nobody's actual Monday. A narrow tool that ends one real misery gives a buyer a concrete reason to say yes, and a wedge you can expand from later. Decide which single pain you will own, finish that, and earn the right to the suite instead of assuming it.\n:::\n\n## Co-design with a friendly church\n\nThe most practical advice was about how to get the product right at all. Find a friendly church, one contact who is willing to work with you, and co-design the product with them as a design partner. Do not build in a vacuum and hope you guessed the workflow correctly. Build alongside someone who lives the problem, who can tell you that the donation flow you imagined does not match how their treasurer actually works, or that the schedule they care about is the one I would never have thought to model.\n\nFor early feedback, the channels are humble and offline, matching the buyer. WhatsApp groups and local community channels, not a polished beta program. And the people to target are the ones who already handle the tech: the church IT contact, or the volunteer who quietly keeps the website and the spreadsheets running. They are the bridge into an organization that would otherwise be very hard for a stranger to enter.\n\n:::advice{slug=\"recruit-a-design-partner-to-co-build\" category=\"product\" person=\"mile-rosu\" title=\"Recruit a friendly customer as a design partner and co-build\"}\nRather than guess at church workflows from the outside, Mile's plan is to recruit one friendly church as a design partner and build the product alongside them. A design partner who lives the problem corrects your wrong assumptions before they become wrong code: the donation flow that does not match how the treasurer works, the schedule you never thought to model. For early feedback, meet the buyer where they already are, in WhatsApp groups and local community channels, and target the people who handle the tech, the church IT contact or the volunteer keeping the spreadsheets alive. Co-building with one real customer beats a polished product designed for an imaginary one.\n:::\n\n## Selling on their clock\n\nThere is a deeper thing about this market that I keep circling back to. Trust in a church does not run on my timeline. I can want a fast sale, but the church is going to decide when the church decides, after the people involved have talked it over, vetted me, and felt comfortable. Pushing against that rhythm only signals that I do not understand the buyer. The right move is to sell on their clock, show up patiently, and let the slow buying cycle be a feature of the relationship rather than a frustration.\n\nThis is where being a generalist helps more than I expected. I am an engineer who can also sell, which in a market this slow is a genuine edge. I can sit with a church contact and talk about their real administrative pain in their language, then go build the fix myself without a handoff, then come back and adjust it after they have used it. The engineer who only codes needs someone else to find and hold the customer. The salesperson who cannot build needs an engineer to make anything real. Being both, in a niche that rewards patience and a personal relationship, is the unfair advantage I am betting on.\n\n:::advice{slug=\"sell-on-the-buyers-timeline-not-yours\" category=\"distribution\" person=\"mile-rosu\" title=\"Sell into slow buyers on their timeline, not yours\"}\nChurches buy slowly, so Mile's sale runs on the church's clock, not his own preference for a fast close. In a slow-moving, relationship-driven market, pushing for speed reads as not understanding the buyer, while patient, in-person presence reads as someone worth working with. The long buying cycle is not a bug to fight, it is the texture of the relationship, and accepting it is part of the qualification. Show up, build the relationship the organization needs, and let the deal close when the buyer is ready instead of when your roadmap wants it to.\n:::\n\n## The generalist bet\n\nI do not have a launch to report, a metric to brag about, or a URL to send you to. What I have is a concept I believe in, a clear-eyed read on why it is hard, and a plan that puts the hardest problem (reaching a slow, offline buyer) before the easy one (writing Laravel). At Indie TM #7 I chimed in on a completely unrelated SEO talk to point out a new Romanian law about inspecting mandatory home insurance policies, the kind of slow, rule-bound detail most people tune out. It is the same instinct that drew me to churches: the unglamorous, rule-bound, slow corners of the world are where a patient generalist who can both build and sell can quietly make something nobody else wanted to bother with.","author":"Mile Rosu","author_url":"https://indie.md/people/mile-rosu/","published":"2026-04-18","lessons":["Pick the hard, offline, unglamorous niche on purpose","When the buyer is slow and offline, solve distribution before you write code","Nail one specific pain before you build the full suite","Recruit a friendly customer as a design partner and co-build","Sell into slow buyers on their timeline, not yours"]}
{"id":"journey/mircea-renzi","type":"journey","url":"https://indie.md/journeys/mircea-renzi/","markdown_url":"https://indie.md/journeys/mircea-renzi.md","title":"Renzi: Selling Romanian Landlords Relief From the Tax Office","description":"How a property-management SaaS leads with the one feature that sells and prices against a fine, not a competitor","content":"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.\n\n![renzi.ro homepage](/screenshots/renzi.png)\n\n## Lead with the painkiller\n\nRenzi 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.\n\n:::advice{slug=\"lead-with-the-painkiller-feature\" category=\"product\" person=\"mircea\" title=\"Lead with the one feature that sells, not the feature list\"}\nRenzi 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.\n:::\n\n## Sell relief from the deadline\n\nLandlords 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.\n\n:::advice{slug=\"sell-relief-from-the-deadline\" category=\"business\" person=\"mircea\" title=\"Sell relief from a specific, escalating, dated risk\"}\nRenzi'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.\n:::\n\n## Fix the bounce before you scale the traffic\n\nOn 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.\n\n:::advice{slug=\"fix-bounce-before-you-scale-traffic\" category=\"seo\" person=\"mircea\" title=\"Fix the bounce rate before you pour traffic into a page\"}\nMircea 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.\n:::\n\n## Run the same playbook again\n\nRenzi 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.\n\n:::advice{slug=\"run-the-same-playbook-again\" category=\"mindset\" person=\"mircea\" title=\"Run the same proven playbook on a new boring market\"}\nRenzi 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.\n:::\n\n## Local regulation is a moat\n\nThere 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.\n\n:::advice{slug=\"local-regulation-is-a-moat\" category=\"business\" person=\"mircea\" title=\"Local regulatory knowledge is a moat competitors lack\"}\nRenzi 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.\n:::","author":"Mircea","author_url":"https://indie.md/people/mircea/","published":"2026-05-30","lessons":["Lead with the one feature that sells, not the feature list","Sell relief from a specific, escalating, dated risk","Fix the bounce rate before you pour traffic into a page","Run the same proven playbook on a new boring market","Local regulatory knowledge is a moat competitors lack"]}
{"id":"journey/mircea-singlefax","type":"journey","url":"https://indie.md/journeys/mircea-singlefax/","markdown_url":"https://indie.md/journeys/mircea-singlefax.md","title":"The $5 Fax: How a Weekend Project Became a Micro-SaaS","description":"Why I built the simplest possible fax service and let SEO do the selling","content":"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.\n\n## The problem nobody wanted to solve\n\nFaxing 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.\n\nThe 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.\n\n## The weekend MVP\n\nI 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.\n\nBy Sunday night, it worked. [singlefax.com](https://singlefax.com) was live.\n\n:::advice{slug=\"product-simplest-version\" category=\"product\" person=\"mircea\" title=\"Build the simplest version first\"}\nMircea 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.\n:::\n\n## No signup, no subscription, no friction\n\nThis 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.\n\nSingleFax 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).\n\n:::advice{slug=\"product-remove-friction\" category=\"product\" person=\"mircea\" title=\"Remove all friction: no signup, no subscription\"}\nEvery 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.\n:::\n\n## Letting SEO do the selling\n\nI 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.\n\nI 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.\n\nThe 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.\n\n:::advice{slug=\"seo-how-to-queries\" category=\"seo\" person=\"mircea\" title=\"SEO for 'how to' queries drives purchase-intent traffic\"}\nMost 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.\n:::\n\n## The $99 tier that customers asked for\n\nI 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?\"\n\nSo 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.\n\n:::advice{slug=\"business-premium-tier\" category=\"business\" person=\"mircea\" title=\"Add a premium tier based on what customers ask for\"}\nDon'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.\n:::\n\n## Agency experience is the real unfair advantage\n\nI 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.\n\nThe 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.\n\n:::advice{slug=\"mindset-agency-superpower\" category=\"mindset\" person=\"mircea\" title=\"Agency experience is a superpower for shipping fast\"}\nIf 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.\n:::\n\n## The boring micro-SaaS that runs itself\n\nSingleFax 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.\n\nIt 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.\n\nAfter 20 years of building complex systems for clients, the simplest product I've ever made is the one that actually works for me.","author":"Mircea","author_url":"https://indie.md/people/mircea/","published":"2026-02-15","lessons":["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"]}
{"id":"journey/petru-oria","type":"journey","url":"https://indie.md/journeys/petru-oria/","markdown_url":"https://indie.md/journeys/petru-oria.md","title":"Oria: Shipping Photorealistic 3D Property Tours With a Big-Domain SEO Mindset","description":"How a Kink.com SEO veteran is launching a Gaussian Splatting product on a zero-authority domain","content":"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.\n\n![realoria.com homepage showing a photorealistic 3D property tour](/screenshots/realoria.png)\n\n## Productizing a rendering technique for one vertical\n\nThe 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.\n\n:::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\"}\nOria 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.\n:::\n\n## Browser delivery so a tour is just a link\n\nI 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.\n\n:::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\"}\nOria'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.\n:::\n\n## Studio service first, self-serve later\n\nIt 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.\n\n:::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\"}\nOria 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.\n:::\n\n## Big-domain patience on a zero-authority site\n\nHere 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.\n\n:::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\"}\nPetru'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.\n:::\n\n## Specialist depth is its own credibility\n\nThe 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.\n\n:::advice{slug=\"specialist-depth-lends-launch-credibility\" category=\"mindset\" person=\"petru-popa\" title=\"Deep specialist expertise lends credibility to a fresh launch\"}\nOria 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.\n:::","author":"Petru","author_url":"https://indie.md/people/petru-popa/","published":"2026-06-04","lessons":["Productize a cutting-edge rendering technique for one concrete vertical","Deliver in the browser so a tour is just a link that opens","Start as a done-for-you studio before you ship a self-serve product","Bring big-domain SEO patience to a brand-new domain","Deep specialist expertise lends credibility to a fresh launch"]}
{"id":"journey/raul-calm-companies","type":"journey","url":"https://indie.md/journeys/raul-calm-companies/","markdown_url":"https://indie.md/journeys/raul-calm-companies.md","title":"Building the Anti-Hustle Job Board: $19/year for Calm Companies","description":"How getting fired for caring about culture led to a curated community of sustainable workplaces","content":"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.\n\n## The realization nobody talks about\n\nWhen 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.\n\nI 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).\n\n:::advice{slug=\"product-manual-curation\" category=\"product\" person=\"raul\" title=\"Manual curation is a moat, not a limitation\"}\nAlgorithms 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.\n:::\n\n## From spreadsheet to side project\n\nI 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?\"\n\nThat 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.\n\nI 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.\n\n:::advice{slug=\"mindset-personal-pain\" category=\"mindset\" person=\"raul\" title=\"Build from personal pain, not market research\"}\nRaul 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.\n:::\n\n## The $19/year decision\n\nEvery SaaS playbook says to charge $49/month minimum. I went the opposite direction: $19 per year. Not $19/month. Nineteen dollars for twelve months.\n\nWhy? 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.\n\nIt 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.\n\n:::advice{slug=\"business-ultra-low-price\" category=\"business\" person=\"raul\" title=\"Price so low it removes all friction\"}\n$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.\n:::\n\n## SEO through genuine helpfulness\n\nI 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).\n\nTwenty-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.\n\n:::advice{slug=\"seo-pain-point-content\" category=\"seo\" person=\"raul\" title=\"SEO blog posts that solve real pain points drive organic growth\"}\nRaul 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.\n:::\n\n## What I'd tell someone starting today\n\nDon'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.\n\nI'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.\n\n:::advice{slug=\"product-start-simple\" category=\"product\" person=\"raul\" title=\"Start with a spreadsheet, not a SaaS\"}\nRaul'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.\n:::","author":"Raul","author_url":"https://indie.md/people/raul/","published":"2026-01-10","lessons":["Manual curation is a moat, not a limitation","Price so low it removes all friction","Build from personal pain, not market research","SEO blog posts that solve real pain points drive organic growth","Start with a spreadsheet, not a SaaS"]}
{"id":"journey/raul-ebaza","type":"journey","url":"https://indie.md/journeys/raul-ebaza/","markdown_url":"https://indie.md/journeys/raul-ebaza.md","title":"ebaza.ro: Bolting a Product Onto Traffic That Already Existed","description":"How a four-year-old parked domain became an insurance funnel, and what the news taught me about SEO","content":"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.\n\n![ebaza.ro homepage](/screenshots/ebaza.png)\n\n## Let the domain age\n\nThere 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.\n\n:::advice{slug=\"let-domains-age-into-authority\" category=\"mindset\" person=\"raul\" title=\"Buy relevant domains early and let their authority age\"}\nRaul 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.\n:::\n\n## Build where the traffic already lives\n\nOnce 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.\n\n:::advice{slug=\"build-the-product-where-traffic-already-lives\" category=\"business\" person=\"raul\" title=\"Build the product where the traffic already lives\"}\nebaza.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.\n:::\n\n## Internal linking is the first lever\n\nThe 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.\n\n:::advice{slug=\"internal-linking-is-the-first-move\" category=\"seo\" person=\"raul\" title=\"Internal linking is the first lever when a page starts ranking\"}\nThe 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.\n:::\n\n## Do not let the CTA lie\n\nWhen 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.\n\n:::advice{slug=\"make-the-cta-tell-the-truth\" category=\"product\" person=\"raul\" title=\"Never let a call to action lie about what it does\"}\nRaul'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.\n:::\n\n## For apps, the marketplace backlink wins\n\nOne 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.\n\n:::advice{slug=\"marketplace-backlinks-beat-content-backlinks\" category=\"seo\" person=\"raul\" title=\"For apps, a marketplace listing beats most content backlinks\"}\nFor 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.\n:::","author":"Raul","author_url":"https://indie.md/people/raul/","published":"2026-05-15","lessons":["Buy relevant domains early and let their authority age","Build the product where the traffic already lives","Internal linking is the first lever when a page starts ranking","Never let a call to action lie about what it does","For apps, a marketplace listing beats most content backlinks"]}
{"id":"journey/vali-doesmyemail","type":"journey","url":"https://indie.md/journeys/vali-doesmyemail/","markdown_url":"https://indie.md/journeys/vali-doesmyemail.md","title":"doesmyemail.work: A Free Tool as the Top of the Funnel","description":"How a thirty-second email diagnosis becomes a lead magnet, and the same move grows a psychology app","content":"[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.\n\n![doesmyemail.work homepage](/screenshots/doesmyemail.png)\n\n## Make the invisible problem legible\n\nEmail 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.\n\n:::advice{slug=\"translate-jargon-into-plain-english\" category=\"product\" person=\"vali\" title=\"Translate an invisible technical problem into plain English\"}\ndoesmyemail.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.\n:::\n\n## The answer screen is everything\n\nA 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.\n\n:::advice{slug=\"obsess-over-the-activation-screen\" category=\"product\" person=\"vali\" title=\"For a free tool, the answer screen is the whole product\"}\nA 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.\n:::\n\n## Never make them switch apps\n\nThe 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.\n\n:::advice{slug=\"remove-the-app-handoff\" category=\"product\" person=\"vali\" title=\"Never make a mobile user switch apps and come back\"}\ndoesmyemail.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.\n:::\n\n## The same move, a different product\n\ndoesmyemail.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.\n\n:::advice{slug=\"one-playbook-many-products\" category=\"distribution\" person=\"vali\" title=\"Reuse one top-of-funnel playbook across products\"}\nValentin 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.\n:::\n\n## Share the real numbers\n\nDr. 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.\n\n:::advice{slug=\"share-the-real-numbers\" category=\"mindset\" person=\"vali\" title=\"Share real numbers; honesty earns trust and feedback\"}\nValentin 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.\n:::","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","published":"2026-06-09","lessons":["Translate an invisible technical problem into plain English","For a free tool, the answer screen is the entire product","Never make a mobile user switch apps and come back","Reuse one top-of-funnel playbook across different products","Share real numbers; honesty earns trust and feedback"]}
{"id":"journey/vlad-sisif-ai","type":"journey","url":"https://indie.md/journeys/vlad-sisif-ai/","markdown_url":"https://indie.md/journeys/vlad-sisif-ai.md","title":"Building sisif.ai: an AI Video API","description":"How I went from 0 customers to growing MRR by abandoning traditional marketing","content":"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.\n\n## Starting from scratch\n\n![sisif.ai homepage](/screenshots/sisif-ai.png)\n\nIn 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.\n\nBy early 2025, I had a working product. Time to get customers, right?\n\n:::advice{slug=\"mindset-stop-polishing\" category=\"mindset\" title=\"Stop polishing code, start finding customers\" person=\"vlad\"}\nAs 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.\n:::\n\n## The zero-customer desert\n\nI 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.\n\nThe result? Zero paying customers. Eight Twitter followers. A perfectly functional product that nobody was using.\n\nThis 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.\n\n:::advice{slug=\"mindset-traditional-marketing-slow\" category=\"mindset\" title=\"Twitter and ProductHunt are slow for unknown founders\" person=\"vlad\"}\nBuilding 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.\n:::\n\n## The n8n breakthrough\n\nThe 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.\n\nI built workflow templates. A TikTok automation workflow. An Instagram Reels generator.\n\n![n8n TikTok workflow template](/screenshots/n8n-tiktok-workflow.png) Each template showed how sisif.ai plugged into a workflow people already wanted to build.\n\n![n8n creator profile with 14,860 views](/screenshots/n8n-creator-profile.png)\n\nThe 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.\n\n:::advice{slug=\"distribution-platform-led-growth\" category=\"distribution\" title=\"Ride existing waves with platform-led growth\" person=\"vlad\"}\nInstead 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.\n:::\n\n## Pricing: the 4x MRR lesson\n\nMy first pricing was simple: $9/month, one plan. It felt \"fair.\" It was also leaving money on the table.\n\n![Sisif.ai MRR growth after pricing change](/screenshots/sisif-revenue.png)\n\nWhen 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.\n\n:::advice{slug=\"business-tiered-pricing\" category=\"business\" title=\"Tiered pricing unlocks hidden revenue\" person=\"vlad\"}\nVlad'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.\n:::\n\n## What I know now\n\nThe 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.\n\n:::advice{slug=\"distribution-beats-product\" category=\"distribution\" title=\"Distribution beats product, every time\" person=\"vlad\"}\nVlad 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.\n:::\n\nThe 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.","author":"Vlad","author_url":"https://indie.md/people/vlad/","published":"2026-01-22","lessons":["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","Stop polishing code, start finding customers"]}
{"id":"journey/zoltan-flowbite","type":"journey","url":"https://indie.md/journeys/zoltan-flowbite/","markdown_url":"https://indie.md/journeys/zoltan-flowbite.md","title":"From a Rejected ThemeForest Template to 70k a Month","description":"How Flowbite grew an open-source component library into a bootstrapped, two-person business","content":"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.\n\n## The rejection that did not stop us\n\nWe 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.\n\n:::advice{slug=\"persist-through-early-rejection\" category=\"mindset\" person=\"zoltan\" title=\"A rejection is a data point, not a verdict\"}\nBergside'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.\n:::\n\n## The Black Friday that pointed at the market\n\nThe 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.\n\nWe 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).\n\n![Flowbite homepage](/screenshots/flowbite.png)\n\n:::advice{slug=\"follow-the-spike-to-the-market\" category=\"product\" person=\"zoltan\" title=\"Let one big spike tell you where the market is\"}\nBergside 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.\n:::\n\n## Open source as the whole funnel\n\n[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.\n\nThe 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.\n\n:::advice{slug=\"open-source-as-distribution\" category=\"distribution\" person=\"zoltan\" title=\"Open source can be your distribution channel\"}\nFlowbite'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.\n:::\n\n:::advice{slug=\"free-core-paid-extras\" category=\"business\" person=\"zoltan\" title=\"Give away the core and sell the extras once\"}\nFlowbite 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.\n:::\n\n## What to build next is a search query\n\nWith 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.\n\n## Premium pricing, and never a discount\n\nThe 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.\n\n## The next bet: the layer AI still leaves missing\n\nThe 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.\n\n![TypeUI homepage](/screenshots/typeui.png)\n\n:::advice{slug=\"bet-on-the-layer-ai-cant-replace\" category=\"mindset\" person=\"zoltan\" title=\"Own the layer AI coding tools still leave missing\"}\nTypeUI 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.\n:::\n\nWe 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.","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","published":"2026-04-10","lessons":["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"]}
{"id":"event/indie-tm-10-timisoara-june-2026","type":"event","url":"https://indie.md/events/indie-tm-10-timisoara-june-2026/","markdown_url":"https://indie.md/events/indie-tm-10-timisoara-june-2026.md","title":"Indie TM #10: Four Builds and the Reach Problem","description":"What we learned at our tenth meetup, this time at DevPlant in Timisoara","content":"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.\n\nIf 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.\n\n## Mihai argues for OCR over a general LLM\n\n![ocrskill.com homepage](/screenshots/ocrskill.png)\n\n[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.\n\nThe 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.\n\n:::advice{slug=\"specialized-model-beats-general-llm\" category=\"product\" title=\"Reach for a purpose-built model before a general LLM\" person=\"mihai-balint\"}\nThe 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.\n:::\n\n:::advice{slug=\"schema-driven-extraction-loop\" category=\"product\" title=\"Let the schema drive extraction, not the prompt\" person=\"mihai-balint\"}\nWhen 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.\n:::\n\n## Doru reports back on Dentor\n\n![dentor.ro homepage](/screenshots/dentor.png)\n\n[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.\n\n:::advice{slug=\"go-in-person-when-cold-email-dies\" category=\"distribution\" title=\"When cold email dies, sell in person\" person=\"doru-bota\"}\nCold 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.\n:::\n\n## Camil pulls any sound out of a video\n\n![soundscrub.video homepage](/screenshots/soundscrub.png)\n\n[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.\n\nThe 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.\n\nHe 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.\n\n:::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\"}\nEvery 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.\n:::\n\n:::advice{slug=\"sell-where-people-describe-the-problem\" category=\"distribution\" title=\"Sell where people already describe the problem\" person=\"camil\"}\nYou 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.\n:::\n\n## Valentin grows Dr. Ursula\n\n![Dr. Ursula on the App Store](/screenshots/drursula.png)\n\n[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.\n\nThe 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.\n\n:::advice{slug=\"short-form-video-for-awareness\" category=\"distribution\" title=\"Use short-form video for awareness, not conversion\" person=\"vali\"}\nShort-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.\n:::\n\n:::advice{slug=\"content-as-gentle-push-notifications\" category=\"product\" title=\"Repackage your content as push notifications that respect attention\" person=\"vali\"}\nA 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.\n:::\n\n## Ten editions in, the same question\n\nTen 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.","location":"DevPlant, Timisoara","presenters":["Mihai","Doru","Camil","Valentin Bora"],"presenter_urls":["https://indie.md/people/mihai-balint/","https://indie.md/people/doru-bota/","https://indie.md/people/camil/","https://indie.md/people/vali/"],"event_link":"https://luma.com/12lw4hvj","published":"2026-06-10"}
{"id":"event/indie-tm-11-timisoara-june-2026","type":"event","url":"https://indie.md/events/indie-tm-11-timisoara-june-2026/","markdown_url":"https://indie.md/events/indie-tm-11-timisoara-june-2026.md","title":"Indie TM #11: An Intent Graph and the Hunt for Users","description":"What we learned at our eleventh meetup, back at DevPlant in Timisoara","content":"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.\n\nIf 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.\n\n## Octavian maps the scene with Intersect\n\n[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.\n\nFrom 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.\n\n:::advice{slug=\"model-intent-as-matchable-cards\" category=\"product\" title=\"Turn fuzzy intent into structured cards a machine can match\" person=\"octavian-chis\"}\nA 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.\n:::\n\nHe 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.\n\n:::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\"}\nOctavian 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.\n:::\n\n:::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\"}\nOctavian 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.\n:::\n\n## Raul soft-launches eBaza\n\n![eBaza homepage](/screenshots/ebaza.png)\n\n[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.\n\n:::advice{slug=\"bundle-the-deadlines-people-dread\" category=\"product\" title=\"Productize the recurring deadlines people already dread\" person=\"raul\"}\neBaza'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.\n:::\n\nBecause 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.\n\n:::advice{slug=\"strip-the-tells-that-look-unfinished\" category=\"product\" title=\"Strip the small visual tells that make a product look unfinished\" person=\"raul\"}\nThe 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.\n:::\n\n## Valentin redesigns doesmyemail.work\n\n![doesmyemail.work homepage](/screenshots/doesmyemail.png)\n\n[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.\n\n:::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\"}\nValentin'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.\n:::\n\n:::advice{slug=\"turn-your-data-into-credibility\" category=\"distribution\" title=\"Turn the data your tool collects into visible credibility\" person=\"vali\"}\nThe 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.\n:::\n\n## Eleven editions in, the cold-start problem\n\nThe 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.","location":"DevPlant, Timisoara","presenters":["Octavian Chiș","Raul","Valentin Bora"],"presenter_urls":["https://indie.md/people/octavian-chis/","https://indie.md/people/raul/","https://indie.md/people/vali/"],"event_link":"https://luma.com/asjlh407","published":"2026-06-25"}
{"id":"event/indie-tm-12-timisoara-july-2026","type":"event","url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","markdown_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026.md","title":"Indie TM #12: One Founder, Ten Thousand Sources, Every Tender in Romania","description":"What we learned at our twelfth meetup, where Mihai Negrea opened the books on DataDriven","content":"The twelfth edition tried something new: instead of three or four pitches, the whole evening went deep on a single company. [Mihai Negrea](/people/mihai-negrea) is the founder, and the only employee, of [DataDriven](https://www.datadriven.ro), a platform that monitors public tenders across Romania. He walked the room through all of it, from the uncle whose SEAP misery seeded the idea, through a launch nobody noticed and a 3,000 EUR monthly cloud bill, to 300 paying firms, a self-hosted OCR pipeline running on a gaming GPU, and an MCP server his customers point Claude at. Very little was off the record, which is what made it one of the densest evenings we have had.\n\nThe arc is worth stating up front, because every section below hangs off it. Twelve years as a developer at Microsoft, two of them in the US on the Bing team. Burnout in 2021, resignation, and a deliberate decision to build the next thing completely alone. A company founded in 2023 with no prior entrepreneurial experience. A first client at 19 lei per month, a long trough of 40 tiny subscriptions, and then a compounding climb: roughly 1,500 EUR in MRR in September 2025, about 27,000 lei (around 5,000 EUR) today, growing 2 to 5 percent a month, profitable for the last three. The full first-person story is in [his journey](/journeys/mihai-datadriven); this recap focuses on what the room dug into.\n\n![datadriven.ro homepage](/screenshots/datadriven.png)\n\n## Twelve years at Microsoft, then a company of one\n\nMihai's founding constraint was not a market thesis, it was recovery. After the 2021 burnout he wanted, in his own words, to eliminate human contact from his working life and to build the application exactly the way he saw fit. No cofounders, no employees, no negotiated roadmap. The room has heard many origin stories by now, but rarely one where the org chart was a mental health decision, stated that plainly.\n\nIt matters because everything else about DataDriven follows from it. A company of one cannot brute-force problems with headcount, so every expensive process eventually gets automated, and every tool choice is audited by the question \"can I maintain this alone at 2 a.m.?\" What looks like an infrastructure story or a marketing story below is really the same story: one person substituting engineering for staff.\n\n## An uncle, six menus, and a p7s file\n\nThe product idea came from watching his uncle, a real estate appraiser working public procurement contracts, spend hours every day inside SEAP, Romania's electronic procurement system. The interface offered six different menus where a tender relevant to his business might be filed, and the filing was inconsistent enough that he had to check all of them. Downloading the documentation meant receiving a .p7s signed file that Windows cannot open, at which point the standard industry workflow was to google \"p7s open\" and install whatever trialware appeared.\n\nMihai did what engineers do for family: wrote a script that watched for new tenders in his uncle's domain, crawled the data in Azure, and emailed whatever appeared. The script grew into a crawler with distinct stages, site discovery, processing, extraction from unstructured text, including sites that only render inside a browser. The ambition grew with it: not one domain but all tenders in Romania, using SEAP's APIs for the public data while capturing the large volumes of information never exposed in the HTML. Today that pipeline monitors more than 10,000 sources daily.\n\n## $100,000 of credits and a quiet launch\n\nThe company got Azure credits worth up to $150,000 through a startup program, and Mihai burned around $100,000 of them on the AI scripts doing the crawling and processing. In February 2023 he launched, put up ads, and waited for the server to crash under the stampede. The stampede never came. The first paying client arrived in April 2023, at 19 lei per month, and for a long stretch the entire business was 40 clients at that price. He spent those years on the crawler and the data, and admits he did not seriously look at marketing until 2025.\n\nThe room noted the pattern, because it recurs across our meetups: the technical founder who builds for two years and markets for two months, then wonders why the curve is flat. What saved DataDriven was that the two years produced something structurally hard to copy, which is not always true of the things we spend two years on.\n\n## Security firms, school sandwiches, and a market of 20,000\n\nTwo customer stories defined the product. A security services firm was finding tenders through a bookmark folder organized by county: every day an employee opened the town hall websites one by one to check for new listings. They became the first serious contract, at 2,000 lei per month, for complete coverage of the sites they cared about. And catering firms serving school meal programs, the old \"cornul și laptele\" that has since become \"masă sănătoasă,\" turned out to be a natural segment: catering is logistically bound to a county, you cannot deliver school sandwiches two counties away, so each firm needs every town hall in its county watched and nothing else.\n\nThe addressable market, firms that actively participate in Romanian public tenders, is roughly 20,000 companies. That number shaped everything about go-to-market: it is far too small for consumer-style growth, and exactly the right size for a lead list assembled from public data.\n\n## Reading the documents nobody reads\n\nThe technical heart of the talk was a decision most competitors have not made: DataDriven reads the actual tender documentation, the PDFs and the scans, rather than trusting titles and descriptions. The official CPV classification has around 10,000 subcategories and is misapplied constantly; Mihai has found food accessories filed under laptops. So he built his own taxonomy of about 180 categories, deliberately down-to-earth, modeled on how Romanian companies actually describe their work, and classifies from document content. That is what allows the platform to say \"this caiet de sarcini asks for exactly these products\" instead of the generic \"medical equipment.\"\n\nReading every document requires industrial OCR, and this is where the solo-founder economics got interesting. The pipeline started on Azure Document Intelligence and now runs on Tesseract plus his own classifiers that validate output quality, executing on an RTX 3090 with 24GB of VRAM in his office at around 1,500 pages per hour. The office has solar panels that cover both the machine and its cooling, so marginal energy cost is effectively zero. The same GPU capacity rented in the cloud would be prohibitive at his volumes.\n\n:::advice{slug=\"ocr-on-a-gaming-gpu\" category=\"business\" person=\"mihai-negrea\" title=\"A gaming GPU on solar power can replace a cloud AI service\"}\nDataDriven needs industrial OCR, every tender document in Romania, scans included, and cloud pricing made that a luxury: Azure Document Intelligence billed per page, and GPU instances rent at rates designed for venture budgets. Mihai's replacement is a single RTX 3090 in his office running Tesseract plus his own quality-validation classifiers, processing about 1,500 pages per hour, powered by the solar panels on the roof, so the marginal cost per page is approximately zero. A consumer GPU is not a data center, but a solo founder's workload rarely needs one; it needs sustained, predictable throughput on a task that tolerates batch processing. When an AI API is your biggest variable cost, price out the unfashionable alternative of one good machine you own, because the payback period is often measured in weeks.\n:::\n\n## Ads for branding, cold email for customers\n\nGoogle Ads was the first channel, and Mihai now files it under branding, not acquisition. The conversion problem was structural: someone searches for construction work, clicks the ad, lands on the platform, and turns out not to meet the eligibility requirements that public tenders impose, revenue thresholds, employee counts, certifications. No ad platform can target on \"eligible to sell to the Romanian state.\" Facebook Ads came up in discussion, strong targeting, easy distribution through groups, deep penetration in Romania, but nobody in the room could vouch for it in B2B, and Mihai remains unconvinced.\n\n:::advice{slug=\"ads-cant-qualify-an-eligibility-market\" category=\"distribution\" person=\"mihai-negrea\" title=\"Paid ads fail when your buyer must meet requirements a click cannot check\"}\nGoogle Ads sent DataDriven a steady stream of visitors who could never become customers: they searched for construction tenders, clicked, and only then discovered that public procurement demands revenue thresholds, staff counts, and certifications they did not have. The ad platform had no way to target eligibility, so the budget bought branding at best and noise at worst. This failure mode generalizes to every market where the buyer must hold a license, a certification, or a track record: regulated industries, government suppliers, professional services. In those markets the qualifying attribute is invisible to ad targeting but often visible in public registries, which is where the marketing budget should go instead. Before spending on ads, ask whether a click can even in principle identify your qualified buyer; if not, the channel is structurally wrong regardless of how well you run it.\n:::\n\nWhat replaced ads is a cold email operation built on SEAP's own public data: who participates in tenders, who wins them, phone numbers, activity domains. A firm's procurement history is the qualification ads could not check. The sending infrastructure runs on Instantly.ai at about $150 per month, plus roughly $5 per address for Google Workspace: multiple addresses across several domains, automatically warmed up by the platform sending, opening, replying to, and clicking messages between its own accounts to train sender reputation. Throughput is limited by design, and open rates hold up. Attribution, he admitted, is a mess: people see the email, later google the product, and arrive through the ad, so no dashboard cleanly says which channel closed them.\n\n:::advice{slug=\"warm-up-a-fleet-of-sending-domains\" category=\"distribution\" person=\"mihai-negrea\" title=\"Cold email at scale is an infrastructure problem before it is a copywriting problem\"}\nMihai's cold email machine is mostly plumbing: multiple sending addresses spread across several domains, each warmed up automatically by Instantly.ai, which has the accounts send, open, reply to, and click each other's messages until mailbox providers trust them. The whole fleet costs about $150 per month plus $5 per Google Workspace address, and throughput stays deliberately limited to protect deliverability. The insight indie hackers miss is the ordering: before subject lines and personalization matter at all, the message has to land in an inbox, and that is determined by sender reputation built over weeks. Blasting from your main domain both fails and burns the domain your business runs on. Treat cold email like infrastructure, warmed domains you can afford to lose, low volume, patience, and only then start optimizing the words.\n:::\n\n## Leaving Azure without burning the boats\n\nWhen the sponsorship credits ran out, the bill landed at 2,500 to 3,000 EUR per month across Azure Search, Cosmos DB, OpenAI, and storage, against roughly 1,500 EUR of MRR at the time. The exit, told in full in [his journey](/journeys/mihai-datadriven), ran piece by piece: Cosmos DB to MongoDB in two or three days using a Claude-built query translation layer running in parallel until automated validation confirmed parity; Azure Search, about $500 per 16GB instance and two instances for availability, to self-hosted Elasticsearch; storage to Hetzner's S3-compatible object store after egress and ingress charges, including one 700 EUR ingress month, revealed what shuttling documentation in and out of Azure really cost. The target is three dedicated Hetzner servers, Elasticsearch, MongoDB, and web, plus temporary cloud instances on demand. Last month's Azure bill: $1,500 and falling.\n\nWhat kept the room's attention was that the exit is not absolutist. When the office infrastructure has downtime, backend tasks overflow to Azure Batch Low Priority instances for a few hours at moderate hourly cost. For network resilience he is considering a Starlink fallback. The GPU sits in an office, not a data center, and he has engineered around that honestly rather than pretending it is one.\n\n:::advice{slug=\"build-a-fallback-before-you-leave-the-cloud\" category=\"business\" person=\"mihai-negrea\" title=\"Leave the cloud with a fallback, not a farewell\"}\nDataDriven's infrastructure now lives on Hetzner dedicated servers and an office GPU, but Mihai kept an escape hatch in the other direction: when his local hardware has downtime, backend tasks overflow to Azure Batch Low Priority instances for a few hours at modest cost, and a Starlink connection is under consideration as network fallback. That design is what makes self-hosting responsible instead of reckless for a company of one. The cloud's real product was never compute, it was the promise that failures are someone else's pager, and when you take that back you must replace it with something: an overflow path, a degraded mode, a documented recovery. Price the fallback into the migration math from the start, because the savings of leaving the cloud are only real if one hardware failure cannot take the product down for a week.\n:::\n\n## The numbers, and the invoice-first economy\n\nMihai shared the finances without hedging. Over 300 paying firms. MRR around 27,000 lei, approximately 5,000 EUR, up from roughly 1,500 EUR in September 2025. About 40,000 EUR in total revenue last year. Growth of 2 to 5 percent per month, which he described as slow and steady rather than apologizing for it. Profitable on paper for about three months, with minimal salaries for himself and his wife, and a Romanian accounting lesson attached: you cannot repay the money you personally lent your own company, or pay dividends, until the balance sheet turns positive. His own cash, locked until the books say otherwise.\n\nPricing is fully public, no \"contact us,\" topping out at 290 lei per month on a plan that recently gained API access and an MCP server. That premium tier collected 3 or 4 subscribers in its first month, which at this scale he counts as a win. The harder conversation was churn, which is high and mostly transactional rather than product-driven: cards without funds, forgotten payments, subscriptions that lapse by accident. Romanian B2B customers want direct contact, want the fiscal invoice, and are wary of automatic card billing, even though the platform only invoices after explicit confirmation and payment. The cost of that culture is operational: reminders, follow-ups, and a certain amount of phone time that a pure SaaS playbook never budgets for.\n\n:::advice{slug=\"invoice-first-is-a-market-reality\" category=\"business\" person=\"mihai-negrea\" title=\"In invoice-first markets, churn is operational, not emotional\"}\nDataDriven's churn is high, and almost none of it means the product failed: cards run out of funds, payments get forgotten, and firms that fully intend to continue simply lapse. Romanian B2B buyers want the fiscal invoice before money moves, prefer direct human contact, and distrust automatic card billing on principle, so the frictionless self-serve subscription that SaaS playbooks assume does not exist here. Mihai's response is to treat payment recovery as a standing operational process, reminders, follow-up calls, re-onboarding, rather than reading every lapse as a verdict on the product. The lesson for anyone selling outside the Silicon Valley payment bubble is to learn how your market actually pays before designing the billing, and to budget real recurring effort for collection. A lapsed card in an invoice-first culture is a to-do item, not a goodbye.\n:::\n\nSuccess-fee pricing came up from the audience, pay a percentage when you win the tender. Mihai has thought about it and keeps refusing, because the money in question is public money, and a platform taking a percentage of public contract values is a position he does not want to occupy, legally or reputationally. What he might build instead is a subscription that includes a number of assisted tenders plus a fixed, non-percentage fee on success, outcome-based but not proportional. No commitment yet, and he was careful to say so.\n\n:::advice{slug=\"refuse-the-percentage-of-public-money\" category=\"business\" person=\"mihai-negrea\" title=\"Some revenue models are traps: know why you refuse a success fee\"}\nCustomers keep offering Mihai a seductive model: charge nothing up front, take a percentage when the tender is won. He refuses, and his reasoning is worth copying. The contract values are public money, and a private platform skimming a percentage of state contracts invites legal scrutiny, reputational damage, and misaligned incentives to push clients toward the biggest tenders rather than the right ones. If he ever prices on outcomes it will be a fixed fee per successful assisted tender bundled into a subscription, never a percentage. The general discipline is to stress-test a revenue model against the source of the money and the behavior it rewards, not just against revenue potential, and to be able to articulate exactly why you turned down the model everyone suggests. A pricing structure is a position you have to defend for years.\n:::\n\n## Onboarding, trainings, and thirty interviews\n\nThe customer development story drew as many questions as the infrastructure. Mihai has scheduled around 30 customer interviews, of which 10 to 12 actually showed up, and his script avoids the question founders love: not \"what features do you want?\" but \"what do you do? walk me through it, how long does it take, who is involved.\" Workflow, time, people. The feature list falls out of that on its own.\n\nOnboarding asks for a minimum of 30 characters describing the tenders you care about; AI converts the text into monitoring criteria so the first login shows relevant tenders immediately. Behavior then tunes the filters, thumbs up and down, saves, navigation patterns, with changes reviewed to avoid surprises. Some users resist, \"let me just see the app,\" and some expect to be phoned and configured, both of which he absorbs: two open training sessions per week, a free short setup meeting for anyone who wants one, and scheduled emails on days 1, 2, 5, and 10 with practical suggestions, instead of a first-time product tour he considers intrusive and skippable. He named the trade-off directly: his time goes into the product and these conversations, and the analytics stack sits mostly unconfigured, a choice, not an oversight.\n\n:::advice{slug=\"interview-the-workflow-not-the-wishlist\" category=\"mindset\" person=\"mihai-negrea\" title=\"Interview customers about their workflow, never their wishlist\"}\nOf the thirty or so customer interviews Mihai scheduled, ten to twelve happened, and in every one he refuses the founder's favorite question. He never asks what features people want; he asks what they do: walk me through the process, how many hours does it take, who on the team touches it. Feature requests are guesses filtered through what the customer imagines software can do, while workflow descriptions are facts, and the product opportunities sit visibly inside them, the daily bookmark-folder patrol, the hours lost to six SEAP menus. The show-up rate is also part of the lesson: schedule three times the interviews you need, because most will evaporate. Treat customer conversations as ethnography rather than requirements gathering, and the roadmap writes itself from the pain you observed instead of the wishlist you collected.\n:::\n\n## MCP packs and an agent that files the paperwork\n\nThe forward-looking section was the most technical of the night. Tender documentation, once OCRed, gets rebuilt into what Mihai serves through MCP, the Model Context Protocol that lets tools plug directly into Claude, ChatGPT, and other assistants: cleaned markdown versions of each document with semantic search and an explicit structure, table of contents, chapter and subchapter levels. He deliberately avoids leaning on embeddings alone; retrieval is guided through the document's own hierarchy first, table of contents navigation plus targeted lookups, an approach currently gaining ground in RAG circles. His customers already use Claude and GPT at work, so the MCP server means their assistant reads the tender the way a careful human would, at lower token cost and higher accuracy than dumping raw PDFs into a context window. Firms that would otherwise have to build OCR and retrieval in-house get it as a plan feature; he called it a no-brainer, and the first premium subscribers seem to agree.\n\n:::advice{slug=\"guide-the-llm-through-the-table-of-contents\" category=\"product\" person=\"mihai-negrea\" title=\"Give an LLM the table of contents before you give it embeddings\"}\nDataDriven serves tender documentation to AI assistants as structured markdown with an explicit table of contents and chapter hierarchy, and retrieval walks that structure first, using semantic search as a supplement rather than the foundation. Mihai distrusts embeddings-only RAG for long official documents, where a naive similarity search returns fragments stripped of the context that gives them legal meaning. Guided navigation, find the right chapter, then read it properly, mirrors how a careful human reads a contract, costs fewer tokens, and fails more predictably. The broader point for anyone building on LLMs is that documents already contain an information architecture, headings, sections, numbering, and throwing it away to chunk-and-embed is destroying signal you paid to OCR. Preserve structure, navigate it explicitly, and reserve embeddings for the queries structure cannot answer.\n:::\n\nBeyond MCP sits the real ambition: an end-to-end agent for tender participation. The user declares the tender they want, their products, certifications, and company data, and the agent prepares the complete submission documentation. And beyond that, a civic idea the room liked: the same dataset exposes patterns worth journalistic attention, firms that always finish second, pairs of companies bidding in tandem at the same authority, correlations across winners. A transparency tool for journalists is on the someday list.\n\n## Copycats, Hermix, and Europe\n\nThe competitive map, as Mihai drew it: Romanian incumbents run 2010-era interfaces on top of the official CPV codes, inheriting every classification error. A European competitor, Hermix, reports 500 to 600 thousand EUR ARR with a team of 14 and a heavy sales focus; a \"join forces\" conversation went nowhere, because their center of gravity is sales and his is technology. And a wave of Romanian copycats now claims \"AI agents for tenders,\" most of them, in his assessment, GPT wrappers with no data underneath. He is calm about all of it: the moat is the coverage, the crawler, the OCR pipeline, the taxonomy, the retrieval stack, and the fact that one person with that stack can move faster than a fourteen-person sales organization.\n\nEurope is already underway: crawling runs on more than 60 procurement portals, state and private, with Germany alone fragmenting into per-land portals plus private ones. The current version translates titles and descriptions into Romanian and targets Romanian firms bidding abroad; full per-country expansion is an architectural project he is pacing deliberately, automation and maintainable scale before flags on the landing page.\n\n:::advice{slug=\"let-copycats-chase-the-wrapper\" category=\"mindset\" person=\"mihai-negrea\" title=\"Copycats clone your pitch, not your pipeline\"}\nWhen Romanian copycats started advertising \"AI agents for public tenders,\" Mihai did not panic, because he could see what they actually shipped: a GPT wrapper over the same misclassified official data everyone can access. What they cannot clone from his landing page is the part that took years, a crawler covering ten thousand sources, an OCR pipeline reading every document, a hand-built taxonomy, and a retrieval stack that makes the data usable. Even the funded European competitor with fourteen people concentrates on sales rather than technology, which is precisely why he declined to join forces. The reassurance for any founder watching lookalikes appear is that marketing copy is the only layer that copies cheaply; if your advantage lives in accumulated data and infrastructure, every copycat validates the market while inheriting none of the moat. Fear the competitor who rebuilds your pipeline, not the one who rewrites your homepage.\n:::\n\n## Twelve editions in\n\nThe single-story format worked because the story had everything our meetups keep circling: the burnout that reset the ambition, the two years of building before anyone paid attention, the customer whose bookmark folder was the real spec, the cloud bill that nearly outran revenue, and the slow, compounding 2 to 5 percent months that never make it into launch threads. What made it land was the completeness. We usually see the demo; this time we saw the cost structure, the churn, the locked dividends, and the reasoning behind every refusal, of cofounders, of success fees, of the funded competitor's merger offer.\n\nIf there was one sentence to take home, it was the shape of the whole thing: find the workflow so painful that someone pays a hundred times your list price to be rid of it, read the source documents everyone else skims, own the expensive parts of your stack, and be patient enough to let three years of compounding do what a launch week cannot. See you at the thirteenth.","location":"DevPlant, Timisoara","presenters":["Mihai Negrea"],"presenter_urls":["https://indie.md/people/mihai-negrea/"],"event_link":"https://luma.com/w2uv4cjf","published":"2026-07-09"}
{"id":"event/indie-tm-5-timisoara-march-2026","type":"event","url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","markdown_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026.md","title":"Indie TM #5: SEO Tactics That Actually Work","description":"What we learned at our fifth meetup at Cowork Timisoara","content":"Eleven people, one conference table, a Thursday evening in Timisoara. The format was simple: each person gets seven minutes to present what they have been working on, then the room roasts it. No polite nods, no \"looks great.\" Tell me what's wrong.\n\n## Raul goes first\n\n![OG Pilot WordPress plugin](/screenshots/ogpilot-wordpress.png)\n\n[Raul](/people/raul) pulled up [OG Pilot](https://ogpilot.com) on the big screen. He walked through the recent changes: a cleaner dashboard, a better template editor, and the thing he was most excited about, a brand-new [WordPress plugin](https://ogpilot.com/wordpress).\n\nOne click to install, and every post on a WordPress site gets a branded Open Graph image automatically. No design skills needed.\n\n![Calm Companies Blog](/screenshots/calmcompanies-blog.png)\n\nThen [Raul](/people/raul) switched tabs to the [Calm Companies Club blog](https://calmcompanies.club/blog) and showed how he was using [NanoBanana](https://nanobanana.com) to generate featured images for his posts. Instead of spending 20 minutes in Canva per article, he described the post topic, NanoBanana generated an image, and he was done. The blog looked polished without the manual effort.\n\nThe conversation shifted to content strategy more broadly. [Raul](/people/raul) had been experimenting with different formats beyond text-only blog posts, and shared what was actually moving the needle.\n\n:::advice{slug=\"video-content-face-in-corner\" category=\"product\" title=\"Record videos with your face in the corner\" person=\"raul\"}\nUse Loom or similar tools to record product walkthroughs with your face visible in the corner. People trust faces. These videos work as blog post embeds, YouTube content, and social proof simultaneously. Pages with face-in-corner walkthroughs consistently convert better than text-only pages.\n:::\n\n:::advice{slug=\"infographics-backlink-strategy\" category=\"seo\" title=\"Create infographics for blog posts and backlinks\" person=\"raul\"}\nInfographics get shared and linked to far more than plain text. Create one per major blog post. Use Canva or Figma to visualize your key data points, then offer an embed code below the image so other bloggers can easily reuse it. This is one of the most reliable passive backlink strategies.\n:::\n\n:::advice{slug=\"content-platform-backlinks\" category=\"distribution\" title=\"Get backlinks from Blogger, Wikipedia, and YouTube\" person=\"raul\"}\nCreate profiles and content on high-authority platforms. Write a Blogger post linking to your product. Add your tool to relevant Wikipedia lists (following their guidelines). Create a YouTube video and include your link in the description. Each of these platforms passes significant domain authority through their backlinks.\n:::\n\n## Vlad showcases sisif.ai and getnanoclaw\n\n![sisif.ai homepage](/screenshots/sisif-ai.png)\n\n[Vlad](/people/vlad) was up next. He pulled up [sisif.ai](https://sisif.ai) and walked through the programmatic SEO pages he had been building: landing pages targeting specific platforms and locations, each with real content rather than just a swapped city name in a template.\n\n:::advice{slug=\"nocode-platform-backlinks\" category=\"distribution\" title=\"Get listed on no-code platforms for free backlinks\" person=\"vlad\"}\nIntegrate with Zapier, Make.com, n8n, and other workflow tools. Each platform gives you a listing page with a backlink to your domain. The integration itself doesn't need to be complex: even a simple webhook trigger is enough to get listed. This is free, permanent, and builds domain authority over time.\n:::\n\n:::advice{slug=\"programmatic-local-pages\" category=\"seo\" title=\"Create localized landing pages at scale\" person=\"vlad\"}\nBuild pages targeting \"[product/service] in [city/country]\" and \"[integration] in [city/country]\" combinations. Automate the page structure but keep the content genuine. Each page should have real, location-specific information, not just a city name swapped in a template. This is how you capture long-tail local search traffic with almost no competition.\n:::\n\n### getnanoclaw gets roasted\n\n![getnanoclaw homepage](/screenshots/getnanoclaw.png)\n\nFor his second product, [Vlad](/people/vlad) showed [getnanoclaw](https://getnanoclaw.com/), a personal AI assistant that runs on WhatsApp. The pitch: deploy a Claude-powered chatbot in under two minutes, no servers, no terminal. The room had questions. Lots of questions. Who is this for? Who are the actual users? Small businesses? But it requires an Anthropic API key, which is not something a small business owner knows how to get. The interface felt too programmatic, too developer-friendly for the audience it was trying to reach. If the target is non-technical people, the onboarding needs to meet them where they are, not where a developer would be comfortable.\n\nIt was the kind of honest feedback that only comes when people aren't being polite.\n\n## Mircea demos Blahphone\n\n![Blahphone homepage](/screenshots/blahphone.png)\n\n[Mircea](/people/mircea) was next. He pulled up [Blahphone](https://blahphone.com), his browser-based international calling service, and gave the room a live demo. The product looked solid, and the programmatic SEO setup impressed the group: he had built out pages targeting specific calling routes and countries, each ranking well. The roasting focused on the same question that kept coming up all evening: who is actually using this? The group pushed [Mircea](/people/mircea) to get sharper on his user persona and figure out where those people already hang out.\n\n![SingleFax homepage](/screenshots/singlefax.png)\n\nBeyond Blahphone, [Mircea](/people/mircea) had been methodically building backlinks for both [Blahphone](https://blahphone.com) and [SingleFax](https://singlefax.com). His approach was almost comically systematic: list every high-authority platform that lets you create a profile with a link back to your site, then work through them one by one.\n\n:::advice{slug=\"app-store-backlinks\" category=\"distribution\" title=\"Publish to app stores for authority backlinks\" person=\"mircea\"}\nEven if your product is primarily web-based, publish a simple mobile wrapper to the App Store and Google Play. The backlinks from apple.com and google.com are extremely high authority. A basic WebView wrapper with push notifications takes a weekend to build and gives you two of the strongest backlinks on the internet.\n:::\n\nSomeone pushed back on the app store wrapper idea, asking whether Google penalizes thin app listings. [Mircea](/people/mircea)'s answer: he had been doing it for over a year with no issues, and the domain authority lift was measurable.\n\n:::advice{slug=\"internal-linking-seo\" category=\"seo\" title=\"Add internal links between every page\" person=\"mircea\"}\nEvery page on your site should link to at least 2-3 other relevant pages. Internal linking helps Google discover your content, distributes page authority, and keeps visitors engaged longer. Audit your site for orphan pages (pages with zero internal links pointing to them) and fix them. Use descriptive anchor text, not \"click here.\"\n:::\n\n## Mihai shows OCRskill\n\n![OCRskill homepage](/screenshots/ocrskill.png)\n\n[Mihai](/people/mihai-balint) was up next with [OCRskill](https://ocrskill.com), his OCR API that extracts structured data from images in under 500ms. The room was impressed. The product was sharp, the demo clean, and the questions quickly turned technical: what models are you using, how do you handle edge cases, what's the latency under load? [Mihai](/people/mihai-balint) had clearly been paying attention to the SEO discussion all evening. He took notes on every piece of advice, then started asking follow-up questions: how to apply programmatic pages to an API product, whether FAQ schema makes sense for developer tools, how to structure trust pages when your customers are other developers.\n\n## Petru brings the big-domain perspective\n\n[Petru](/people/petru-popa) was next, and he brought a different kind of experience to the table. He works on [Kink.com](https://www.kink.com), one of the oldest domains on the web. The room was immediately curious about the SEO behind a site with that kind of domain age and authority. [Petru](/people/petru-popa) had the most SEO advice of the evening, walking through the structural work that compounds over time.\n\n:::advice{slug=\"faq-schema-markup\" category=\"seo\" title=\"Add FAQ sections with FAQPage schema to every page\" person=\"petru-popa\"}\nWrite real, human-authored FAQ sections for every page on your site. Use FAQPage structured data so Google can surface your answers as rich results. The key is writing questions your users actually ask, not keyword-stuffed filler. Check Google Search Console for queries people already use to find you, then answer those directly on the page.\n:::\n\n:::advice{slug=\"trust-pages-careers-about\" category=\"seo\" title=\"Create Careers, About Us, and team pages to build trust\" person=\"petru-popa\"}\nGoogle evaluates trust signals when ranking your site. A Careers page, an About Us page, Privacy Policy, Terms of Service, and content showcasing team building experiences all signal that there is a real organization behind the site. Include team photos, company culture, and hiring information even if you are not actively recruiting. These pages build trust with both search engines and visitors, and attract backlinks from directories that list companies with public hiring or legal pages.\n:::\n\n:::advice{slug=\"publish-one-article-per-day\" category=\"seo\" title=\"Publish one article per day instead of batching\" person=\"petru-popa\"}\nPublishing one article per day is far more effective than dropping a batch of articles all at once. Search engines treat a sudden burst of content as suspicious, potentially flagging it as spam. A steady daily cadence signals consistent, genuine content production. It also gives each article time to get indexed and start ranking before the next one competes for attention.\n:::\n\n## Cristian on building slow and intentional\n\n![Cozmoslabs homepage](/screenshots/cozmoslabs.png)\n\n[Cristian](/people/cristian-antohe) closed the presentations. He brought [Cozmoslabs](https://www.cozmoslabs.com) and a portfolio of WordPress plugins: [TranslatePress](https://translatepress.com) for multilingual sites, [Profile Builder](https://www.cozmoslabs.com/wordpress-profile-builder/)\n\n![TranslatePress](/screenshots/translatepress.png)\n\nfor custom user registration, and [Paid Member Subscriptions](https://www.cozmoslabs.com/wordpress-paid-member-subscriptions/) for membership sites. Over a decade of shipping, and a story that started long before any product existed.\n\nIn the early days, [Cristian](/people/cristian-antohe) was writing programming tutorials on the [Cozmoslabs blog](https://www.cozmoslabs.com/blog/). No product to sell, no grand strategy. Just useful content. That content became the foundation for their SEO, and it still drives traffic today. The products came later, born from what their clients kept asking for. Every plugin Cozmoslabs builds starts with a real problem that clients have, because they know it will take about a year to execute properly. So they are picky. They do not chase trends or build features on speculation.\n\nThe [full origin story](https://leveldo.com/finding-success-with-wordpress-interview-with-adrian-spiac-co-founder-of-cozmoslabs/) is worth reading: it is a case study in patience.\n\n:::advice{slug=\"translate-pages-slugs\" category=\"seo\" title=\"Translate every page including the URL slugs\" person=\"cristian-antohe\"}\nFull translation means translating the content AND the URL slugs. A page at /ro/servicii/ ranks better in Romanian search than /ro/services/. Use hreflang tags to tell Google which language version to show each user. Start with your highest-traffic pages and expand from there.\n:::\n\n:::advice{slug=\"content-before-product\" category=\"seo\" title=\"Write useful content before you have a product to sell\" person=\"cristian-antohe\"}\nCozmoslabs started by publishing programming tutorials with no product behind them. That content built domain authority, attracted an audience, and created the SEO foundation that still drives traffic years later. If you start writing only after you have something to sell, you are already behind. The best time to build your content foundation is before you need it.\n:::\n\n:::advice{slug=\"high-quality-low-volume-content\" category=\"seo\" title=\"Publish high-quality articles at low volume\" person=\"cristian-antohe\"}\nCozmoslabs still publishes articles, but they prioritize quality over quantity. Every piece is well-researched, genuinely useful, and built to last. High-quality, low-volume content builds trust with both readers and search engines. A single article that answers a real question thoroughly will outperform ten shallow posts competing for the same keywords.\n:::\n\n:::advice{slug=\"build-from-client-problems\" category=\"product\" title=\"Build products from real client problems, not speculation\" person=\"cristian-antohe\"}\nEvery Cozmoslabs product started with a problem their clients kept running into. They do not build on speculation or trends. When you know a product will take a year to execute, you need to be certain the problem is real. Spot the pattern in client requests, validate that the pain is genuine, and only then commit to building. Being picky about what you build is a feature, not a limitation.\n:::\n\n## Bogdan wraps up with Event Newsletter\n\n![Event Newsletter homepage](/screenshots/event-newsletter.png)\n\n[Bogdan](/people/bogdan-moldovean) closed the evening with [Event Newsletter](https://event-newsletter.com), his personalized weekly digest of local events. The room liked the retro design, and the niche felt right: event discovery is a real problem, and nobody is solving it well for smaller cities. [Bogdan](/people/bogdan-moldovean) had been the most active questioner all night, asking about every SEO tactic that came up. He is not doing any SEO yet but wants to start, and the group gave him a crash course throughout the evening. The feedback also touched on the AI models he is using to curate and summarize events for the newsletter, with suggestions on which ones might work better for his use case.\n\nThe conversation kept going past 9 PM. Someone suggested the next meetup should focus on pricing strategies, someone else wanted to talk about cold outreach. The usual problem: too many good topics, not enough evenings.","location":"Cowork Timisoara - The Office, Timisoara","presenters":["Vlad","Mircea","Raul","Mihai","Petru","Cristian","Bogdan"],"presenter_urls":["https://indie.md/people/vlad/","https://indie.md/people/mircea/","https://indie.md/people/raul/","https://indie.md/people/mihai-balint/","https://indie.md/people/petru-popa/","https://indie.md/people/cristian-antohe/","https://indie.md/people/bogdan-moldovean/"],"event_link":"https://lu.ma/lhs04mq7?tk=nj5lIZ","published":"2026-03-19"}
{"id":"event/indie-tm-6-timisoara-april-2026","type":"event","url":"https://indie.md/events/indie-tm-6-timisoara-april-2026/","markdown_url":"https://indie.md/events/indie-tm-6-timisoara-april-2026.md","title":"Indie TM #6: From ThemeForest Rejects to 70k/Month","description":"What we learned at our sixth meetup at Cowork Timisoara","content":"Ten people, a Friday evening in Timisoara, and a guest who flew in with a story worth hearing. [Zoltan](/people/zoltan) took the big screen for the main slot, walking through how [Bergside](https://bergside.com) went from a rejected ThemeForest template to 70k/month. [Vlad](/people/vlad) and [Mile](/people/mile-rosu) followed with lightning demos, and the room did what it does best: roast everything.\n\n## Zoltan tells the Bergside story\n\n![Bergside homepage](/screenshots/bergside.png)\n\n[Zoltan](/people/zoltan) started from the beginning. He and his co-founder Robert came from outsourcing, building things for other people. They pivoted to templates, submitted their first one to ThemeForest, and got rejected. They kept going. Then came a Black Friday that changed everything: a Tailwind and Figma design system kit sold 3,000 euros in a single night.\n\nThat spike proved the market was real. They doubled down on Tailwind components, started building in public, and launched [Flowbite](https://flowbite.com).\n\n![Flowbite homepage](/screenshots/flowbite.png)\n\n[Flowbite](https://flowbite.com) is now an open-source UI component library with over 30 million npm downloads and 9,100+ GitHub stars. The library ships 600+ components, sections, and pages built with Tailwind CSS utility classes and designed in Figma. Two people, bootstrapped, no outside money. The business model: the open-source library is free, but pro components, full website sections, and framework integrations (React, Vue, Svelte) are paid. No subscriptions, just one-time purchases. That model gets them to 70k/month.\n\n### How they decide what to build\n\nThe room asked the obvious question: with 600+ components, how do you decide what to build next? [Zoltan](/people/zoltan)'s answer was surprisingly simple. They use [Semrush](https://semrush.com) to check what people are actually searching for. When they saw demand for \"avatar tailwind\" or \"datepicker tailwind,\" they built those components. Feature decisions driven by search volume, not guesswork.\n\n:::advice{slug=\"keyword-demand-before-features\" category=\"product\" title=\"Use search demand to decide what features to build\" person=\"zoltan\"}\nBefore building a new feature or component, check what people are actually searching for. Use tools like Semrush to find keywords with real demand. When Flowbite saw search volume for \"avatar tailwind\" and \"datepicker tailwind,\" they built those components and captured the traffic. Let search data guide your roadmap instead of guessing what users want.\n:::\n\n### Influencers over ads\n\n[Zoltan](/people/zoltan) was blunt about paid advertising: skip it. If your product has any traction at all, spend on influencers instead. Put them on the hero section of your site. Pay 1,000 to 2,000 euros per influencer, and prefer American or Australian accents for credibility in the English-speaking developer market. Once one influencer posts about your product, others follow.\n\n:::advice{slug=\"influencer-over-ads\" category=\"distribution\" title=\"Spend on influencers instead of ads\" person=\"zoltan\"}\nIf your product has any traction, skip paid ads and invest in influencer marketing instead. Pay 1,000 to 2,000 euros per influencer, feature them on your homepage hero section, and prefer American or Australian creators for the English-speaking market. One influencer creates social proof that attracts others. The ROI on a single well-placed creator video outperforms most ad campaigns for developer tools.\n:::\n\n### Never discount your prices\n\nThis was the most heated topic of the evening. [Zoltan](/people/zoltan) was firm: never compete on price, never offer discounts. Cheap pricing scares away serious clients. If you price like an Indian outsourcing shop, you attract clients who treat you like one. And once you start discounting, people will always wait for the next sale instead of buying now.\n\nThe room pushed back. What about Black Friday? [Zoltan](/people/zoltan) acknowledged they experimented with it early on, but the long-term lesson was clear: in the digital products space, maintaining premium pricing builds a better business.\n\n:::advice{slug=\"never-discount-prices\" category=\"business\" title=\"Never discount your prices\" person=\"zoltan\"}\nResist the urge to compete on price or offer discounts. Low prices scare away serious clients who associate cost with quality. Once you start discounting, customers learn to wait for sales instead of buying at full price. In the digital products space, maintaining premium pricing attracts better customers and builds a more sustainable business. Flowbite never discounts, and it has not hurt growth.\n:::\n\n### Distribution that actually works\n\n[Zoltan](/people/zoltan) spent the longest on distribution, walking through every channel that has moved the needle for [Flowbite](https://flowbite.com).\n\nProduct Hunt worked for initial visibility. Reddit worked, but only with story-driven posts. The key insight: on Reddit, never sell anything. Share the story of building the thing. On X/Twitter, talking about MRR numbers works. On Reddit, it gets you downvoted.\n\n:::advice{slug=\"story-driven-reddit\" category=\"distribution\" title=\"Post stories on Reddit, not sales pitches\" person=\"zoltan\"}\nReddit rewards authenticity and punishes promotion. When Flowbite launched a new datepicker component, they posted the story of building it, not a sales pitch. Share the journey, the technical decisions, the problems you solved. On X/Twitter, sharing MRR numbers gets engagement. On Reddit, the same post gets buried. Each platform has its own language. Learn to speak it.\n:::\n\nFor SEO content, [Zoltan](/people/zoltan) uses a canonical link strategy: write an article on [Medium](https://medium.com) or [dev.to](https://dev.to), then set the canonical URL pointing back to your own site. You get the platform's audience and distribution while keeping the SEO juice on your domain.\n\n:::advice{slug=\"canonical-links-medium-devto\" category=\"seo\" title=\"Write on Medium and dev.to with canonical links to your site\" person=\"zoltan\"}\nPublish articles on Medium and dev.to to reach their built-in audiences, but always set the canonical URL to point back to your own blog. This way you get distribution from the platform while search engines credit your domain as the original source. The content should genuinely help the reader, not be a thinly disguised ad. Spammy content gets flagged on both platforms.\n:::\n\nBeyond content, [Zoltan](/people/zoltan) emphasized that people are surprisingly open to partnerships. Reach out to other builders for backlink exchanges, guest articles, and cross-promotion. Discord communities, [src.club](https://src.club), and niche directories are all viable channels. The common thread: every piece of content should answer one question: how does this help the person reading it?\n\n### TypeUI: the new bet\n\n![TypeUI homepage](/screenshots/typeui.png)\n\nThen [Zoltan](/people/zoltan) switched to [TypeUI](https://typeui.sh), the project he is most excited about right now. TypeUI is a CLI coding tool that applies a consistent, beautiful design layer on top of AI-generated code. You run it via npx, it generates components, handles formatting, licensing, and accessibility rules. Think of it as a design system that works natively with AI coding workflows (Cursor, Claude, Copilot) instead of fighting against them.\n\n![TypeUI design skill files](/screenshots/typeui-design-skills.png)\n\nThe core concept is \"design skills\": curated style files that define a visual language. Paper, Bento, Neobrutalism, Bold, Clean, and seven others. Each skill is a complete design system you can pull into your project with one command. The CLI downloads the skill file, applies it to your AI-generated components, and the output looks like a designer touched it.\n\n![TypeUI Paper design skill](/screenshots/typeui-paper.png)\n\n![TypeUI Neobrutalism design skill](/screenshots/typeui-neobrutalism.png)\n\nThe product is early, building in public, pre-revenue. Open source under MIT license, with monetization being explored through one-time payments, subscriptions, and sponsorships.\n\nThe room discussed the tension between deterministic and AI-generated components. TypeUI is betting that as more code gets generated by AI, the need for a consistent design layer on top becomes critical. The question is whether developers will pay for that layer or expect it to be free.\n\n### Analytics before you scale\n\nThe conversation shifted to measurement. [Zoltan](/people/zoltan) stressed that you should never scale traffic without analytics in place first. You need to see what users actually do on your site before you pour effort into bringing more of them.\n\n:::advice{slug=\"analytics-before-scaling\" category=\"product\" title=\"Set up analytics before you start scaling traffic\" person=\"zoltan\"}\nDo not invest in scaling traffic until you have analytics running. Use Microsoft Clarity (free) or Hotjar for heatmaps, rage click detection, and session replays. Watch your bounce rate and average time on site (one minute is a reasonable benchmark to start). If users leave immediately, more traffic just means more people leaving. Fix the experience first, then scale.\n:::\n\nOne more thing [Zoltan](/people/zoltan) was clear about: cold outreach does not work. He tried it. The problem is that cold messages need a hook that genuinely helps the recipient, and most people cannot write one. If your outreach does not answer \"what is in it for them\" in the first sentence, it goes straight to the trash.\n\n## Vlad demos Openable.dev\n\n![Openable.dev homepage](/screenshots/openable.png)\n\n[Vlad](/people/vlad) was up next with a lightning showcase of [Openable.dev](https://openable.dev), an open-source tool for deploying AI-generated apps without hassle. The idea: connect a GitHub repo, and Openable exports it to GitHub Pages or similar hosting. No terminal commands, no server configuration. Built for non-technical users who just need a shareable link to their project.\n\nThe demo was live, which meant the rough edges were on full display. The room spotted rendering issues, some bundling problems, and the branding was not finalized. Classic work-in-progress energy.\n\nThe feedback was constructive. Someone suggested Cloudflare Tunnel as a distribution channel. Others pushed on the target audience: if it is for non-technical founders, the onboarding needs to be radically simpler. Cursor integration came up as an interesting angle, with auto-commit and auto-push as a potential workflow that would make deployment invisible.\n\n## Mile pitches the church management app\n\n[Mile](/people/mile-rosu) closed the evening with a concept that caught the room off guard: a management app for churches. Congregation management, business operations, the full administrative stack that churches need but rarely have good software for.\n\nThe niche is real. Churches are transaction-heavy organizations with schedules, memberships, donations, and communications to manage. But the room immediately zeroed in on the hard part: distribution. Churches do not move fast. Buying cycles are long. Decision-makers are not hanging out on Product Hunt.\n\nThe tech stack is Laravel and Alpine.js, and the product is early enough that it is still a concept rather than a launched tool. The group pushed [Mile](/people/mile-rosu) on focus: instead of building a full management suite, find one specific pain point that churches have and solve that first. Billing? Scheduling? Member communication? Pick one and nail it.\n\nThe distribution advice was practical: find a friendly church contact and co-design the product with them. Use WhatsApp groups and local community channels for early feedback. Target church IT contacts or volunteers who already handle the tech side. The biggest risk is building something too generic for a niche that needs something very specific.\n\n## The conversation keeps going\n\nThe evening ran past nine. [Zoltan](/people/zoltan)'s story sparked a longer discussion about pricing strategies for digital products, with [Cristian](/people/cristian-antohe) sharing how Cozmoslabs handles annual licensing for WordPress plugins. The contrast was instructive: Flowbite makes 70k/month without recurring revenue, while the WordPress ecosystem lives on yearly renewals. Different markets, different models, both working.\n\nSomeone suggested the next meetup should go deeper on pricing. Someone else wanted to talk about building for enterprise versus indie markets. The usual problem: too many good topics, too few Friday evenings.","location":"Cowork Timisoara - The Office, Timisoara","presenters":["Zoltan Szogyenyi","Vlad","Mile Rosu"],"presenter_urls":["https://indie.md/people/zoltan/","https://indie.md/people/vlad/","https://indie.md/people/mile-rosu/"],"event_link":"https://luma.com/f4sq2y3y?tk=6ThRTK","published":"2026-04-03"}
{"id":"event/indie-tm-7-timisoara-april-2026","type":"event","url":"https://indie.md/events/indie-tm-7-timisoara-april-2026/","markdown_url":"https://indie.md/events/indie-tm-7-timisoara-april-2026.md","title":"Indie TM #7: News as a Traffic Locomotive","description":"What we learned at our seventh meetup at Cowork Timisoara","content":"A smaller Wednesday evening than usual, but a denser one. Four presenters: one SEO story with a surprise news-cycle twist, one early-stage AI hiring product looking for its wedge, one security founder pulling the room into a pricing debate, and one small-but-opinionated developer tool that the room quickly started projecting new use cases onto. [Raul](/people/raul) opened with a traffic spike he could not explain at first. [Flavius](/people/flavius) followed with a pitch that turned into a conversation about what \"structured\" even means in a hiring interview. [Fineas](/people/fineas-silaghi) brought the kind of question that only people shipping to enterprise customers ever get to ask out loud. [Vlad](/people/vlad) closed with a personal side project that doubled as an argument for building your own tools.\n\n![Attendees around the conference table at Cowork Timisoara listening to a presentation during Indie TM #7](/images/events/indie-tm-7-room.jpeg)\n\n## Raul unpacks ebaza.ro\n\n![ebaza.ro homepage](/screenshots/ebaza.png)\n\n[Raul](/people/raul) pulled up [ebaza.ro](https://ebaza.ro), a Romanian domain in the home insurance space. He bought it, along with a few other `.ro` domains, about four years ago and sat on them. Nothing happened for a long time. Then over the last few months the Domain Rating climbed, organic traffic followed, and he started seeing conversions.\n\nThe first thing he did once traffic arrived was internal linking: rewiring related pages so they point at each other with descriptive anchors. That alone moved the needle. But there was something else going on.\n\n### The mystery spike\n\nA recent week had an unusually large bump. [Raul](/people/raul) checked [Datafast](https://datafast.com) to confirm the traffic came from Google, not from a single referrer or a social post. Then [Mile](/people/mile-rosu) chimed in from across the room: a new law was about to take effect requiring some institution to inspect mandatory home insurance policies (PAD). The news had been making the rounds in Romanian outlets that same week.\n\nThe pieces fit. [Raul](/people/raul) opened [Google Trends](https://trends.google.com) and confirmed the spike: search volume for the relevant PAD terms had jumped in lockstep with the news cycle. His pages happened to be the ones answering the question the news stories were raising. Free traffic, delivered by the news.\n\n:::advice{slug=\"news-driven-seo-spikes\" category=\"seo\" title=\"Ride news cycles for organic traffic spikes\" person=\"raul\"}\nWhen a news story drives sudden search demand for a topic, pages that genuinely answer the underlying question capture a disproportionate share of the traffic. If you see an unexplained spike in analytics, open Google Trends and look for a matching jump in search volume on related terms, then confirm with recent news. Once you know a news cycle is driving the traffic, publish more supporting content while the cycle is still hot. News stories are locomotives: the trick is having something already on the tracks when one arrives.\n:::\n\n### The real SEO metric nobody measures\n\nThe conversation turned to rankings. [Raul](/people/raul) was skeptical of the usual SEO dashboards. The metric he actually cares about is simple: does the user click your result and find what they came for, or do they bounce back to Google and click the next one? The second behavior (\"pogo-sticking\") is, in his read, the strongest negative signal in modern search. The first is what you are actually optimizing for.\n\n:::advice{slug=\"dont-let-users-return-to-search\" category=\"seo\" title=\"Optimize for users not returning to search\" person=\"raul\"}\nThe most important SEO signal in modern search is whether a user returns to the results page after clicking your link. If they do, Google reads it as \"this page did not answer the query\" and your ranking erodes. If they do not, it reads as \"problem solved\" and your ranking compounds. This reframes SEO from \"rank for keywords\" to \"fully resolve the intent behind each query.\" Audit your top pages: does the reader actually get what they came for above the fold, or do they have to scroll through filler and ads? Fix the ones that force users back to search.\n:::\n\n### References and side notes\n\n[Raul](/people/raul) mentioned he increasingly uses [ChatGPT](https://chatgpt.com) and [Perplexity](https://perplexity.ai) as research tools when writing content, both to map out the shape of a query and to find the references he should cite. The room also agreed that for apps, a backlink from a relevant marketplace listing is worth more than most content-based backlink tactics, since it comes from a domain whose whole purpose is to send qualified traffic to tools like yours.\n\n## Flavius pitches Pace\n\n![Pace hiring tool homepage](/screenshots/pace.gif)\n\n[Flavius](/people/flavius) was up next with a background that stitched several disciplines together: computer science and psychology, then neuroscience and organizational behavior, then 5+ years hiring for teams across Europe. The through-line was a steadily growing frustration with how interviews actually get run. Earlier in 2026 he turned it into [Human Nature](https://humannature.earth), a company building ethical AI infrastructure for organizations. Its first product is [Pace](https://hirewithpace.com), an AI-native hiring platform that encodes a specific interviewing framework into the workflow instead of leaving every hiring manager to reinvent it.\n\nHis thesis sat on one uncomfortable observation. Structured interviews (same questions, same rubric, same scoring across every candidate) are the single most validated predictor of on-the-job performance in the hiring research literature. Almost nobody actually runs them. Not the agencies, not the startups, not the big tech companies when you scratch the surface. [Flavius](/people/flavius) admitted that even when he knew what a structured interview should look like, he struggled to run one consistently under time pressure.\n\n:::advice{slug=\"product-build-for-known-gap\" category=\"product\" title=\"Build for a practice everyone agrees is right but nobody does\" person=\"flavius\"}\nThe richest product territory is the gap between \"known best practice\" and \"what people actually do.\" Structured interviews are universally accepted as the strongest predictor of job performance, and almost nobody runs them. Double-entry bookkeeping, security key logins, automated tests, pre-commit hooks: same pattern. Look for a practice that experts in your industry agree is correct and operators skip because it is inconvenient, then build the tool that makes the right thing the easy thing. The onboarding pitch writes itself.\n:::\n\n### The framework Pace encodes\n\n[Flavius](/people/flavius) walked through the framework [Pace](https://hirewithpace.com) is built around. It is a two-part model borrowed from organizational psychology: every hire is scored on interview performance and on job fit, as separate axes. A candidate who aces the technical questions but bombs the fit signal is a different decision from a candidate who does the opposite, and collapsing them into one score is where most hiring processes quietly fail.\n\nInside each axis, the emphasis is on problem-solving over domain-specific knowledge. [Flavius](/people/flavius) was explicit: a good candidate rarely knows the exact stack on day one, and the candidates who memorize trivia tend to underperform in real work. He also showed the two questions he reaches for every time, which he argues pull more signal per minute than any generic prompt:\n\n- \"What does a typical day look like in this role?\" (to the hiring manager, before the interview is even scheduled; it forces the role definition to become concrete)\n- \"What separates a great hire from an average one?\" (to the hiring manager; the answer usually rewrites the scorecard)\n\n:::advice{slug=\"interview-specific-questions\" category=\"mindset\" title=\"Ask specific questions that reveal the real role\" person=\"flavius\"}\nGeneric interview questions (\"tell me about yourself,\" \"what are your weaknesses\") produce rehearsed answers and almost no signal. Two questions that consistently produce the opposite are \"What does a typical day look like in this role?\" and \"What separates a great hire from an average one?\" The first forces the hiring manager to describe the real job instead of the job description. The second forces them to articulate the dimension on which people actually succeed or fail. Use the answers to design the rest of the interview. If a hiring manager cannot answer either clearly, the role is not ready to be filled.\n:::\n\nThe interview itself runs as a panel with three components: a technical track, a sales or individual contributor track matched to the role family, and a behavioral pass. The scorecard pulls signal from all three and the job-fit layer on top, not from one hero interviewer's gut.\n\n### The AI workflow\n\nThe AI-native part is less about a chatbot and more about removing the operational tax on the recruiter. [Pace](https://hirewithpace.com) runs alongside Google Meet via a Chrome extension with picture-in-picture, so the recruiter sees questions and scoring rails without leaving the call. Transcription happens in real time (similar to how [Granola](https://granola.ai) handles meeting notes), so by the end of the interview the scorecard is mostly pre-filled and the recruiter just edits and signs off.\n\nThe pitch to buyers is concrete on cost. Traditional recruiting is heavy on manual overhead: scheduling, note-taking, write-ups, scorecard alignment, resume parsing, pipeline updates. [Flavius](/people/flavius) ballparks the savings at 40 minutes per interview once transcription, auto-scorecards, and screening automation are in the loop. The room then helped him reframe the pitch: the right benchmark is not \"how much does Pace cost per month\" but \"how much does one bad hire cost this year.\" At that comparison, the tool pays for itself the first time it prevents a false positive.\n\n:::advice{slug=\"benchmark-against-cost-of-mistake\" category=\"business\" title=\"Price against the cost of the mistake, not your competitors\" person=\"flavius\"}\nFor tools that sit on top of high-stakes decisions (hiring, compliance, security, legal), the wrong benchmark is competitor pricing. The right benchmark is the cost of one bad outcome. Pace is built for hiring, where a single bad hire typically costs one to two times the annual salary once you factor in ramp, opportunity cost, severance, and team drag. A tool that prevents one bad hire a year is paying for itself many times over at almost any price. Teach your prospects to do that math in the first five minutes of the demo, and pricing objections mostly go away.\n:::\n\n### Where it could go next\n\nToward the end of the pitch, [Flavius](/people/flavius) sketched an adjacent bet: an automated code assessment layer that sits downstream of the interview. GitHub and repository integration, multi-language support (C++, JavaScript, React, and friends), dependency and vulnerability scanning, and AI-filtered results to cut the usual false positive avalanche from static analysis. In the long version, the same platform can run white-box and black-box assessments for internal security reviews, with an optional bug bounty tie-in. The foundation would be TypeScript, modular enough to self-host for enterprises that cannot let candidate code leave their network.\n\nThe room noted this is a second product hiding inside the first, and advised [Flavius](/people/flavius) to not ship it until Pace itself has paying customers. Classic indie trap: the adjacent product always looks more interesting than the one you need to close this quarter.\n\n### Where the room pushed back\n\nThe demo had been live on the screen while [Flavius](/people/flavius) walked through the framework, which meant the room had plenty of time to inventory the rough edges.\n\nThe first complaint was the interface. Setting up a job description inside [Pace](https://hirewithpace.com) currently takes too many steps. Someone pointed out that the whole flow is exactly the kind of thing an LLM should collapse into a single input: paste the job ad, let the model extract the role, the panel structure, and a first-pass question set, then let the recruiter edit. Every extra click before the interview is a click the recruiter will have to repeat dozens of times.\n\nThe second was about focus during the interview itself. A good interviewer is listening closely, reading tone and hesitation, following up where the signal lives. Anything on screen that pulls attention away from the candidate (a busy scorecard, a dense rubric, notification badges, unnecessary buttons) is a direct hit on the quality of the signal. The room pushed [Flavius](/people/flavius) to design the live-call view as a minimum viable cockpit: a question, space for a short note, and as close to nothing else as possible. Everything administrative should happen before or after, never during.\n\nThe freestyle vs. structured debate came next and got heated. Some in the room preferred the looseness of a conversational interview, arguing that a rigid script misses the best candidates. [Flavius](/people/flavius) had the research on his side, but the consensus was that the research alone is not a marketing asset. [Pace](https://hirewithpace.com)'s homepage and onboarding need to explain, in plain language, why structured interviews outperform freestyle ones before the product can convincingly sell the how. Most hiring managers have never questioned the default; the product has to do that questioning for them.\n\nThen came the persona question. Who is [Pace](https://hirewithpace.com) actually for? Internal HR managers, agency recruiters, hiring managers doing their own hiring, or the candidate side? Each of those buys differently and pays differently. Someone suggested going narrower still: instead of a generic interview tool, pick tech interviews specifically. A tech-first product would need different features (code tasks, system design prompts, engineering panels) but could be a far better alternative than a horizontal tool trying to serve every kind of role. Being the best product for one vertical beats being an acceptable product for all of them.\n\nPricing drew its own round of questions. How was the current price chosen? Was it anchored to competitors, to the cost-of-bad-hire benchmark [Flavius](/people/flavius) had argued for earlier, or to gut feel? Per-seat enterprise pricing has a reputation for long closing cycles, and a simpler usage-based model (per interview, per role) was floated as a faster way to land the first paying customers, even if it leaves money on the table at the top end.\n\nThe sharpest challenge came at the end, and it was not about the product at all. Someone asked the vertical-AI question: why build a SaaS tool that sells interviewing software to recruiters, instead of building a recruiting company whose whole operation is powered by custom AI tools you own? In the vertical version, [Flavius](/people/flavius) is not competing with Greenhouse; he is competing with recruiting agencies that charge 15 to 25 percent of first-year salary per placement, running circles around them on speed and consistency because his internal stack is purpose-built. The SaaS route monetizes the framework. The vertical route monetizes the outcome, which is where most of the margin lives. The room did not resolve it, but it reframed the decision [Flavius](/people/flavius) is actually making.\n\n## Fineas brings the on-prem pricing question\n\n![AISafe homepage](/screenshots/aisafe.gif)\n\n[Fineas Silaghi](/people/fineas-silaghi), CEO of [AISafe Labs](https://aisafe.io), took the floor briefly with a question more than a pitch: how do you price on-prem deployments? [AISafe](https://aisafe.io) sells into environments where running as a SaaS is not an option. Corporations want the tool inside their own network, their own compliance boundary, their own audit trail. The product works. What the pricing page has not fully answered is what those deployments should cost.\n\nThe room converged on two answers.\n\nThe first was to price against the existing budget, not against competitors or gut feel. Corporations of a certain size already have a budget line for tools in your category: security, compliance, developer tooling, whatever the shelf is called internally. That budget exists, the procurement team is used to spending it, and your job is less \"convince them to pay\" and more \"discover the number.\" Someone suggested that on discovery calls, you ask what the team already spends on adjacent tools, or what last year's budget for this category was. The literal price tag matters less than landing inside the familiar range so the buyer does not have to fight finance.\n\n:::advice{slug=\"discover-the-enterprise-budget\" category=\"business\" title=\"Discover the enterprise budget instead of inventing a price\" person=\"fineas-silaghi\"}\nCorporations of a certain size already run a budget line for your category: security, compliance, developer tooling, whatever the shelf is called internally. The money exists and procurement is used to spending it, so the pricing call is less \"convince them to pay\" and more \"discover the number.\" On discovery, ask what the team already spends on adjacent tools or what last year's budget for the category was, and land inside the familiar range. The absolute number matters less than being in a bucket finance does not have to fight for. Founders who invent a price from scratch almost always land below the budget the buyer was ready to spend.\n:::\n\nThe second was to factor the real cost of on-prem maintenance into the price before naming a number. Unlike SaaS, on-prem means limited access to the deployment: no live logs without a ticket, no hotfixes without the customer's change window, no telemetry unless you negotiated it into the contract. Support engineers will spend materially more time per customer on debugging, upgrades, and escalations than a pure SaaS model would ever model. The people in the room who had shipped enterprise software were blunt about this one: if you price on-prem like SaaS, the first production incident eats the margin on the account.\n\n:::advice{slug=\"price-on-prem-for-support-cost\" category=\"business\" title=\"Price on-prem for the support reality, not the demo\" person=\"fineas-silaghi\"}\nOn-prem is not SaaS with a different installer. Once the software lives inside a customer network you lose live logs, hotfix freedom, and telemetry unless you explicitly negotiated for them. Support engineers spend materially more time per customer on debugging, upgrades, and escalations than any SaaS cost model captures, and that time has to be priced in before you name a number. If on-prem is priced like SaaS, the first production incident eats the margin on the account. The safe heuristic is to model a realistic support load per customer per year, multiply by a loaded engineering rate, and treat that number as the floor, not a contingency.\n:::\n\n[Fineas](/people/fineas-silaghi) took both in: the \"discover the budget, do not invent it\" side, and the \"price for the support reality, not the demo\" side. The short version for the rest of the room: on-prem pricing is a two-axis problem, and most founders solve only one of the two.\n\n## Vlad shows off zag\n\n![zag composable agent development environment](/screenshots/zag.png)\n\n[Vlad](/people/vlad) wrapped the evening with a short demo of [zag](https://github.com/vtemian/zag), a composable agent development environment written in Zig that he has been building for himself. The framing was deliberately modest: not a startup, not a product, just a personal harness for agentic coding that he uses day to day. Everything above the primitives is a plugin, which means he can swap in new models, terminals, keymaps, and trajectory validators as the ecosystem keeps moving.\n\nThe pitch to the room was less about zag specifically and more about the observation behind it. Building a harness for an agentic workflow sounds like a huge project until you actually try it. Once you strip it down to the primitives (a loop, a model call, a tool interface, a trajectory log), the core is a couple of hundred lines. Owning that core gives you leverage everyone else rents from a vendor: you can change the prompt discipline, the validation rules, the editor integration, the telemetry, without waiting for a feature flag.\n\n:::advice{slug=\"build-your-own-agent-harness\" category=\"mindset\" title=\"Build your own agent harness, even as a side project\" person=\"vlad\"}\nMost developers assume an agent harness is something you buy or install. In practice, a working harness for your own workflow is a weekend project, not a quarter-long one. The payoff is that every future agentic feature you build sits on primitives you actually control: your own prompt format, your own tool interface, your own logging and trajectory replay. Even if you never ship it as a product, the harness compounds: it is the thing that makes every downstream experiment cheap. And as [Vlad](/people/vlad) put it at the end of his demo, it is genuinely fun to build, which is a signal in itself.\n:::\n\n### Where the room pointed it\n\nThe most interesting feedback had nothing to do with the code. Several people in the room noted that every visible agent harness today (Claude Code, Codex, Cursor, Aider, zag) is optimized for one workflow: generating, editing, and shipping code. The equivalent tooling for non-code workflows (complex business operations, back-office logic, compliance routines, support pipelines) barely exists. The gap is not the model; it is the harness. Someone building the zag equivalent for operations work, where the \"trajectory\" is a sequence of forms, approvals, and state changes rather than a diff against a repo, would be sitting on territory nobody else is contesting yet.\n\n[Vlad](/people/vlad) took the note: zag itself will stay a personal coding tool, but the same primitives could anchor a very different product aimed at the non-technical end of the spectrum. The room filed it under \"things to watch next.\"\n\n## The evening wraps up\n\nFour talks, a lot of cross-talk, and a running debate about whether SEO in 2026 is about keywords, intent, or just not annoying the reader. The consensus, for tonight at least, was \"all three, and the third matters the most.\" The bigger thread connecting the evening was a quieter one: every talk, whether it was Raul's traffic spike, Flavius's interview framework, Fineas's on-prem pricing puzzle, or Vlad's agent harness, came back to the same question: what do you own, and what are you renting?","location":"Cowork Timisoara - The Office, Timisoara","presenters":["Raul","Flavius D.","Fineas Silaghi","Vlad"],"presenter_urls":["https://indie.md/people/raul/","https://indie.md/people/flavius/","https://indie.md/people/fineas-silaghi/","https://indie.md/people/vlad/"],"event_link":"https://luma.com/wj7wv5bg","published":"2026-04-22"}
{"id":"event/indie-tm-9-timisoara-may-2026","type":"event","url":"https://indie.md/events/indie-tm-9-timisoara-may-2026/","markdown_url":"https://indie.md/events/indie-tm-9-timisoara-may-2026.md","title":"Indie TM #9: Six Demos and a BYOK Debate","description":"What we learned at our ninth meetup at Cowork Timisoara","content":"A Thursday evening built as a show and roast: six builders, each putting a live product on the screen and asking the room to break it. [Raul](/people/raul) bolted a car-insurance flow onto a domain we already knew. [Mircea](/people/mircea) turned tax anxiety into a landing page and then mined his own Search Console for content. [Doru](/people/doru-bota) brought a dental booking platform and walked into the one constraint that matters when you store medical data. [Valentin](/people/vali) showed a tool that tells you whether your email is reaching the inbox at all. [Petru](/people/petru-popa) showed photorealistic 3D property tours. [Ionut](/people/ionut) closed the demos with the most different project of the night, a synth he sells as a one-person studio. Then the room converged on the question every AI builder there had hit: should users bring their own key?\n\nThe thread running under all of it was quieter. The products that landed hardest were the ones selling relief from a specific, expensive pain, and almost every roast was a variation on one question: how much friction are you allowed to put between a user and that relief?\n\n## Raul adds an RCA flow to ebaza.ro\n\n![ebaza.ro homepage](/screenshots/ebaza.png)\n\n[Raul](/people/raul) opened by going back to [ebaza.ro](https://ebaza.ro), the Romanian insurance domain he walked the room through last time. The story then was traffic. This time it was a product: he had built a full RCA quote flow into the site. RCA (Raspundere Civila Auto) is Romania's mandatory car-liability insurance, a renew-on-a-schedule purchase every driver in the country has to make, which makes it a steady, high-intent search market sitting right next to his existing pages.\n\nThe clever part was the onboarding. Instead of asking a driver to transcribe a dozen fields from their car registration and current policy, [Raul](/people/raul) lets them upload a photo. OCR reads the document and pre-fills the form. He had also leaned on [TypeUI](https://typeui.sh), the design-skill CLI [Zoltan](/people/zoltan) demoed back at the sixth meetup, to make the flow look finished, and he mentioned updating one of his AI skills to stop adding emojis to generated copy, because the stray emoji is the fastest tell that a page was written by a machine.\n\n:::advice{slug=\"ocr-upload-cuts-onboarding-friction\" category=\"product\" title=\"Let users upload a photo instead of filling a form\" person=\"raul\"}\nWhen your onboarding asks for data the user is already holding on a card or a document, do not make them transcribe it. Let them photograph it and run OCR to pre-fill the fields. Raul's RCA flow replaces a dozen manual inputs with a single photo of the car registration and the current policy, and every field removed before the user sees value is a measurable lift in completion. The pattern generalizes to anything printed: an invoice, an ID, a label, a receipt. The cost of an OCR pass is now low enough that asking the user to type what a camera could read is a friction you are choosing to keep.\n:::\n\nThe sharpest roast was about the call to action. The button promised to \"see the price,\" but clicking it did not show a price; it pushed the user one step deeper into the funnel. A CTA that says \"see the price\" and then does not show a price is a small dishonesty, and small dishonesties teach users not to trust the next button. The room's note was blunt: either show the price there, or label the button for what it actually does.\n\n## Mircea turns ANAF anxiety into a product\n\n![renzi.ro homepage](/screenshots/renzi.png)\n\n[Mircea](/people/mircea) showed [renzi.ro](https://renzi.ro), a property-management SaaS for Romanian landlords. It centralizes the unglamorous parts of renting out apartments: rent and payment tracking, utility invoices, contracts, document storage. The feature that actually sells it is the tax one: Renzi pre-fills the Declaratia Unica, the unified annual tax declaration (Form 212), ready to submit in ANAF's online SPV portal.\n\nThe positioning is the lesson, and it is the opposite of a feature list. The homepage leads with a number: one ANAF fine costs as much as two years of Renzi. That framing does a lot of work, and it is worth being precise about why, because the literal statutory fine for an unregistered rental contract is small (50 to 500 lei). The real exposure is everything behind it: retroactive back-tax at the 10 percent flat rate on the rent you failed to declare (levied on 80 percent of gross, after the 20 percent standard deduction that replaced the old 40 percent one in 2023), plus daily interest and late penalties, plus ANAF's own and usually higher estimate of what you owe, plus 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 and prices itself at a rounding error next to it, roughly 22 to 89 lei a month. [Mircea](/people/mircea) also credited an AI copywriting workflow for the site's copy, which is how a one-person marketing budget produces a page that reads like it had a copywriter.\n\n:::advice{slug=\"anchor-price-on-the-pain\" category=\"business\" title=\"Anchor your price against the cost of the problem\" person=\"mircea\"}\nWhen your product removes a specific, expensive risk, price it against that risk, not against competitors or hours saved. Renzi's homepage leads with \"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 it stands in for: retroactive tax on undeclared rent, daily interest and penalties, and the tax authority's own estimate of what you owe. Against a number that large, a subscription of a few tens of lei a month is a rounding error, and the pricing objection mostly disappears. Find the worst outcome your product prevents, do that math out loud on your landing page, and let it dwarf your price.\n:::\n\nThen the SEO half. [Mircea](/people/mircea) walked through a script he wrote against the Google Search Console API: pull every query and the page it landed on, dump it to CSV, and group the rows by their shared parent term to expose keyword gaps. The room recognized the move. The API returns far more than the dashboard does (up to 25,000 rows a call against the UI's thousand or so), which is what makes the gap analysis possible. He had also been chasing a high bounce rate and had started addressing it, which is the right reflex: there is no point pouring traffic into a page people leave immediately.\n\n:::advice{slug=\"mine-search-console-for-content-gaps\" category=\"seo\" title=\"Mine your own Search Console data for content gaps\" person=\"mircea\"}\nYour Google Search Console data already tells you what Google thinks you rank for, in your users' real words, for free. Pull the full query-and-page table from the Search Console API (it returns up to 25,000 rows per call against the dashboard's thousand or so), then look for two signals. First, striking-distance keywords: queries where you sit in positions four to twenty with plenty of impressions but a weak click-through rate. Google already considers you relevant, and nudging one of those pages from position twelve to position six can multiply its traffic. Second, content gaps: cluster the queries under their shared parent term, and any cluster with real impressions but no dedicated page is a pre-validated brief for an article you have not written yet. It is the cheapest, highest-signal SEO loop there is, and it needs no paid keyword tool.\n:::\n\n## Doru shows Dentor, and the room finds the real constraint\n\n![dentor.ro homepage](/screenshots/dentor.png)\n\n[Doru](/people/doru-bota) presented [Dentor](https://dentor.ro), an appointment-scheduling and practice-management platform for dental clinics. Patients book 24/7 through a personalized link, the system sends automated SMS and email reminders, and the practice gets centralized patient records and an auto-generated website. The pitch is operational: fewer phone calls, fewer no-shows, priced at 245 lei a month. He also mentioned a WordPress plugin as part of how clinics would adopt it.\n\nThe roast came in three layers, from cosmetic to existential.\n\nThe first was diacritics, an old Romanian-web argument. The practical answer the room landed on: keep diacritics in the content a human reads (body copy, headings, titles), because Google treats \"programari\" and \"programări\" as equivalent so there is no ranking penalty, and correct Romanian reads as more credible. Strip them from the things a machine parses: URL slugs, file names, image alt text, where encoding quietly breaks links and tooling. This is the dominant practitioner recommendation rather than settled science (you can find Romanian SEOs who argue the other way), but the split between reader-facing content and machine-facing identifiers is the safe default.\n\n:::advice{slug=\"diacritics-in-content-not-urls\" category=\"seo\" title=\"Keep diacritics in your content, strip them from your URLs\" person=\"doru-bota\"}\nOn a Romanian site, the diacritics question has a practical answer. Google treats \"programari\" and \"programări\" as equivalent, so writing correct Romanian with diacritics in your body copy, headings, and titles carries no ranking penalty and reads as more credible to a human. Where diacritics genuinely cause trouble is in URL slugs, file names, and image alt text, where encoding breaks links and tooling. So the rule most Romanian practitioners settle on: diacritics in the content the reader sees, none in the identifiers the machine parses. The same logic applies to any language with accented characters.\n:::\n\nThe second was the demo video. Dentor already has a roughly two-minute \"see how it works\" video; the note was about placement. Put the video above the fold next to the headline and the booking CTA, run it as click-to-play with a strong poster frame rather than sound-on autoplay (which browsers block and mute anyway, especially on mobile), keep it short, and never let the video push the primary CTA below the fold. The video supports the booking button; it should never displace it.\n\nThe third was the existential one. The moment Dentor stores diagnoses, treatments, and dental imaging, it is processing special-category health data under Article 9 of the GDPR. That is prohibited by default and permitted only on a specific lawful basis, typically the provision of health care or the patient's explicit consent, and it carries a higher bar of safeguards than ordinary personal data. Someone in the room pointed at [universulfiscal.ro](https://universulfiscal.ro) as a local example of surfacing explicit processing consent at the point of data entry, the kind of pattern a health-data product needs front and center rather than buried in a policy page.\n\n:::advice{slug=\"health-data-compliance-is-engineering\" category=\"product\" title=\"For health data, compliance is an engineering posture, not a badge\" person=\"doru-bota\"}\nThe moment your product stores diagnoses, treatments, or medical images, you are processing special-category health data under Article 9 of the GDPR, which is prohibited by default and allowed only on a specific lawful basis such as the provision of health care or explicit consent. That triggers a higher bar than ordinary personal data: a data protection impact assessment, encryption and pseudonymization, access limited to staff bound by confidentiality, and a signed data-processing agreement that makes you the processor to each clinic's controller. A \"GDPR Compliant\" badge on the landing page is marketing; for health data it has to be a documented engineering and legal reality. When you build a vertical SaaS that touches a regulated data class, the binding constraint is not your feature set, it is the data class, and you should design for it from the first table you create.\n:::\n\n## Valentin checks whether your email actually lands\n\n![doesmyemail.work homepage](/screenshots/doesmyemail.png)\n\n[Valentin](/people/vali) showed [doesmyemail.work](https://doesmyemail.work), a free, no-signup tool that answers a plain question: does my email reach the inbox or the spam folder? You hand it a domain and it scans your SPF, DKIM, DMARC, and MX records, then explains in plain English what is broken (SPF as \"does your domain say yes, I sent this,\" DKIM as \"are your emails signed,\" DMARC as \"do you have rules for handling fakes\"). It then offers a second, active check: send a real test email to a seed address to confirm mail actually flows end to end.\n\nHe was candid that the tool is the top of a funnel, not the business. The plan is lead generation, a WordPress plugin, and a first launch post on LinkedIn. That sequence is well worn for a reason: the whole email-deliverability category gives away the check because running it is itself an admission of a problem the same vendor sells the cure for.\n\n:::advice{slug=\"free-tool-as-top-of-funnel\" category=\"distribution\" title=\"Ship a free tool as the top of your funnel\" person=\"vali\"}\nA narrow, free, no-signup tool that solves one frequently-Googled problem is not charity, it is a lead magnet. The whole email-deliverability category (mail-tester, GlockApps, Warmy) gives away the check because running it is itself an admission of a problem the same vendor sells the fix for: it self-qualifies warm prospects and ranks for high-intent queries like \"does my email go to spam.\" The indie sequence is to ship the magnet first, let it accumulate search traffic and word of mouth, and only then bolt on the paid layer (monitoring, a plugin, a done-for-you fix). The catch the room raised: a magnet only works if activation is effortless, so the single most important screen is the one where the user gets their answer.\n:::\n\nThat last point became the roast. The active-check step is where the tool gets brittle on a phone: it shows a seed address with a \"Copy\" button and asks you to switch to your mail app and send a message to it, and the hand-off from a browser tab to a native mail client is exactly where mobile users lose the thread. The room's fix was concrete: replace the copy-and-switch dance with a single \"send test email\" action, a mailto link that pre-fills the recipient and ideally the subject and body, collapsing two taps and a paste into one tap. The activation moment is the one screen you cannot afford to make fiddly.\n\n## Petru shows off Oria\n\n![realoria.com homepage](/screenshots/realoria.png)\n\n[Petru](/people/petru-popa) showed [realoria.com](https://realoria.com), branded Oria: photorealistic 3D property tours that it pitches as Google Street View quality but for interiors, built on Gaussian Splatting, the rendering technique that has been quietly taking over real-estate walkthroughs. The tours run in any browser at over 100 frames per second with no app to install, and turnaround from filming to a delivered tour is 48 to 72 hours. The studio service starts at 350 euros per property, with a self-serve version (film it on your own phone) slated for later in the year.\n\n## Ionut ships a synth, and a one-person studio around it\n\n![Lost Synapse running its Laura polysynth](/screenshots/lostsynapse.png)\n\n[Ionut](/people/ionut) closed the demos with the most different project of the night: [Laura](https://lostsynapse.store), a software synthesizer he builds in C and C++ on top of [JUCE](https://juce.com) and sells under his one-person studio, Lost Synapse. For anyone outside audio software, JUCE is the de facto standard C++ framework for building audio plugins, the effects and instruments that load inside a digital audio workstation like Ableton Live, Logic Pro, or FL Studio. You write the processing code once and JUCE exports the same codebase to every major plugin format across desktop and mobile, which is precisely the cross-platform, cross-format plumbing that would otherwise eat a solo developer's entire timeline. Laura ships as an AU, VST3, and standalone instrument for macOS and Windows.\n\nThe commercial shape is as much the lesson as the DSP. Laura is pitched at sound designers \"who'd rather not learn another ecosystem\": four oscillator engines under one signal path, a mod matrix, and a button that rolls the dice when inspiration is late. It sells for 69 dollars, one time, with lifetime updates and no telemetry, direct from the site or through Gumroad. That is the whole indie-audio thesis on one product page: a single technical founder, one well-scoped instrument, a perpetual license, and a promise (\"one purchase, lifetime updates, every new build free, forever\") that a subscription tool structurally cannot make.\n\n:::advice{slug=\"niche-audio-plugin-as-a-product\" category=\"product\" title=\"A niche audio plugin is a textbook solo product\" person=\"ionut\"}\nAudio plugins are an underrated indie category. A single technical builder can ship one well-scoped effect or instrument on a standard framework like JUCE, which handles the brutal cross-format, cross-platform plumbing (VST3, AU, AAX across Windows, macOS, and Linux) so you can focus on the sound. The economics fit one person: you sell perpetual licenses for 30 to 100 dollars directly to producers, the distribution channels already exist (KVR Audio, Plugin Boutique, YouTube and producer communities), and a perpetual framework license covers six figures of revenue before it costs you recurring money. The moat is not raw engineering, it is taste and DSP craft: a recognizable sound and a brand producers trust. Small, focused, and durable, which is exactly the kind of product that outlasts trends.\n:::\n\n## The night ends on the key question\n\nWith the demos done, the conversation converged on a problem several people in the room were living: BYOK, bring your own key. The idea is that instead of holding one central API key and billing users for the model usage, you ask each user to supply their own provider key (OpenAI, Anthropic, OpenRouter), store it, and make calls on their behalf, so they pay the model provider directly. Founders reach for it for one reason: it removes the unbounded inference bill that can bankrupt a thin AI wrapper the moment it scales.\n\nThe room's two complaints were the two halves of the BYOK problem. First, people are reluctant to hand over a key at all: pasting a long-lived secret into someone else's app raises the obvious questions of where it goes, whether it can be leaked, and whether someone can run up charges on it. Second, the setup is too heavy. Since OpenAI stopped handing out free credits in mid-2025, telling a new user to \"go make an API key\" now silently means \"go add a credit card,\" which is a much bigger ask than it sounds and stalls signups before anyone sees value.\n\nThe resolution was about sequencing and audience, not a yes or no. Lead with a managed free tier on your own key so a new user reaches the aha moment with zero setup, then introduce BYOK as the upgrade for heavy users once the value, and the real cost, are obvious. If you must ask early, kill both frictions deliberately: replace copy-and-paste with a one-click OAuth flow (OpenRouter's authorization flow hands your app a user-scoped key without the user ever touching a raw secret), and be explicit about where the key lives, because \"we never see it, it stays in your browser\" is a genuine selling point when it is actually true. And the inversion worth remembering: the same key request that repels a consumer signup is, for an enterprise buyer, a litmus test for being enterprise-ready, because it means data sovereignty and their own negotiated provider pricing. Consumer and enterprise want opposite things from the same screen.\n\nWhich looped back to the thread under the whole evening. The products that landed hardest were the ones selling relief from a specific, expensive pain: a tax fine, a spam folder, a missed appointment. And nearly every roast was the same question asked six ways: how much friction are you allowed to put between a user and that relief? The answer, for tonight at least, was always less than you think.","location":"Cowork Timisoara - The Office, Timisoara","presenters":["Raul","Mircea","Doru","Valentin Bora","Petru","Ionut F."],"presenter_urls":["https://indie.md/people/raul/","https://indie.md/people/mircea/","https://indie.md/people/doru-bota/","https://indie.md/people/vali/","https://indie.md/people/petru-popa/","https://indie.md/people/ionut/"],"event_link":"https://luma.com/0u8o9k9b","published":"2026-05-28"}
{"id":"person/bogdan-moldovean","type":"person","url":"https://indie.md/people/bogdan-moldovean/","markdown_url":"https://indie.md/people/bogdan-moldovean.md","title":"Bogdan","description":"Dabbler","content":"Worked for Microsoft, started a small business, headed the engineering team for a high growth startup. Had varied levels of success. Now works as a consultant, raises 2 kids and builds small stuff sometimes. The Event Newsletter is one of those things. It's an app that delivers weekly local event newsletters based on the user's preferences, using AI to find and curate events.","role":null,"tagline":"Dabbler","website":null,"products":[{"name":"Event Newsletter","url":"https://event-newsletter.com"}]}
{"id":"person/camil","type":"person","url":"https://indie.md/people/camil/","markdown_url":"https://indie.md/people/camil.md","title":"Camil","description":"Turning my own problems into products","content":"Full-stack engineer with 8 years of experience, just started indie products on the side. Builder of SoundScrub, a desktop app that removes any sound you can describe (a barking dog, people talking, copyrighted music) from a video, or keeps only that sound, or just turns it down. It runs on Meta's open-source SAM Audio model inside an Electron shell with a Python backend on RunPod, and the video never leaves your machine: the app uploads only the extracted audio for processing. Started as a terminal script for cleaning up his own holiday footage and grew into a pay-per-use product aimed at travel vloggers and videographers. I also launched jobAIssistant, a product that tracks job applications: paste a job URL and it extracts the details, forward a recruiter email and it updates the application details and interview schedule. I also work on PermaMusic, a free tool that finds deleted songs and duplicates across your YouTube playlists.","role":null,"tagline":"Turning my own problems into products","website":null,"products":[{"name":"SoundScrub","url":"https://soundscrub.video"},{"name":"jobAIssistant","url":"https://jobaissistant.com"},{"name":"PermaMusic","url":"https://permamusic.app"}]}
{"id":"person/cristian-antohe","type":"person","url":"https://indie.md/people/cristian-antohe/","markdown_url":"https://indie.md/people/cristian-antohe.md","title":"Cristian","description":"WordPress product builder at Cozmoslabs","content":"Founder of Cozmoslabs, building WordPress plugins for membership and community management. Over a decade of shipping products in the WordPress ecosystem serving 500,000+ brands with 6+ million plugin downloads.","role":null,"tagline":"WordPress product builder at Cozmoslabs","website":null,"products":[{"name":"Cozmoslabs","url":"https://www.cozmoslabs.com"},{"name":"TranslatePress","url":"https://translatepress.com"},{"name":"Profile Builder","url":"https://www.cozmoslabs.com/wordpress-profile-builder/"},{"name":"Paid Member Subscriptions","url":"https://www.cozmoslabs.com/wordpress-paid-member-subscriptions/"}]}
{"id":"person/doru-bota","type":"person","url":"https://indie.md/people/doru-bota/","markdown_url":"https://indie.md/people/doru-bota.md","title":"Doru","description":"Building scheduling software for dental clinics","content":"Builder behind Dentor, an appointment-scheduling and practice-management platform for Romanian dental clinics. Dentor gives each practice a 24/7 online booking link, automated SMS and email reminders, centralized patient records, and an auto-generated website, so a clinic runs on software instead of a receptionist's notebook. Building a vertical SaaS in one of the most heavily regulated data classes there is: patient health data under GDPR.","role":null,"tagline":"Building scheduling software for dental clinics","website":null,"products":[{"name":"Dentor","url":"https://dentor.ro"}]}
{"id":"person/fineas-silaghi","type":"person","url":"https://indie.md/people/fineas-silaghi/","markdown_url":"https://indie.md/people/fineas-silaghi.md","title":"Fineas Silaghi","description":"Security researcher and CTF player running AISafe Labs","content":"Dives headfirst into the most challenging subjects and uncovers ways to exploit them. Security researcher and CTF player from Romania, now CEO of AISafe Labs, where he ships a security product into environments where SaaS is not an option: corporate networks, regulated industries, air-gapped deployments.","role":null,"tagline":"Security researcher and CTF player running AISafe Labs","website":null,"products":[{"name":"AISafe","url":"https://aisafe.io"}]}
{"id":"person/flavius","type":"person","url":"https://indie.md/people/flavius/","markdown_url":"https://indie.md/people/flavius.md","title":"Flavius D.","description":"Builds systems that make hiring decisions better","content":"Studied computer science and psychology, then went deeper into neuroscience and organizational behavior. Spent 5+ years hiring for teams across Europe before founding Human Nature in 2026, a company building ethical AI infrastructure for organizations. First product is Pace, a structured interview copilot that runs beside interviewers rather than replacing them. Structured interviews have the highest predictive validity in hiring research and the highest variability in practice; Pace exists to close that implementation gap.","role":null,"tagline":"Builds systems that make hiring decisions better","website":null,"products":[{"name":"Human Nature","url":"https://humannature.earth"},{"name":"Pace","url":"https://hirewithpace.com"}]}
{"id":"person/grigore-raileanu","type":"person","url":"https://indie.md/people/grigore-raileanu/","markdown_url":"https://indie.md/people/grigore-raileanu.md","title":"Greg","description":"Bootstrapped CX and NPS SaaS founder at Retently","content":"Founder of Retently, a bootstrapped customer feedback platform (NPS, CSAT, CES, reviews, and insights) for Ecommerce stores and B2B SaaS. More than a decade of building it profitably and independently, with a focus on durability, customer trust, and a product that compounds over time.","role":null,"tagline":"Bootstrapped CX and NPS SaaS founder at Retently","website":"https://www.retently.com","products":[{"name":"Retently","url":"https://www.retently.com"}]}
{"id":"person/ionut","type":"person","url":"https://indie.md/people/ionut/","markdown_url":"https://indie.md/people/ionut.md","title":"Ionut F.","description":"Builds audio plugins as a one-person studio","content":"Audio-software developer behind Lost Synapse, a one-person studio whose first release is Laura, a software synthesizer built in C and C++ on top of JUCE. Laura ships as an AU, VST3, and standalone instrument for macOS and Windows, sold for a one-time price with lifetime updates and no telemetry. Works in the niche where the moat is not engineering but taste and DSP craft: a recognizable sound that producers trust.","role":null,"tagline":"Builds audio plugins as a one-person studio","website":null,"products":[{"name":"Lost Synapse","url":"https://lostsynapse.store"}]}
{"id":"person/mihai-balint","type":"person","url":"https://indie.md/people/mihai-balint/","markdown_url":"https://indie.md/people/mihai-balint.md","title":"Mihai","description":"Building OCR tools for developers","content":"Developer building OCRskill, an OCR API for AI agents that extracts structured data from images in under 500ms. Passionate about solving tedious data entry problems with GPU-powered automation.","role":null,"tagline":"Building OCR tools for developers","website":null,"products":[{"name":"OCRskill","url":"https://ocrskill.com"}]}
{"id":"person/mihai-negrea","type":"person","url":"https://indie.md/people/mihai-negrea/","markdown_url":"https://indie.md/people/mihai-negrea.md","title":"Mihai Negrea","description":"Ex-Microsoft engineer reading every public tender in Romania","content":"Software engineer with twelve years at Microsoft, two of them in the US on the Bing team, who burned out in 2021 and quit to build something alone. In 2023 he founded Data Matters SRL and launched DataDriven, a platform that monitors Romanian public procurement end to end: it crawls more than 10,000 sources daily, reads the actual tender documentation with a self-hosted OCR pipeline running on a gaming GPU, and matches opportunities to companies through a hand-built taxonomy of around 180 categories. A deliberate company of one, now past 300 paying firms, profitable, and expanding into European tenders. At Indie TM #12 he opened the books on all of it: the origin story in his uncle's SEAP struggles, the cold email machine, the escape from a 3,000 EUR Azure bill, and the MCP server his customers point their AI assistants at.","role":"Founder, DataDriven","tagline":"Ex-Microsoft engineer reading every public tender in Romania","website":"https://www.datadriven.ro","products":[{"name":"DataDriven","url":"https://www.datadriven.ro"}]}
{"id":"person/mile-rosu","type":"person","url":"https://indie.md/people/mile-rosu/","markdown_url":"https://indie.md/people/mile-rosu.md","title":"Mile Rosu","description":"Dad of one, co-founder of three","content":"Software engineer turned sales and marketing generalist who sailed through the Java, WordPress, and Kubernetes seas. Currently building a church management app targeting an underserved but transaction-heavy niche. Volunteers, ships products, and believes in finding one specific pain point before building the full suite.","role":null,"tagline":"Dad of one, co-founder of three","website":null,"products":[]}
{"id":"person/mircea","type":"person","url":"https://indie.md/people/mircea/","markdown_url":"https://indie.md/people/mircea.md","title":"Mircea","description":"From agency burnout to $4k MRR","content":"Developer with 25+ years of software engineering experience who turned client-work expertise into micro-SaaS products. Built SingleFax (no-signup online fax service) and Blahphone (browser-based international calling). Believes the best products solve one problem extremely well.","role":null,"tagline":"From agency burnout to $4k MRR","website":null,"products":[{"name":"SingleFax","url":"https://singlefax.com"},{"name":"Blahphone","url":"https://blahphone.com"},{"name":"MicroSaaS Directory","url":"https://microsaas.directory"},{"name":"Renzi","url":"https://renzi.ro"}]}
{"id":"person/octavian-chis","type":"person","url":"https://indie.md/people/octavian-chis/","markdown_url":"https://indie.md/people/octavian-chis.md","title":"Octavian Chiș","description":"An OG indie hacker building tools that make you happy","content":"One of Romania's original indie hackers, shipping small, useful tools since long before anyone here called it indie hacking, with more than 200 projects behind him under the plugins.ro umbrella. His through-line is his own motto, building tools that make people happy. At Indie TM #11 he showed Intersect, an intent graph for the indie scene: every builder files a handful of cards for 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 the system reads those cards to generate each person's profile and surface the intersections between people, most usefully a need on one side met by an offer on the other.","role":null,"tagline":"An OG indie hacker building tools that make you happy","website":"https://plugins.ro","products":[]}
{"id":"person/petru-popa","type":"person","url":"https://indie.md/people/petru-popa/","markdown_url":"https://indie.md/people/petru-popa.md","title":"Petru","description":"SEO veteran at Kink.com","content":"SEO specialist working on one of the web's oldest and highest-authority domains. Brings hard-won experience in large-scale content strategy, trust signals, and sustainable publishing cadence.","role":null,"tagline":"SEO veteran at Kink.com","website":null,"products":[{"name":"Kink.com","url":"https://www.kink.com"}]}
{"id":"person/raul","type":"person","url":"https://indie.md/people/raul/","markdown_url":"https://indie.md/people/raul.md","title":"Raul","description":"Software engineer turned curator and community builder","content":"Software engineer turned indie builder and community organizer. After being fired for trying to create a better work culture, he built Calm Companies, a curated list of companies renowned for how they work and for $19/year people get a weekly newsletter for when any of them are hiring. Organizes the Indie TM meetup in Timisoara, Romania, where local indie hackers present, roast, and sharpen each other's products. Believes curation beats algorithms, simplicity beats features, and a landing page with a Stripe payment button is the best MVP.","role":null,"tagline":"Software engineer turned curator and community builder","website":null,"products":[{"name":"eBaza","url":"https://ebaza.ro"},{"name":"Calm Companies","url":"https://calmcompanies.club"},{"name":"OG Pilot","url":"https://ogpilot.com"},{"name":"Buzzketeer","url":"https://buzzketeer.com"},{"name":"Git Digest","url":"https://gitdigest.ai"}]}
{"id":"person/vali","type":"person","url":"https://indie.md/people/vali/","markdown_url":"https://indie.md/people/vali.md","title":"Valentin Bora","description":"Makes sure your email lands in the inbox","content":"Builder of doesmyemail.work, a free, no-signup tool that tells you in plain English whether your email reaches the inbox or the spam folder. It scans SPF, DKIM, DMARC, and MX records and offers a real send-a-test-email check, turning an invisible and expensive problem (mail silently going to spam) into a thirty-second diagnosis. Treats the free tool as the top of a funnel rather than the whole business. Also builds Dr. Ursula, a React Native psychology and personal-development app for the psychotherapist Dr. Ursula Sandner, where he is testing short-form video for awareness and gentle push notifications to turn free listeners into paying subscribers.","role":null,"tagline":"Makes sure your email lands in the inbox","website":null,"products":[{"name":"doesmyemail.work","url":"https://doesmyemail.work"},{"name":"Dr. Ursula","url":"https://drursula.ro"}]}
{"id":"person/vlad","type":"person","url":"https://indie.md/people/vlad/","markdown_url":"https://indie.md/people/vlad.md","title":"Vlad","description":"Backend engineer turned indie hacker","content":"Backend and DevOps engineer who loves writing beautiful code. After 15 years building production infrastructure, went solo to scratch his own itch. Now building sisif.ai, an AI video generation API, and zag, a composable agent development environment in Zig that he uses as his personal harness for agentic coding. Obsessed with distribution and platform-led growth.","role":"Founder, sisif.ai","tagline":"Backend engineer turned indie hacker","website":"https://sisif.ai","products":[{"name":"sisif.ai","url":"https://sisif.ai"},{"name":"getnanoclaw","url":"https://getnanoclaw.com"},{"name":"zag","url":"https://github.com/vtemian/zag"}]}
{"id":"person/zoltan","type":"person","url":"https://indie.md/people/zoltan/","markdown_url":"https://indie.md/people/zoltan.md","title":"Zoltan Szogyenyi","description":"Chief builder at Bergside, creator of Flowbite","content":"Co-founder and CEO of Bergside, a bootstrapped two-person company in Timisoara that builds and acquires digital products used by millions. Started with outsourcing, pivoted to templates on ThemeForest (first one rejected), then hit a spike on Black Friday selling Tailwind and Figma design systems. That momentum led to Flowbite, an open-source UI component library with 30M+ npm downloads and 9.1k+ GitHub stars. Runs the business with co-founder Robert Tanislav, reaching 70k/month without recurring revenue. Believes in premium pricing, community-driven distribution, and never doing discounts.","role":null,"tagline":"Chief builder at Bergside, creator of Flowbite","website":null,"products":[{"name":"Flowbite","url":"https://flowbite.com"},{"name":"TypeUI","url":"https://typeui.sh"},{"name":"Themesberg","url":"https://themesberg.com"},{"name":"Glass UI","url":"https://ui.glass"},{"name":"src.club","url":"https://src.club"}]}
{"id":"advice/build-in-the-margins-of-a-busy-life","type":"advice","url":"https://indie.md/advice/build-in-the-margins-of-a-busy-life/","markdown_url":"https://indie.md/advice/build-in-the-margins-of-a-busy-life.md","title":"Scope a side project to fit the life you already have","description":"Bogdan has a consulting career and two kids, so he deliberately scoped Event Newsletter to something he could run in the gaps rather than something that demands his full attention. The trick is to choose the product around your real available time, not around an imagined version…","content":"Bogdan has a consulting career and two kids, so he deliberately scoped Event Newsletter to something he could run in the gaps rather than something that demands his full attention. The trick is to choose the product around your real available time, not around an imagined version of yourself with empty evenings. A tightly-scoped tool with a narrow job survives the busy weeks that would kill a more ambitious build. For a dabbler, the right size of project is the one that still gets shipped when life gets loud.","category":"mindset","author":"Bogdan","author_url":"https://indie.md/people/bogdan-moldovean/","source_url":"https://indie.md/journeys/bogdan-event-newsletter/","source_type":"journey"}
{"id":"advice/let-ai-curate-the-event-firehose","type":"advice","url":"https://indie.md/advice/let-ai-curate-the-event-firehose/","markdown_url":"https://indie.md/advice/let-ai-curate-the-event-firehose.md","title":"Let AI curate and summarize the firehose into something personal","description":"Event Newsletter works because AI handles the part a solo builder cannot: reading the constant flood of local events and turning it into a short, personal digest. Bogdan uses AI to find, curate, and summarize, matching events against each user's preferences so the output feels h…","content":"Event Newsletter works because AI handles the part a solo builder cannot: reading the constant flood of local events and turning it into a short, personal digest. Bogdan uses AI to find, curate, and summarize, matching events against each user's preferences so the output feels hand-picked rather than dumped. The leverage is not the AI by itself, it is pointing it at a firehose of information that a human could never process at the cadence the product needs. At Indie TM #5 the room also weighed in on which models might suit this job better, which is the kind of input he went looking for.","category":"product","author":"Bogdan","author_url":"https://indie.md/people/bogdan-moldovean/","source_url":"https://indie.md/journeys/bogdan-event-newsletter/","source_type":"journey"}
{"id":"advice/serve-the-smaller-cities-aggregators-skip","type":"advice","url":"https://indie.md/advice/serve-the-smaller-cities-aggregators-skip/","markdown_url":"https://indie.md/advice/serve-the-smaller-cities-aggregators-skip.md","title":"Serve the smaller cities the big aggregators ignore","description":"Big event aggregators cover major cities and leave smaller ones thin or empty, and that ignored geography is the niche Bogdan is aiming Event Newsletter at. Picking the segment the incumbents skip means you are not fighting them where they are strong, you are serving people they…","content":"Big event aggregators cover major cities and leave smaller ones thin or empty, and that ignored geography is the niche Bogdan is aiming Event Newsletter at. Picking the segment the incumbents skip means you are not fighting them where they are strong, you are serving people they have written off. The room at Indie TM #5 agreed this was the right wedge: a real problem that nobody handles well for smaller places. He also leans on the retro design as a cheap form of differentiation, since personality costs little and stands out when you cannot win on scale.","category":"product","author":"Bogdan","author_url":"https://indie.md/people/bogdan-moldovean/","source_url":"https://indie.md/journeys/bogdan-event-newsletter/","source_type":"journey"}
{"id":"advice/weekly-newsletter-as-low-maintenance-format","type":"advice","url":"https://indie.md/advice/weekly-newsletter-as-low-maintenance-format/","markdown_url":"https://indie.md/advice/weekly-newsletter-as-low-maintenance-format.md","title":"Use a weekly newsletter as a low-maintenance product format","description":"Bogdan chose a weekly newsletter for Event Newsletter partly because the format itself is forgiving: a once-a-week cadence sets honest expectations and removes the pressure of anything real-time. Email reaches people in a place they already check rather than competing for attent…","content":"Bogdan chose a weekly newsletter for Event Newsletter partly because the format itself is forgiving: a once-a-week cadence sets honest expectations and removes the pressure of anything real-time. Email reaches people in a place they already check rather than competing for attention as one more app to open. For a project run in the margins, the delivery format can do real work to keep maintenance low. The cadence you promise is a product decision, so pick one your life can actually sustain.","category":"distribution","author":"Bogdan","author_url":"https://indie.md/people/bogdan-moldovean/","source_url":"https://indie.md/journeys/bogdan-event-newsletter/","source_type":"journey"}
{"id":"advice/be-the-loudest-learner-in-the-room","type":"advice","url":"https://indie.md/advice/be-the-loudest-learner-in-the-room/","markdown_url":"https://indie.md/advice/be-the-loudest-learner-in-the-room.md","title":"Be the loudest learner in the room","description":"Bogdan was the most active questioner at Indie TM #5, and being the loudest learner is exactly how he walked out with a crash course in the SEO he had not started yet. A room full of builders is a free education, but only for the person willing to keep asking instead of nodding …","content":"Bogdan was the most active questioner at Indie TM #5, and being the loudest learner is exactly how he walked out with a crash course in the SEO he had not started yet. A room full of builders is a free education, but only for the person willing to keep asking instead of nodding along to protect their ego. He has no SEO results to show, only a list of things to try, and that is the honest output of an evening spent learning out loud. When you are early and behind on something, the fastest way to catch up is to stop pretending you already know it.","category":"mindset","author":"Bogdan","author_url":"https://indie.md/people/bogdan-moldovean/","source_url":"https://indie.md/journeys/bogdan-event-newsletter/","source_type":"journey"}
{"id":"advice/from-personal-fix-to-product","type":"advice","url":"https://indie.md/advice/from-personal-fix-to-product/","markdown_url":"https://indie.md/advice/from-personal-fix-to-product.md","title":"A personal fix becomes a product when others share the pain","description":"SoundScrub began as a script Camil wrote to clean the background noise out of his own holiday footage. The leap to a product came from one question: do enough other people have this exact pain? Scratching your own itch is a great way to start, but it only becomes a business when…","content":"SoundScrub began as a script Camil wrote to clean the background noise out of his own holiday footage. The leap to a product came from one question: do enough other people have this exact pain? Scratching your own itch is a great way to start, but it only becomes a business when you confirm the itch is widely shared and worth paying to scratch. Build the thing that solves your problem first, because you understand it deeply, then go check that travelers and videographers are loudly describing the same problem before you commit to productizing it.","category":"product","author":"Camil","author_url":"https://indie.md/people/camil/","source_url":"https://indie.md/journeys/camil-soundscrub/","source_type":"journey"}
{"id":"advice/wrap-your-script-in-an-app","type":"advice","url":"https://indie.md/advice/wrap-your-script-in-an-app/","markdown_url":"https://indie.md/advice/wrap-your-script-in-an-app.md","title":"Wrap your script in an app for the people who fear the terminal","description":"Camil's noise-removal script already worked; the product was wrapping it in a desktop app for everyone who would never touch a terminal. The market for a command-line tool is other developers; the market for the same capability behind a clean interface is everyone. If you have a…","content":"Camil's noise-removal script already worked; the product was wrapping it in a desktop app for everyone who would never touch a terminal. The market for a command-line tool is other developers; the market for the same capability behind a clean interface is everyone. If you have a script that genuinely solves a problem, the productizing work is mostly removing the technical barriers around it, not adding features. A good interface over a working script reaches an audience an order of magnitude larger than the script ever could.","category":"product","author":"Camil","author_url":"https://indie.md/people/camil/","source_url":"https://indie.md/journeys/camil-soundscrub/","source_type":"journey"}
{"id":"advice/build-on-open-models","type":"advice","url":"https://indie.md/advice/build-on-open-models/","markdown_url":"https://indie.md/advice/build-on-open-models.md","title":"Stand on an open model and build the experience around it","description":"SoundScrub's audio separation is powered by Meta's open-source SAM Audio, not a model Camil trained. The leverage for a solo builder in 2026 is enormous: the hardest research is published and free, so your job is the product around it (the interface, the workflow, the trust). Do…","content":"SoundScrub's audio separation is powered by Meta's open-source SAM Audio, not a model Camil trained. The leverage for a solo builder in 2026 is enormous: the hardest research is published and free, so your job is the product around it (the interface, the workflow, the trust). Do not try to out-research a frontier lab. Find the capable open model that does the hard part, and compete on the experience, the focus, and the polish that the raw model will never have on its own.","category":"mindset","author":"Camil","author_url":"https://indie.md/people/camil/","source_url":"https://indie.md/journeys/camil-soundscrub/","source_type":"journey"}
{"id":"advice/turn-architecture-into-a-promise","type":"advice","url":"https://indie.md/advice/turn-architecture-into-a-promise/","markdown_url":"https://indie.md/advice/turn-architecture-into-a-promise.md","title":"Let your architecture hand you a feature worth selling","description":"SoundScrub uploads only the extracted audio, never the video, and deletes it right after, so users get a real privacy guarantee that fell out of the technical design rather than a marketing decision. When a property of your architecture happens to answer a fear your users have (…","content":"SoundScrub uploads only the extracted audio, never the video, and deletes it right after, so users get a real privacy guarantee that fell out of the technical design rather than a marketing decision. When a property of your architecture happens to answer a fear your users have (privacy, speed, offline use), name it and put it on the page. The most credible selling points are the ones that are simply true because of how the thing is built. Look at your own stack for promises you can already make and are not yet making.","category":"product","author":"Camil","author_url":"https://indie.md/people/camil/","source_url":"https://indie.md/journeys/camil-soundscrub/","source_type":"journey"}
{"id":"advice/name-your-tools-limits","type":"advice","url":"https://indie.md/advice/name-your-tools-limits/","markdown_url":"https://indie.md/advice/name-your-tools-limits.md","title":"Be honest about the limits of your tool","description":"Camil told the room exactly where SoundScrub breaks down (no spatial selection, a practical clip-length limit) and it made his strong claim, that it beats DaVinci Resolve at isolating a named sound, more believable, not less. Naming your limits signals that you understand your o…","content":"Camil told the room exactly where SoundScrub breaks down (no spatial selection, a practical clip-length limit) and it made his strong claim, that it beats DaVinci Resolve at isolating a named sound, more believable, not less. Naming your limits signals that you understand your own product and are not overselling, which is precisely what makes your genuine advantages credible. Buyers trust a founder who volunteers the edges. Hiding the limits only means the user discovers them later, at the worst possible moment, and stops trusting everything else you said.","category":"mindset","author":"Camil","author_url":"https://indie.md/people/camil/","source_url":"https://indie.md/journeys/camil-soundscrub/","source_type":"journey"}
{"id":"advice/one-product-per-year-forces-no","type":"advice","url":"https://indie.md/advice/one-product-per-year-forces-no/","markdown_url":"https://indie.md/advice/one-product-per-year-forces-no.md","title":"A one-product-per-year cadence forces you to say no to almost everything","description":"Every Cozmoslabs plugin takes about a year to ship properly, which means Cristian gets very few product decisions in a working lifetime. He treats that scarcity as the real filter: the question is never whether an idea is good, because plenty of good ideas appear, it is whether …","content":"Every Cozmoslabs plugin takes about a year to ship properly, which means Cristian gets very few product decisions in a working lifetime. He treats that scarcity as the real filter: the question is never whether an idea is good, because plenty of good ideas appear, it is whether this one is worth giving up a whole year of everything else. That opportunity cost makes saying no the default and saying yes a rare, deliberate act. When each commitment costs a year, the discipline is not picking winners, it is refusing the merely-good in favor of the truly worth it.","category":"mindset","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","source_url":"https://indie.md/journeys/cristian-cozmoslabs/","source_type":"journey"}
{"id":"advice/annual-licensing-is-a-durable-model","type":"advice","url":"https://indie.md/advice/annual-licensing-is-a-durable-model/","markdown_url":"https://indie.md/advice/annual-licensing-is-a-durable-model.md","title":"Annual licensing and renewals fund the long game","description":"Cozmoslabs runs on the WordPress ecosystem's standard model: customers buy an annual license and renew it for ongoing updates and support. At Indie TM #6 Cristian contrasted this with one-time pricing, noting that the WordPress economy lives on yearly renewals rather than launch…","content":"Cozmoslabs runs on the WordPress ecosystem's standard model: customers buy an annual license and renew it for ongoing updates and support. At Indie TM #6 Cristian contrasted this with one-time pricing, noting that the WordPress economy lives on yearly renewals rather than launch-day spikes. The recurring base is exactly what makes a year-long build cycle affordable, because the business is not betting everything on a single sale. When your model rewards the steady renewal instead of the one-off purchase, you can afford to build slowly and think in decades.","category":"business","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","source_url":"https://indie.md/journeys/cristian-cozmoslabs/","source_type":"journey"}
{"id":"advice/build-on-an-existing-platform-ecosystem","type":"advice","url":"https://indie.md/advice/build-on-an-existing-platform-ecosystem/","markdown_url":"https://indie.md/advice/build-on-an-existing-platform-ecosystem.md","title":"Build inside an existing platform ecosystem, not standalone","description":"Cozmoslabs builds plugins on top of WordPress rather than launching standalone software, and that decision is itself a distribution strategy. The platform already carries the users, the install base, and the demand, so a plugin meets people inside a tool they have already chosen…","content":"Cozmoslabs builds plugins on top of WordPress rather than launching standalone software, and that decision is itself a distribution strategy. The platform already carries the users, the install base, and the demand, so a plugin meets people inside a tool they have already chosen instead of asking them to adopt something new. Cristian's products solve specific problems for an audience that is already present, which removes the hardest part of distribution. When a large ecosystem already holds your buyers, building inside it can beat building beside it.","category":"distribution","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","source_url":"https://indie.md/journeys/cristian-cozmoslabs/","source_type":"journey"}
{"id":"advice/one-brand-many-plugins","type":"advice","url":"https://indie.md/advice/one-brand-many-plugins/","markdown_url":"https://indie.md/advice/one-brand-many-plugins.md","title":"Run a multi-product portfolio under one trusted brand","description":"Cozmoslabs ships several distinct plugins (TranslatePress, Profile Builder, Paid Member Subscriptions) under one brand rather than spinning up a separate identity for each. The shared brand, audience, and content foundation mean a new product inherits the trust and SEO authority…","content":"Cozmoslabs ships several distinct plugins (TranslatePress, Profile Builder, Paid Member Subscriptions) under one brand rather than spinning up a separate identity for each. The shared brand, audience, and content foundation mean a new product inherits the trust and SEO authority the earlier ones built, instead of starting from zero. A customer who already relies on one Cozmoslabs plugin is a warm prospect for the next. When your products serve the same broad audience, keeping them under one roof compounds every audience and trust asset you have already earned.","category":"business","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","source_url":"https://indie.md/journeys/cristian-cozmoslabs/","source_type":"journey"}
{"id":"advice/decade-of-shipping-is-the-moat","type":"advice","url":"https://indie.md/advice/decade-of-shipping-is-the-moat/","markdown_url":"https://indie.md/advice/decade-of-shipping-is-the-moat.md","title":"Longevity across a decade is the real moat","description":"After more than ten years of shipping, the thing that defends Cozmoslabs is not a single feature but its sheer durability. Content has aged into authority, plugins have aged into reliability, and the brand has aged into trust, and none of that can be cloned by a competitor launc…","content":"After more than ten years of shipping, the thing that defends Cozmoslabs is not a single feature but its sheer durability. Content has aged into authority, plugins have aged into reliability, and the brand has aged into trust, and none of that can be cloned by a competitor launching something flashier next month. Cristian's pickiness and slow pace look like handicaps in a market obsessed with speed, yet across a decade they are precisely what made the business hard to displace. Longevity is not a byproduct of the strategy, it is the moat the strategy was built to create.","category":"mindset","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","source_url":"https://indie.md/journeys/cristian-cozmoslabs/","source_type":"journey"}
{"id":"advice/design-for-the-data-class-from-day-one","type":"advice","url":"https://indie.md/advice/design-for-the-data-class-from-day-one/","markdown_url":"https://indie.md/advice/design-for-the-data-class-from-day-one.md","title":"In a regulated vertical, the data class is the product spec","description":"When Dentor stores diagnoses and dental images, it is handling special-category health data under Article 9 of the GDPR, which is prohibited by default and allowed only under strict conditions. For a vertical SaaS in a regulated space, that data class dictates the architecture b…","content":"When Dentor stores diagnoses and dental images, it is handling special-category health data under Article 9 of the GDPR, which is prohibited by default and allowed only under strict conditions. For a vertical SaaS in a regulated space, that data class dictates the architecture before a single feature does: encryption, pseudonymization, access control, a DPIA, and a processor agreement are not add-ons, they are the schema. Find out which regulated data class you are touching before you design the first table, and let it shape the product from day one. Retrofitting compliance onto a finished app is far more expensive than building for it from the start.","category":"product","author":"Doru","author_url":"https://indie.md/people/doru-bota/","source_url":"https://indie.md/journeys/doru-dentor/","source_type":"journey"}
{"id":"advice/sell-the-relief-not-the-feature-list","type":"advice","url":"https://indie.md/advice/sell-the-relief-not-the-feature-list/","markdown_url":"https://indie.md/advice/sell-the-relief-not-the-feature-list.md","title":"Sell the operational relief, not the feature list","description":"Dentor's feature list (booking link, reminders, patient records, auto-generated site) means nothing to a dentist until it is translated into relief: fewer interrupting phone calls and fewer empty chairs from no-shows. Buyers do not purchase capabilities, they purchase the remova…","content":"Dentor's feature list (booking link, reminders, patient records, auto-generated site) means nothing to a dentist until it is translated into relief: fewer interrupting phone calls and fewer empty chairs from no-shows. Buyers do not purchase capabilities, they purchase the removal of a daily pain. Lead with the specific operational misery your product ends, in the buyer's own words, and keep the feature list for the spec page. The clinic owner does not care how it works; they care that Monday stops being chaos.","category":"product","author":"Doru","author_url":"https://indie.md/people/doru-bota/","source_url":"https://indie.md/journeys/doru-dentor/","source_type":"journey"}
{"id":"advice/match-the-channel-to-the-buyer","type":"advice","url":"https://indie.md/advice/match-the-channel-to-the-buyer/","markdown_url":"https://indie.md/advice/match-the-channel-to-the-buyer.md","title":"Match the channel to the buyer, even when it does not scale","description":"Doru's cold email campaign for Dentor produced nothing; walking into clinics and pitching owners in person produced customers. Cold email is the default because it scales from a laptop, but it assumes a buyer who reads cold email and trusts links from strangers. A local, high-tr…","content":"Doru's cold email campaign for Dentor produced nothing; walking into clinics and pitching owners in person produced customers. Cold email is the default because it scales from a laptop, but it assumes a buyer who reads cold email and trusts links from strangers. A local, high-trust, offline buyer like a dentist is the opposite of that. The channel has to match where the buyer's trust actually lives, not your preference for staying behind a screen. Early on, the unscalable channel is often the only one that converts, so do it until you have proof and a reference list.","category":"distribution","author":"Doru","author_url":"https://indie.md/people/doru-bota/","source_url":"https://indie.md/journeys/doru-dentor/","source_type":"journey"}
{"id":"advice/turn-compliance-into-a-selling-point","type":"advice","url":"https://indie.md/advice/turn-compliance-into-a-selling-point/","markdown_url":"https://indie.md/advice/turn-compliance-into-a-selling-point.md","title":"Turn compliance from a burden into a selling point","description":"The Article 9 requirements that make Dentor expensive to build are the same requirements clinics are quietly anxious about for their own data handling. Done properly and shown honestly (not a \"GDPR Compliant\" badge, but a real, explained posture on consent and data protection), …","content":"The Article 9 requirements that make Dentor expensive to build are the same requirements clinics are quietly anxious about for their own data handling. Done properly and shown honestly (not a \"GDPR Compliant\" badge, but a real, explained posture on consent and data protection), compliance becomes a reason to choose you over the informal setup a clinic uses today. In a regulated market, the burden everyone else avoids is the differentiator. Do the hard work, then let prospects see that you did it, because their fear of getting it wrong is part of why they will pay you.","category":"business","author":"Doru","author_url":"https://indie.md/people/doru-bota/","source_url":"https://indie.md/journeys/doru-dentor/","source_type":"journey"}
{"id":"advice/a-regulated-niche-is-a-moat","type":"advice","url":"https://indie.md/advice/a-regulated-niche-is-a-moat/","markdown_url":"https://indie.md/advice/a-regulated-niche-is-a-moat.md","title":"A hard-to-serve, regulated niche is a moat","description":"Everything that makes Dentor hard (health-data compliance, slow offline buyers, in-person selling) is also what keeps casual competitors out. A market that punishes shortcuts and rewards patience is one where a committed builder can win and then defend the position. The difficul…","content":"Everything that makes Dentor hard (health-data compliance, slow offline buyers, in-person selling) is also what keeps casual competitors out. A market that punishes shortcuts and rewards patience is one where a committed builder can win and then defend the position. The difficulty is not a reason to avoid the niche, it is the reason the niche is worth owning. When you find a vertical where the barriers are real (regulation, trust, an unglamorous sales motion), the same walls that slow you down will keep the next person out once you are inside.","category":"mindset","author":"Doru","author_url":"https://indie.md/people/doru-bota/","source_url":"https://indie.md/journeys/doru-dentor/","source_type":"journey"}
{"id":"advice/the-constraint-is-the-moat","type":"advice","url":"https://indie.md/advice/the-constraint-is-the-moat/","markdown_url":"https://indie.md/advice/the-constraint-is-the-moat.md","title":"Choose the market where SaaS competitors cannot follow","description":"AISafe sells into corporate networks, regulated industries, and air-gapped deployments, environments where running as a SaaS is simply not an option. Most security competitors are SaaS-only because it is cheaper and faster to build, which means they physically cannot serve a buy…","content":"AISafe sells into corporate networks, regulated industries, and air-gapped deployments, environments where running as a SaaS is simply not an option. Most security competitors are SaaS-only because it is cheaper and faster to build, which means they physically cannot serve a buyer who needs the tool inside their own network and compliance boundary. Fineas treats that requirement not as a limitation to apologize for but as the moat itself: the constraint that makes the product harder to ship is the same constraint that locks the convenient competitors out. When a market punishes the lazy approach everyone else takes, being the one who does the hard version is the whole advantage.","category":"business","author":"Fineas Silaghi","author_url":"https://indie.md/people/fineas-silaghi/","source_url":"https://indie.md/journeys/fineas-aisafe/","source_type":"journey"}
{"id":"advice/build-security-from-an-attackers-eye","type":"advice","url":"https://indie.md/advice/build-security-from-an-attackers-eye/","markdown_url":"https://indie.md/advice/build-security-from-an-attackers-eye.md","title":"Build the security product from an attacker's eye","description":"Fineas came to AISafe from offensive security: a researcher and CTF player whose habit was to dive into hard systems and find ways to exploit them. Building a security product on top of that background is an advantage, because the person designing it already knows which assumpti…","content":"Fineas came to AISafe from offensive security: a researcher and CTF player whose habit was to dive into hard systems and find ways to exploit them. Building a security product on top of that background is an advantage, because the person designing it already knows which assumptions break under a real attack and which ones an attacker walks straight through. Founders who only ever read the documentation tend to protect against the threats they can imagine; founders who spent years attacking understand the threats that actually get used. If your edge is knowing how to break something, the strongest product you can build is the one shaped by that exact knowledge.","category":"product","author":"Fineas Silaghi","author_url":"https://indie.md/people/fineas-silaghi/","source_url":"https://indie.md/journeys/fineas-aisafe/","source_type":"journey"}
{"id":"advice/the-buyer-is-procurement-and-compliance","type":"advice","url":"https://indie.md/advice/the-buyer-is-procurement-and-compliance/","markdown_url":"https://indie.md/advice/the-buyer-is-procurement-and-compliance.md","title":"Sell to procurement and compliance, not just the end user","description":"For AISafe, the people who decide are not only the engineers who would run the tool; they are the procurement and compliance functions that sign off on it. The room made the point concrete on pricing: a corporation of a certain size already has a budget line for your category an…","content":"For AISafe, the people who decide are not only the engineers who would run the tool; they are the procurement and compliance functions that sign off on it. The room made the point concrete on pricing: a corporation of a certain size already has a budget line for your category and a procurement team used to spending it, and those gatekeepers care that the software stays inside their network, respects their compliance boundary, and produces a clean audit trail. Fineas treats them as the actual customer, which means the pitch has to satisfy people who never touch the product but control whether it ships. When you sell into the enterprise, design the demo for the user and the paperwork for procurement, because both have to say yes.","category":"distribution","author":"Fineas Silaghi","author_url":"https://indie.md/people/fineas-silaghi/","source_url":"https://indie.md/journeys/fineas-aisafe/","source_type":"journey"}
{"id":"advice/let-on-prem-support-reshape-the-company","type":"advice","url":"https://indie.md/advice/let-on-prem-support-reshape-the-company/","markdown_url":"https://indie.md/advice/let-on-prem-support-reshape-the-company.md","title":"Let the on-prem support reality reshape the whole company","description":"When AISafe runs inside a customer network, Fineas loses live logs, the freedom to hotfix, and any telemetry he did not contractually negotiate. Beyond what that does to the price, it reshapes how the company is built: support has to be staffed for blind debugging, the software …","content":"When AISafe runs inside a customer network, Fineas loses live logs, the freedom to hotfix, and any telemetry he did not contractually negotiate. Beyond what that does to the price, it reshapes how the company is built: support has to be staffed for blind debugging, the software has to be written to be diagnosable without a live connection, and the whole engineering culture has to absorb slower, more deliberate releases. Founders selling on-prem should treat the support model as an architectural and organizational decision, not only a pricing input. The way you will have to support the product after the sale should influence how you build the product and the team long before the first contract is signed.","category":"business","author":"Fineas Silaghi","author_url":"https://indie.md/people/fineas-silaghi/","source_url":"https://indie.md/journeys/fineas-aisafe/","source_type":"journey"}
{"id":"advice/bring-your-hardest-question-to-the-room","type":"advice","url":"https://indie.md/advice/bring-your-hardest-question-to-the-room/","markdown_url":"https://indie.md/advice/bring-your-hardest-question-to-the-room.md","title":"Bring your hardest unanswered question, not a polished pitch","description":"At Indie TM #7, Fineas took the floor with a question rather than a pitch: how do you price an on-prem deployment when the product already works? Because he led with the thing he had genuinely not solved, the room full of people who had shipped enterprise software handed him two…","content":"At Indie TM #7, Fineas took the floor with a question rather than a pitch: how do you price an on-prem deployment when the product already works? Because he led with the thing he had genuinely not solved, the room full of people who had shipped enterprise software handed him two concrete answers instead of polite applause for a demo. The reflex to present only the finished, impressive parts wastes the room, because the finished parts do not need help. Walk in with the single hardest open question you have, and let the people who have already been where you are going do the part you cannot do alone.","category":"mindset","author":"Fineas Silaghi","author_url":"https://indie.md/people/fineas-silaghi/","source_url":"https://indie.md/journeys/fineas-aisafe/","source_type":"journey"}
{"id":"advice/make-the-right-thing-the-default","type":"advice","url":"https://indie.md/advice/make-the-right-thing-the-default/","markdown_url":"https://indie.md/advice/make-the-right-thing-the-default.md","title":"Encode the best practice so the right path is the easy one","description":"Everyone agrees structured interviews work, and almost nobody runs them, because doing it right is inconvenient under pressure. Pace closes that gap by building the framework into the workflow, so the structured interview becomes the path of least resistance instead of a discipl…","content":"Everyone agrees structured interviews work, and almost nobody runs them, because doing it right is inconvenient under pressure. Pace closes that gap by building the framework into the workflow, so the structured interview becomes the path of least resistance instead of a discipline you have to summon. The richest product territory is any practice that experts endorse and operators skip because it is annoying: automated tests, double-entry bookkeeping, security keys, structured interviews. Build the tool that makes the correct thing the easy thing, and the onboarding pitch writes itself.","category":"product","author":"Flavius D.","author_url":"https://indie.md/people/flavius/","source_url":"https://indie.md/journeys/flavius-pace/","source_type":"journey"}
{"id":"advice/automate-the-tax-keep-the-judgment","type":"advice","url":"https://indie.md/advice/automate-the-tax-keep-the-judgment/","markdown_url":"https://indie.md/advice/automate-the-tax-keep-the-judgment.md","title":"Automate the operational tax, not the human judgment","description":"Pace does not decide who gets hired; it removes the 40 minutes of note-taking, write-ups, and scorecard wrangling around each interview so the human can focus on judgment. For tools that sit on high-stakes human decisions, that line matters: automate the busywork that surrounds …","content":"Pace does not decide who gets hired; it removes the 40 minutes of note-taking, write-ups, and scorecard wrangling around each interview so the human can focus on judgment. For tools that sit on high-stakes human decisions, that line matters: automate the busywork that surrounds the decision, and leave the decision to the person. Buyers trust a tool that makes them faster far more than one that tries to replace their judgment, and the busywork is where the real time is lost anyway. Find the operational tax around the decision and kill it, but keep your hands off the decision itself.","category":"product","author":"Flavius D.","author_url":"https://indie.md/people/flavius/","source_url":"https://indie.md/journeys/flavius-pace/","source_type":"journey"}
{"id":"advice/separate-performance-from-fit","type":"advice","url":"https://indie.md/advice/separate-performance-from-fit/","markdown_url":"https://indie.md/advice/separate-performance-from-fit.md","title":"Score interview performance and job fit as separate axes","description":"Pace scores every candidate on two independent axes: how they performed in the interview, and how well they fit the role. A strong performer who is a poor fit and a weak performer who is a great fit are different decisions, and averaging them into one number erases exactly the i…","content":"Pace scores every candidate on two independent axes: how they performed in the interview, and how well they fit the role. A strong performer who is a poor fit and a weak performer who is a great fit are different decisions, and averaging them into one number erases exactly the information you need. Whenever you are evaluating something multi-dimensional (a hire, a feature, a deal), resist the single composite score. Keep the axes separate so you can see the trade-off you are actually making instead of hiding it inside an average.","category":"mindset","author":"Flavius D.","author_url":"https://indie.md/people/flavius/","source_url":"https://indie.md/journeys/flavius-pace/","source_type":"journey"}
{"id":"advice/finish-product-one-first","type":"advice","url":"https://indie.md/advice/finish-product-one-first/","markdown_url":"https://indie.md/advice/finish-product-one-first.md","title":"Finish the first product before chasing the adjacent one","description":"Mid-demo, Flavius floated an exciting second product (automated code assessment) and the room told him to bury it until Pace has paying customers. The adjacent idea always looks more appealing than the one in front of you, because it is unspoiled by the boring work of actually c…","content":"Mid-demo, Flavius floated an exciting second product (automated code assessment) and the room told him to bury it until Pace has paying customers. The adjacent idea always looks more appealing than the one in front of you, because it is unspoiled by the boring work of actually closing customers. That appeal is the trap: every hour on product two is an hour product one does not get, and product one is the one that has to pay the bills. Write the second idea down, then go back to making the first one sell.","category":"product","author":"Flavius D.","author_url":"https://indie.md/people/flavius/","source_url":"https://indie.md/journeys/flavius-pace/","source_type":"journey"}
{"id":"advice/win-one-vertical-not-all-roles","type":"advice","url":"https://indie.md/advice/win-one-vertical-not-all-roles/","markdown_url":"https://indie.md/advice/win-one-vertical-not-all-roles.md","title":"Be the best tool for one vertical, not an acceptable one for all","description":"Pace could try to serve every kind of hiring, or it could be the unmistakably best tool for technical interviews and own that vertical completely. A horizontal tool that is acceptable everywhere loses to a vertical tool that is excellent in one place, because the buyer in that p…","content":"Pace could try to serve every kind of hiring, or it could be the unmistakably best tool for technical interviews and own that vertical completely. A horizontal tool that is acceptable everywhere loses to a vertical tool that is excellent in one place, because the buyer in that place feels it was built for them. Narrowing the target sharpens the features, the copy, and the demo all at once. Pick the one vertical where you can be the obvious best choice, win it, and expand from a position of strength rather than spreading thin from the start.","category":"business","author":"Flavius D.","author_url":"https://indie.md/people/flavius/","source_url":"https://indie.md/journeys/flavius-pace/","source_type":"journey"}
{"id":"advice/win-a-focused-lane","type":"advice","url":"https://indie.md/advice/win-a-focused-lane/","markdown_url":"https://indie.md/advice/win-a-focused-lane.md","title":"Win a focused lane instead of matching funded incumbents feature for feature","description":"When Greg entered the customer success category, well-funded incumbents were racing to define it, and the obvious move was to match them feature for feature. He did the opposite: rather than build a sprawling suite he could never out-resource, he went deep on the one layer every…","content":"When Greg entered the customer success category, well-funded incumbents were racing to define it, and the obvious move was to match them feature for feature. He did the opposite: rather than build a sprawling suite he could never out-resource, he went deep on the one layer every team in that category needs and few do really well, customer feedback measurement (NPS, then CSAT and CES). A focused product that nails a single job beats a broad one that does ten jobs adequately, and that edge is sharpest when you are bootstrapped and your competitors have raised serious money. Pick the wedge you can be the best in the world at, and let the incumbents carry the cost of trying to be everything to everyone.","category":"product","author":"Greg","author_url":"https://indie.md/people/grigore-raileanu/","source_url":"https://indie.md/journeys/grigore-retently/","source_type":"journey"}
{"id":"advice/outlasting-beats-outlaunching","type":"advice","url":"https://indie.md/advice/outlasting-beats-outlaunching/","markdown_url":"https://indie.md/advice/outlasting-beats-outlaunching.md","title":"Outlasting the category beats out-launching it","description":"Greg built Retently to be standing in year ten, not to win launch week. A product that has run profitably for more than a decade earns something a faster competitor cannot copy on demand: it has aged into reliability and trust, customers have integrated it and built workflows on…","content":"Greg built Retently to be standing in year ten, not to win launch week. A product that has run profitably for more than a decade earns something a faster competitor cannot copy on demand: it has aged into reliability and trust, customers have integrated it and built workflows on top of it, and that accumulated durability becomes the real moat. Optimizing for longevity instead of the early growth curve looks slow in a market obsessed with spikes, but the company that is still there after ten years, still trusted by its customers, is the one that compounded. Build for the decade, and durability stops being luck and becomes the strategy.","category":"mindset","author":"Greg","author_url":"https://indie.md/people/grigore-raileanu/","source_url":"https://indie.md/journeys/grigore-retently/","source_type":"journey"}
{"id":"advice/bootstrapped-answers-to-customers","type":"advice","url":"https://indie.md/advice/bootstrapped-answers-to-customers/","markdown_url":"https://indie.md/advice/bootstrapped-answers-to-customers.md","title":"Bootstrapped and profitable means your roadmap answers to customers, not investors","description":"Retently is bootstrapped and profitable, so the people it answers to are its customers rather than a board or an investor with an exit timeline. Greg treats that independence as a feature customers can feel: the product stays stable and present, there is no pressure to pivot awa…","content":"Retently is bootstrapped and profitable, so the people it answers to are its customers rather than a board or an investor with an exit timeline. Greg treats that independence as a feature customers can feel: the product stays stable and present, there is no pressure to pivot away from the people who depend on it, and there is no risk of it being sold off and shut down. Teams trust a feedback platform more when they know it will still be there next year, run by the people who built it. Owning the business outright is what lets a founder optimize for the customer's decade instead of an investor's quarter.","category":"business","author":"Greg","author_url":"https://indie.md/people/grigore-raileanu/","source_url":"https://indie.md/journeys/grigore-retently/","source_type":"journey"}
{"id":"advice/help-teams-migrate-safely","type":"advice","url":"https://indie.md/advice/help-teams-migrate-safely/","markdown_url":"https://indie.md/advice/help-teams-migrate-safely.md","title":"Be ready to help teams migrate safely when a tool they relied on shuts down","description":"When Delighted wound down, thousands of teams needed a new home for their feedback programs overnight, and Greg's read is that the right move is to be the safe place to land rather than to gloat over a windfall. A clean migration path, clear positioning, and the least possible f…","content":"When Delighted wound down, thousands of teams needed a new home for their feedback programs overnight, and Greg's read is that the right move is to be the safe place to land rather than to gloat over a windfall. A clean migration path, clear positioning, and the least possible friction for a buyer who already knows what they need can move more revenue than any cold-acquisition push, and helping a team migrate without losing their history earns trust a pitch cannot. Watch the incumbents in your category and be ready to receive their customers the moment one exits. Make the switch safe and easy, and the customers follow.","category":"distribution","author":"Greg","author_url":"https://indie.md/people/grigore-raileanu/","source_url":"https://indie.md/journeys/grigore-retently/","source_type":"journey"}
{"id":"advice/value-compounds-with-data","type":"advice","url":"https://indie.md/advice/value-compounds-with-data/","markdown_url":"https://indie.md/advice/value-compounds-with-data.md","title":"A feedback platform's value compounds with the data and integrations built on it","description":"The longer a customer runs Retently, the more it is worth to them: years of NPS and CSAT history to trend against, integrations wired into their stack, and workflows the team relies on. Greg built around the idea that the real value of a feedback platform is not any single scree…","content":"The longer a customer runs Retently, the more it is worth to them: years of NPS and CSAT history to trend against, integrations wired into their stack, and workflows the team relies on. Greg built around the idea that the real value of a feedback platform is not any single screen but everything that accumulates on top of it over time. That compounding is good for the customer, whose data only gets richer and more useful, and it is what turns a tool into something teams stay with for years instead of reshopping every renewal. Build for the value that deepens with use, not just the feature that demos well on day one.","category":"product","author":"Greg","author_url":"https://indie.md/people/grigore-raileanu/","source_url":"https://indie.md/journeys/grigore-retently/","source_type":"journey"}
{"id":"advice/let-the-framework-do-the-plumbing","type":"advice","url":"https://indie.md/advice/let-the-framework-do-the-plumbing/","markdown_url":"https://indie.md/advice/let-the-framework-do-the-plumbing.md","title":"Let the standard framework handle the cross-platform plumbing","description":"Laura ships in every major plugin format on macOS and Windows because JUCE, the standard audio framework, handles the brutal cross-format, cross-platform export. Ionut writes the sound once and lets the framework do the part that would otherwise consume a solo developer's whole …","content":"Laura ships in every major plugin format on macOS and Windows because JUCE, the standard audio framework, handles the brutal cross-format, cross-platform export. Ionut writes the sound once and lets the framework do the part that would otherwise consume a solo developer's whole timeline. In any domain with a mature standard framework, the leverage is to stand on it for the undifferentiated plumbing and spend your scarce time on the part that is actually yours. Do not hand-roll what a battle-tested framework already solves for everyone.","category":"product","author":"Ionut F.","author_url":"https://indie.md/people/ionut/","source_url":"https://indie.md/journeys/ionut-laura/","source_type":"journey"}
{"id":"advice/sell-a-promise-subscriptions-cant-make","type":"advice","url":"https://indie.md/advice/sell-a-promise-subscriptions-cant-make/","markdown_url":"https://indie.md/advice/sell-a-promise-subscriptions-cant-make.md","title":"A perpetual license is a promise no subscription can match","description":"Laura is a one-time 69 dollar purchase with lifetime updates and no telemetry, and that perpetual license is itself the pitch: own it once, every future build is free, forever. A subscription product cannot structurally make that promise, which means it is a differentiator you g…","content":"Laura is a one-time 69 dollar purchase with lifetime updates and no telemetry, and that perpetual license is itself the pitch: own it once, every future build is free, forever. A subscription product cannot structurally make that promise, which means it is a differentiator you get for free by choosing the model. When your audience is tired of renting (creative tools, developer tools, anything with subscription fatigue), perpetual ownership is not money left on the table, it is a competitive weapon. Sometimes the pricing model is the marketing.","category":"business","author":"Ionut F.","author_url":"https://indie.md/people/ionut/","source_url":"https://indie.md/journeys/ionut-laura/","source_type":"journey"}
{"id":"advice/compete-on-taste-not-tech","type":"advice","url":"https://indie.md/advice/compete-on-taste-not-tech/","markdown_url":"https://indie.md/advice/compete-on-taste-not-tech.md","title":"In a craft market, the moat is taste, not engineering","description":"The defensible part of Laura is not the code, it is the sound: a recognizable character and the trust producers place in the Lost Synapse name. In creative tools, taste and craft are the moat, because the underlying engineering is increasingly available to everyone. If you compe…","content":"The defensible part of Laura is not the code, it is the sound: a recognizable character and the trust producers place in the Lost Synapse name. In creative tools, taste and craft are the moat, because the underlying engineering is increasingly available to everyone. If you compete in a market where the output is judged by feel (audio, design, writing tools), invest in developing a recognizable point of view, not just shipping features. The taste is the part that compounds and the part nobody can fork.","category":"mindset","author":"Ionut F.","author_url":"https://indie.md/people/ionut/","source_url":"https://indie.md/journeys/ionut-laura/","source_type":"journey"}
{"id":"advice/scope-one-well-made-thing","type":"advice","url":"https://indie.md/advice/scope-one-well-made-thing/","markdown_url":"https://indie.md/advice/scope-one-well-made-thing.md","title":"Scope one well-made instrument, not a do-everything synth","description":"Laura is four oscillator engines, one signal path, a mod matrix, and one delightful \"roll the dice\" feature, aimed at a specific kind of sound designer. It is deliberately not a synth that tries to do everything. A single, well-scoped product that one type of user reaches for in…","content":"Laura is four oscillator engines, one signal path, a mod matrix, and one delightful \"roll the dice\" feature, aimed at a specific kind of sound designer. It is deliberately not a synth that tries to do everything. A single, well-scoped product that one type of user reaches for instinctively beats a feature-maximal one that serves no one in particular. Decide exactly who the tool is for and what the one delightful thing is, then resist the urge to add everything. Focus is what makes a solo product feel finished instead of thin.","category":"product","author":"Ionut F.","author_url":"https://indie.md/people/ionut/","source_url":"https://indie.md/journeys/ionut-laura/","source_type":"journey"}
{"id":"advice/use-the-channels-that-already-exist","type":"advice","url":"https://indie.md/advice/use-the-channels-that-already-exist/","markdown_url":"https://indie.md/advice/use-the-channels-that-already-exist.md","title":"Use the distribution channels that already exist","description":"Ionut does not need to build an audience for Laura from zero, because the audio-plugin world already has its gathering places: KVR Audio, Plugin Boutique, YouTube demos, and active producer communities. The distribution work is showing up where the buyers already are, not manufa…","content":"Ionut does not need to build an audience for Laura from zero, because the audio-plugin world already has its gathering places: KVR Audio, Plugin Boutique, YouTube demos, and active producer communities. The distribution work is showing up where the buyers already are, not manufacturing a new channel. Before you assume you have to grow your own audience the slow way, check whether your niche already has established marketplaces and communities. Plugging into existing demand is far faster than creating it, and most mature niches have more of it than newcomers expect.","category":"distribution","author":"Ionut F.","author_url":"https://indie.md/people/ionut/","source_url":"https://indie.md/journeys/ionut-laura/","source_type":"journey"}
{"id":"advice/solo-founder-by-design","type":"advice","url":"https://indie.md/advice/solo-founder-by-design/","markdown_url":"https://indie.md/advice/solo-founder-by-design.md","title":"Design the company around the life you need, even if that means no cofounders","description":"Mihai came out of a burnout at Microsoft with a hard constraint: he needed to remove obligatory human contact from his working life for a while. So he designed the company around that constraint, no cofounders, no employees, full control over every product decision. The standard…","content":"Mihai came out of a burnout at Microsoft with a hard constraint: he needed to remove obligatory human contact from his working life for a while. So he designed the company around that constraint, no cofounders, no employees, full control over every product decision. The standard advice says find a cofounder, split the load, hire early, but standard advice optimizes for growth, not for the founder staying functional. A company shaped around your actual capacity is one you can run for years; a company shaped around a template is one you abandon. Constraints like health, energy, and tolerance for people are real inputs to company design, not weaknesses to overcome. Decide what you need to stay in the game, then build the business that fits inside it.","category":"mindset","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/journeys/mihai-datadriven/","source_type":"journey"}
{"id":"advice/replace-the-bookmark-folder-workflow","type":"advice","url":"https://indie.md/advice/replace-the-bookmark-folder-workflow/","markdown_url":"https://indie.md/advice/replace-the-bookmark-folder-workflow.md","title":"Price against the manual workflow you replace, not the software you wrote","description":"Mihai's first serious customer was a security firm whose tender discovery process was a bookmark folder organized by county and an employee who opened town hall websites every single day. They happily paid 2,000 lei per month for complete automated coverage, a hundred times his …","content":"Mihai's first serious customer was a security firm whose tender discovery process was a bookmark folder organized by county and an employee who opened town hall websites every single day. They happily paid 2,000 lei per month for complete automated coverage, a hundred times his 19 lei list price at the time, because the alternative was a salary. The lesson is that software is not priced against its build cost or against other software, it is priced against the manual grind it replaces. Find the customer who is already paying a human to do the thing badly, and the budget already exists; you are not creating a line item, you are shrinking one. Before setting a price, ask what the current workflow costs in hours and salaries, and anchor there.","category":"business","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/journeys/mihai-datadriven/","source_type":"journey"}
{"id":"advice/read-the-documents-not-the-labels","type":"advice","url":"https://indie.md/advice/read-the-documents-not-the-labels/","markdown_url":"https://indie.md/advice/read-the-documents-not-the-labels.md","title":"Read the source documents, because official classifications lie","description":"Public tenders in Romania carry official CPV codes, a taxonomy of roughly 10,000 subcategories, and Mihai found the labels wrong often enough to be dangerous, including food accessories classified under laptops. So DataDriven ignores the metadata and reads the actual tender docu…","content":"Public tenders in Romania carry official CPV codes, a taxonomy of roughly 10,000 subcategories, and Mihai found the labels wrong often enough to be dangerous, including food accessories classified under laptops. So DataDriven ignores the metadata and reads the actual tender documentation, OCRing PDFs and scans, then classifies everything against a hand-built taxonomy of about 180 categories that mirrors how companies really describe their work. That is the product's core advantage: competitors who filter on the official codes inherit the errors, and their users miss winnable contracts. Whenever your product sits on top of someone else's data, ask whether the labels are trustworthy or just convenient. Going to the primary source is expensive, which is exactly why doing it becomes a moat.","category":"product","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/journeys/mihai-datadriven/","source_type":"journey"}
{"id":"advice/cold-email-runs-on-public-data","type":"advice","url":"https://indie.md/advice/cold-email-runs-on-public-data/","markdown_url":"https://indie.md/advice/cold-email-runs-on-public-data.md","title":"In a niche B2B market, public data plus cold email beats paid ads","description":"Google Ads sent Mihai visitors who could never buy: public tenders have eligibility requirements around revenue, staff, and certifications that an ad click cannot filter for. Cold email inverted the problem, because Romania's procurement system publishes exactly who participates…","content":"Google Ads sent Mihai visitors who could never buy: public tenders have eligibility requirements around revenue, staff, and certifications that an ad click cannot filter for. Cold email inverted the problem, because Romania's procurement system publishes exactly who participates in tenders, who wins them, and how to reach them. A firm that already bids on public contracts is pre-qualified by its own history, so the public record becomes the lead list. With a market of roughly 20,000 firms, a modest cold email setup beats an ad budget: the targeting information ads cannot access is sitting in the open data. Before paying platforms to guess at your buyer, check whether a public registry, license list, or procurement record already names every one of them.","category":"distribution","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/journeys/mihai-datadriven/","source_type":"journey"}
{"id":"advice/use-ai-to-derisk-a-database-migration","type":"advice","url":"https://indie.md/advice/use-ai-to-derisk-a-database-migration/","markdown_url":"https://indie.md/advice/use-ai-to-derisk-a-database-migration.md","title":"An AI translation layer can shrink a database migration from months to days","description":"Migrating from Cosmos DB to MongoDB is the kind of project that haunts a solo founder, so Mihai turned it into a verification problem instead of a rewrite. He had Claude build a translation layer for his queries, then ran the old Cosmos path and the new Mongo path in parallel, w…","content":"Migrating from Cosmos DB to MongoDB is the kind of project that haunts a solo founder, so Mihai turned it into a verification problem instead of a rewrite. He had Claude build a translation layer for his queries, then ran the old Cosmos path and the new Mongo path in parallel, with automated validation comparing outputs until the two systems agreed on everything. Once parity held, the cutover was boring, and the whole thing took two to three days. The pattern generalizes beyond databases: when replacing a load-bearing component, do not aim for a heroic big-bang rewrite, aim for a shim that lets old and new run side by side while machines check the diff. AI assistants are unusually good at generating exactly this kind of mechanical translation code that nobody wants to write by hand.","category":"product","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/journeys/mihai-datadriven/","source_type":"journey"}
{"id":"advice/watch-the-egress-not-the-compute","type":"advice","url":"https://indie.md/advice/watch-the-egress-not-the-compute/","markdown_url":"https://indie.md/advice/watch-the-egress-not-the-compute.md","title":"Cloud egress, not compute, is what eats a data-heavy product's margin","description":"Mihai's Azure bill was not dominated by the compute he had planned for, but by data movement he had never priced: documents flowing from the procurement system into processing, into storage, back out to jobs and users, culminating in a 700 EUR ingress charge in a single month. H…","content":"Mihai's Azure bill was not dominated by the compute he had planned for, but by data movement he had never priced: documents flowing from the procurement system into processing, into storage, back out to jobs and users, culminating in a 700 EUR ingress charge in a single month. Hyperscaler pricing makes exactly this traffic expensive while keeping headline compute prices attractive, which is why his migration to Hetzner dedicated servers and S3-compatible storage, plus a self-hosted OCR pipeline on a local GPU, cut a 2,500 to 3,000 EUR monthly burn to a fraction. If your product's core loop is moving files around, model the traffic before choosing infrastructure, because the cloud's convenience premium applies to every gigabyte, every direction, forever. Data-heavy products are precisely the ones where owning the pipes pays.","category":"business","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/journeys/mihai-datadriven/","source_type":"journey"}
{"id":"advice/ask-for-thirty-characters-then-do-the-setup","type":"advice","url":"https://indie.md/advice/ask-for-thirty-characters-then-do-the-setup/","markdown_url":"https://indie.md/advice/ask-for-thirty-characters-then-do-the-setup.md","title":"Ask for thirty characters at signup and do the setup for the user","description":"DataDriven's onboarding asks one thing: at least 30 characters describing the tenders you care about. AI converts that sentence into monitoring criteria, so the first login shows relevant results instead of an empty dashboard and a configuration wizard. Behavior then tunes the f…","content":"DataDriven's onboarding asks one thing: at least 30 characters describing the tenders you care about. AI converts that sentence into monitoring criteria, so the first login shows relevant results instead of an empty dashboard and a configuration wizard. Behavior then tunes the filters automatically, thumbs up and down, saves, navigation. Some users resist even that single question and want to see the app first, but Mihai holds the line, because without the sentence the first session shows noise, and the first session is where churn is decided. The general principle: do not make users configure your product, make them describe their problem in their own words, then configure it for them. One honest question plus AI setup beats a five-step wizard that gets skipped.","category":"product","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/journeys/mihai-datadriven/","source_type":"journey"}
{"id":"advice/publish-prices-in-a-contact-us-market","type":"advice","url":"https://indie.md/advice/publish-prices-in-a-contact-us-market/","markdown_url":"https://indie.md/advice/publish-prices-in-a-contact-us-market.md","title":"Publish your prices in a market that hides behind contact forms","description":"Every plan on DataDriven has a public price, topping out at 290 lei per month, in a category where the incumbent reflex is \"contact us for pricing.\" For small firms deciding whether to try a tool, the hidden price is a wall: it signals enterprise sales calls, negotiation, and wa…","content":"Every plan on DataDriven has a public price, topping out at 290 lei per month, in a category where the incumbent reflex is \"contact us for pricing.\" For small firms deciding whether to try a tool, the hidden price is a wall: it signals enterprise sales calls, negotiation, and wasted time, exactly what a two-person catering company will not endure. Transparent pricing lets the product sell itself to the long tail the incumbents ignore, and it filters out nobody who was actually going to pay. Mihai treats it as strategy, not cosmetics: his revenue is built from hundreds of small subscriptions rather than a handful of negotiated contracts, and that model only works when the price is on the page. If your competitors hide their prices, publishing yours is free positioning.","category":"business","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/journeys/mihai-datadriven/","source_type":"journey"}
{"id":"advice/the-boring-niche-is-the-moat","type":"advice","url":"https://indie.md/advice/the-boring-niche-is-the-moat/","markdown_url":"https://indie.md/advice/the-boring-niche-is-the-moat.md","title":"The boring, narrow niche is the moat","description":"OCRskill extracts structured data from procurement documents. It is not glamorous, and that is exactly why it is defensible. A narrow, unsexy, high-volume job is one most founders skip while looking for something more exciting, which leaves the field open to whoever is willing t…","content":"OCRskill extracts structured data from procurement documents. It is not glamorous, and that is exactly why it is defensible. A narrow, unsexy, high-volume job is one most founders skip while looking for something more exciting, which leaves the field open to whoever is willing to go deep on it. Mihai out-specializes general LLMs on document extraction precisely because he only does that one thing. Boring problems with real, repeated demand are where a solo builder can build something a frontier lab will never bother to beat.","category":"mindset","author":"Mihai","author_url":"https://indie.md/people/mihai-balint/","source_url":"https://indie.md/journeys/mihai-ocrskill/","source_type":"journey"}
{"id":"advice/own-your-compute-for-margin","type":"advice","url":"https://indie.md/advice/own-your-compute-for-margin/","markdown_url":"https://indie.md/advice/own-your-compute-for-margin.md","title":"Own your compute to keep a high-volume API profitable","description":"OCRskill runs on owned bare-metal hardware instead of rented per-call GPUs, and that is the reason the margins hold at volume. Per-call cloud inference is convenient at the start and brutal at scale: your cost grows in lockstep with every request, forever. For a product whose wh…","content":"OCRskill runs on owned bare-metal hardware instead of rented per-call GPUs, and that is the reason the margins hold at volume. Per-call cloud inference is convenient at the start and brutal at scale: your cost grows in lockstep with every request, forever. For a product whose whole job is to be cheap per call and run constantly, owning the compute converts an unbounded variable cost into a fixed one. If your product's economics depend on doing one expensive operation millions of times, model the bare-metal version before you assume the cloud is cheaper.","category":"business","author":"Mihai","author_url":"https://indie.md/people/mihai-balint/","source_url":"https://indie.md/journeys/mihai-ocrskill/","source_type":"journey"}
{"id":"advice/developer-experience-is-the-product","type":"advice","url":"https://indie.md/advice/developer-experience-is-the-product/","markdown_url":"https://indie.md/advice/developer-experience-is-the-product.md","title":"For a developer tool, the integration is the product","description":"OCRskill's customers are developers, and what they buy is not the OCR model, it is never having to write brittle string parsing again. The API takes a schema and returns a typed object that matches it. For a developer tool, the quality of the integration (how few steps it takes …","content":"OCRskill's customers are developers, and what they buy is not the OCR model, it is never having to write brittle string parsing again. The API takes a schema and returns a typed object that matches it. For a developer tool, the quality of the integration (how few steps it takes to go from request to usable data) is the actual product, and the underlying technology is just how you deliver it. Spend disproportionate effort on the API surface, the docs, and the first five minutes. That is the part your buyer experiences and the part they tell other developers about.","category":"product","author":"Mihai","author_url":"https://indie.md/people/mihai-balint/","source_url":"https://indie.md/journeys/mihai-ocrskill/","source_type":"journey"}
{"id":"advice/programmatic-pages-for-developer-tools","type":"advice","url":"https://indie.md/advice/programmatic-pages-for-developer-tools/","markdown_url":"https://indie.md/advice/programmatic-pages-for-developer-tools.md","title":"Programmatic SEO works for developer tools too","description":"SEO advice is usually framed around consumer products, which makes technical founders assume it does not apply to an API. It does. Build a page per document type, per use case, per integration, each answering a real question a developer searches before they commit to a tool. Add…","content":"SEO advice is usually framed around consumer products, which makes technical founders assume it does not apply to an API. It does. Build a page per document type, per use case, per integration, each answering a real question a developer searches before they commit to a tool. Add FAQ schema for the specific technical questions they ask. Developers Google their problems exactly like everyone else, and a tool that ranks for \"extract structured data from a PDF\" gets found at the moment of intent. Do not skip programmatic SEO just because your buyer writes code.","category":"seo","author":"Mihai","author_url":"https://indie.md/people/mihai-balint/","source_url":"https://indie.md/journeys/mihai-ocrskill/","source_type":"journey"}
{"id":"advice/let-price-do-the-selling","type":"advice","url":"https://indie.md/advice/let-price-do-the-selling/","markdown_url":"https://indie.md/advice/let-price-do-the-selling.md","title":"When you are far cheaper than the alternative, price sells itself","description":"OCRskill is so much cheaper per call than the general-LLM alternative that the price tag does part of the selling on its own. When you have a real structural cost advantage (a specialized model, owned hardware, a narrower problem), put the comparison front and centre instead of …","content":"OCRskill is so much cheaper per call than the general-LLM alternative that the price tag does part of the selling on its own. When you have a real structural cost advantage (a specialized model, owned hardware, a narrower problem), put the comparison front and centre instead of hiding it. A prospect who can see that you cost a fraction of the obvious alternative for the same or better result has most of the buying decision made already. A genuine cost advantage is a marketing asset, not just an accounting one.","category":"business","author":"Mihai","author_url":"https://indie.md/people/mihai-balint/","source_url":"https://indie.md/journeys/mihai-ocrskill/","source_type":"journey"}
{"id":"advice/choose-the-unglamorous-offline-niche","type":"advice","url":"https://indie.md/advice/choose-the-unglamorous-offline-niche/","markdown_url":"https://indie.md/advice/choose-the-unglamorous-offline-niche.md","title":"Choose a hard, offline, unglamorous niche on purpose","description":"Mile deliberately picked church management software, an offline, slow-moving, decidedly unglamorous niche, because that is precisely what keeps casual competitors away. Nobody is racing to pitch a church admin tool at a demo day, which leaves the field open to whoever is patient…","content":"Mile deliberately picked church management software, an offline, slow-moving, decidedly unglamorous niche, because that is precisely what keeps casual competitors away. Nobody is racing to pitch a church admin tool at a demo day, which leaves the field open to whoever is patient enough to learn the domain. A transaction-heavy organization with no software built for it is a genuine opportunity hiding behind a boring label. The unglamorous niche is not the consolation prize, it is the one a committed builder can own while everyone else chases something shinier.","category":"mindset","author":"Mile Rosu","author_url":"https://indie.md/people/mile-rosu/","source_url":"https://indie.md/journeys/mile-church-software/","source_type":"journey"}
{"id":"advice/distribution-before-code-for-slow-buyers","type":"advice","url":"https://indie.md/advice/distribution-before-code-for-slow-buyers/","markdown_url":"https://indie.md/advice/distribution-before-code-for-slow-buyers.md","title":"When the buyer is slow and offline, solve distribution before you write code","description":"For Mile's church software, the hard problem is not building it, it is reaching buyers who move slowly, decide over long cycles, and are nowhere near Product Hunt. When the buyer is that offline, distribution cannot be an afterthought you bolt on at launch, because there is no q…","content":"For Mile's church software, the hard problem is not building it, it is reaching buyers who move slowly, decide over long cycles, and are nowhere near Product Hunt. When the buyer is that offline, distribution cannot be an afterthought you bolt on at launch, because there is no quick launch channel waiting for you. Map the path to the buyer (who decides, how long it takes, which channel they trust) while the product is still a concept, and let that path shape what you build. Writing all the code first and discovering you cannot reach anyone is the most expensive order to do it in.","category":"distribution","author":"Mile Rosu","author_url":"https://indie.md/people/mile-rosu/","source_url":"https://indie.md/journeys/mile-church-software/","source_type":"journey"}
{"id":"advice/narrow-to-one-pain-before-the-suite","type":"advice","url":"https://indie.md/advice/narrow-to-one-pain-before-the-suite/","markdown_url":"https://indie.md/advice/narrow-to-one-pain-before-the-suite.md","title":"Nail one specific pain before you build the full suite","description":"Mile's instinct was the full church management suite (scheduling, memberships, donations, communications) and the room talked him down to one pain point first: billing, or scheduling, or member communication, solved completely. The biggest risk in a specific niche is building so…","content":"Mile's instinct was the full church management suite (scheduling, memberships, donations, communications) and the room talked him down to one pain point first: billing, or scheduling, or member communication, solved completely. The biggest risk in a specific niche is building something too generic to be worth switching to, a vague all-in-one that fixes nobody's actual Monday. A narrow tool that ends one real misery gives a buyer a concrete reason to say yes, and a wedge you can expand from later. Decide which single pain you will own, finish that, and earn the right to the suite instead of assuming it.","category":"product","author":"Mile Rosu","author_url":"https://indie.md/people/mile-rosu/","source_url":"https://indie.md/journeys/mile-church-software/","source_type":"journey"}
{"id":"advice/recruit-a-design-partner-to-co-build","type":"advice","url":"https://indie.md/advice/recruit-a-design-partner-to-co-build/","markdown_url":"https://indie.md/advice/recruit-a-design-partner-to-co-build.md","title":"Recruit a friendly customer as a design partner and co-build","description":"Rather than guess at church workflows from the outside, Mile's plan is to recruit one friendly church as a design partner and build the product alongside them. A design partner who lives the problem corrects your wrong assumptions before they become wrong code: the donation flow…","content":"Rather than guess at church workflows from the outside, Mile's plan is to recruit one friendly church as a design partner and build the product alongside them. A design partner who lives the problem corrects your wrong assumptions before they become wrong code: the donation flow that does not match how the treasurer works, the schedule you never thought to model. For early feedback, meet the buyer where they already are, in WhatsApp groups and local community channels, and target the people who handle the tech, the church IT contact or the volunteer keeping the spreadsheets alive. Co-building with one real customer beats a polished product designed for an imaginary one.","category":"product","author":"Mile Rosu","author_url":"https://indie.md/people/mile-rosu/","source_url":"https://indie.md/journeys/mile-church-software/","source_type":"journey"}
{"id":"advice/sell-on-the-buyers-timeline-not-yours","type":"advice","url":"https://indie.md/advice/sell-on-the-buyers-timeline-not-yours/","markdown_url":"https://indie.md/advice/sell-on-the-buyers-timeline-not-yours.md","title":"Sell into slow buyers on their timeline, not yours","description":"Churches buy slowly, so Mile's sale runs on the church's clock, not his own preference for a fast close. In a slow-moving, relationship-driven market, pushing for speed reads as not understanding the buyer, while patient, in-person presence reads as someone worth working with. T…","content":"Churches buy slowly, so Mile's sale runs on the church's clock, not his own preference for a fast close. In a slow-moving, relationship-driven market, pushing for speed reads as not understanding the buyer, while patient, in-person presence reads as someone worth working with. The long buying cycle is not a bug to fight, it is the texture of the relationship, and accepting it is part of the qualification. Show up, build the relationship the organization needs, and let the deal close when the buyer is ready instead of when your roadmap wants it to.","category":"distribution","author":"Mile Rosu","author_url":"https://indie.md/people/mile-rosu/","source_url":"https://indie.md/journeys/mile-church-software/","source_type":"journey"}
{"id":"advice/lead-with-the-painkiller-feature","type":"advice","url":"https://indie.md/advice/lead-with-the-painkiller-feature/","markdown_url":"https://indie.md/advice/lead-with-the-painkiller-feature.md","title":"Lead with the one feature that sells, not the feature list","description":"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 …","content":"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.","category":"product","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-renzi/","source_type":"journey"}
{"id":"advice/sell-relief-from-the-deadline","type":"advice","url":"https://indie.md/advice/sell-relief-from-the-deadline/","markdown_url":"https://indie.md/advice/sell-relief-from-the-deadline.md","title":"Sell relief from a specific, escalating, dated risk","description":"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 st…","content":"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.","category":"business","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-renzi/","source_type":"journey"}
{"id":"advice/fix-bounce-before-you-scale-traffic","type":"advice","url":"https://indie.md/advice/fix-bounce-before-you-scale-traffic/","markdown_url":"https://indie.md/advice/fix-bounce-before-you-scale-traffic.md","title":"Fix the bounce rate before you pour traffic into a page","description":"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. Diag…","content":"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.","category":"seo","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-renzi/","source_type":"journey"}
{"id":"advice/run-the-same-playbook-again","type":"advice","url":"https://indie.md/advice/run-the-same-playbook-again/","markdown_url":"https://indie.md/advice/run-the-same-playbook-again.md","title":"Run the same proven playbook on a new boring market","description":"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 beco…","content":"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.","category":"mindset","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-renzi/","source_type":"journey"}
{"id":"advice/local-regulation-is-a-moat","type":"advice","url":"https://indie.md/advice/local-regulation-is-a-moat/","markdown_url":"https://indie.md/advice/local-regulation-is-a-moat.md","title":"Local regulatory knowledge is a moat competitors lack","description":"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 …","content":"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.","category":"business","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-renzi/","source_type":"journey"}
{"id":"advice/product-simplest-version","type":"advice","url":"https://indie.md/advice/product-simplest-version/","markdown_url":"https://indie.md/advice/product-simplest-version.md","title":"Build the simplest version first","description":"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 us…","content":"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.","category":"product","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-singlefax/","source_type":"journey"}
{"id":"advice/product-remove-friction","type":"advice","url":"https://indie.md/advice/product-remove-friction/","markdown_url":"https://indie.md/advice/product-remove-friction.md","title":"Remove all friction: no signup, no subscription","description":"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 maki…","content":"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.","category":"product","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-singlefax/","source_type":"journey"}
{"id":"advice/seo-how-to-queries","type":"advice","url":"https://indie.md/advice/seo-how-to-queries/","markdown_url":"https://indie.md/advice/seo-how-to-queries.md","title":"SEO for 'how to' queries drives purchase-intent traffic","description":"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 pos…","content":"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.","category":"seo","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-singlefax/","source_type":"journey"}
{"id":"advice/business-premium-tier","type":"advice","url":"https://indie.md/advice/business-premium-tier/","markdown_url":"https://indie.md/advice/business-premium-tier.md","title":"Add a premium tier based on what customers ask for","description":"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.","content":"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.","category":"business","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-singlefax/","source_type":"journey"}
{"id":"advice/mindset-agency-superpower","type":"advice","url":"https://indie.md/advice/mindset-agency-superpower/","markdown_url":"https://indie.md/advice/mindset-agency-superpower.md","title":"Agency experience is a superpower for shipping fast","description":"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 bec…","content":"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.","category":"mindset","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/journeys/mircea-singlefax/","source_type":"journey"}
{"id":"advice/productize-a-rendering-technique-for-one-vertical","type":"advice","url":"https://indie.md/advice/productize-a-rendering-technique-for-one-vertical/","markdown_url":"https://indie.md/advice/productize-a-rendering-technique-for-one-vertical.md","title":"Productize a cutting-edge rendering technique for one concrete vertical","description":"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 particula…","content":"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.","category":"product","author":"Petru","author_url":"https://indie.md/people/petru-popa/","source_url":"https://indie.md/journeys/petru-oria/","source_type":"journey"}
{"id":"advice/browser-delivery-removes-the-install","type":"advice","url":"https://indie.md/advice/browser-delivery-removes-the-install/","markdown_url":"https://indie.md/advice/browser-delivery-removes-the-install.md","title":"Deliver in the browser so a tour is just a link that opens","description":"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 …","content":"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.","category":"product","author":"Petru","author_url":"https://indie.md/people/petru-popa/","source_url":"https://indie.md/journeys/petru-oria/","source_type":"journey"}
{"id":"advice/studio-service-before-self-serve","type":"advice","url":"https://indie.md/advice/studio-service-before-self-serve/","markdown_url":"https://indie.md/advice/studio-service-before-self-serve.md","title":"Start as a done-for-you studio before you ship a self-serve product","description":"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, w…","content":"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.","category":"business","author":"Petru","author_url":"https://indie.md/people/petru-popa/","source_url":"https://indie.md/journeys/petru-oria/","source_type":"journey"}
{"id":"advice/bring-big-domain-seo-patience-to-zero-authority","type":"advice","url":"https://indie.md/advice/bring-big-domain-seo-patience-to-zero-authority/","markdown_url":"https://indie.md/advice/bring-big-domain-seo-patience-to-zero-authority.md","title":"Bring big-domain SEO patience to a brand-new domain","description":"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…","content":"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.","category":"seo","author":"Petru","author_url":"https://indie.md/people/petru-popa/","source_url":"https://indie.md/journeys/petru-oria/","source_type":"journey"}
{"id":"advice/specialist-depth-lends-launch-credibility","type":"advice","url":"https://indie.md/advice/specialist-depth-lends-launch-credibility/","markdown_url":"https://indie.md/advice/specialist-depth-lends-launch-credibility.md","title":"Deep specialist expertise lends credibility to a fresh launch","description":"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 ot…","content":"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.","category":"mindset","author":"Petru","author_url":"https://indie.md/people/petru-popa/","source_url":"https://indie.md/journeys/petru-oria/","source_type":"journey"}
{"id":"advice/product-manual-curation","type":"advice","url":"https://indie.md/advice/product-manual-curation/","markdown_url":"https://indie.md/advice/product-manual-curation.md","title":"Manual curation is a moat, not a limitation","description":"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 …","content":"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.","category":"product","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-calm-companies/","source_type":"journey"}
{"id":"advice/mindset-personal-pain","type":"advice","url":"https://indie.md/advice/mindset-personal-pain/","markdown_url":"https://indie.md/advice/mindset-personal-pain.md","title":"Build from personal pain, not market research","description":"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 motiva…","content":"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.","category":"mindset","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-calm-companies/","source_type":"journey"}
{"id":"advice/business-ultra-low-price","type":"advice","url":"https://indie.md/advice/business-ultra-low-price/","markdown_url":"https://indie.md/advice/business-ultra-low-price.md","title":"Price so low it removes all friction","description":"$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 bud…","content":"$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.","category":"business","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-calm-companies/","source_type":"journey"}
{"id":"advice/seo-pain-point-content","type":"advice","url":"https://indie.md/advice/seo-pain-point-content/","markdown_url":"https://indie.md/advice/seo-pain-point-content.md","title":"SEO blog posts that solve real pain points drive organic growth","description":"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 frust…","content":"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.","category":"seo","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-calm-companies/","source_type":"journey"}
{"id":"advice/product-start-simple","type":"advice","url":"https://indie.md/advice/product-start-simple/","markdown_url":"https://indie.md/advice/product-start-simple.md","title":"Start with a spreadsheet, not a SaaS","description":"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 i…","content":"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.","category":"product","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-calm-companies/","source_type":"journey"}
{"id":"advice/let-domains-age-into-authority","type":"advice","url":"https://indie.md/advice/let-domains-age-into-authority/","markdown_url":"https://indie.md/advice/let-domains-age-into-authority.md","title":"Buy relevant domains early and let their authority age","description":"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…","content":"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.","category":"mindset","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-ebaza/","source_type":"journey"}
{"id":"advice/build-the-product-where-traffic-already-lives","type":"advice","url":"https://indie.md/advice/build-the-product-where-traffic-already-lives/","markdown_url":"https://indie.md/advice/build-the-product-where-traffic-already-lives.md","title":"Build the product where the traffic already lives","description":"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 …","content":"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.","category":"business","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-ebaza/","source_type":"journey"}
{"id":"advice/internal-linking-is-the-first-move","type":"advice","url":"https://indie.md/advice/internal-linking-is-the-first-move/","markdown_url":"https://indie.md/advice/internal-linking-is-the-first-move.md","title":"Internal linking is the first lever when a page starts ranking","description":"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 so…","content":"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.","category":"seo","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-ebaza/","source_type":"journey"}
{"id":"advice/make-the-cta-tell-the-truth","type":"advice","url":"https://indie.md/advice/make-the-cta-tell-the-truth/","markdown_url":"https://indie.md/advice/make-the-cta-tell-the-truth.md","title":"Never let a call to action lie about what it does","description":"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 n…","content":"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.","category":"product","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-ebaza/","source_type":"journey"}
{"id":"advice/marketplace-backlinks-beat-content-backlinks","type":"advice","url":"https://indie.md/advice/marketplace-backlinks-beat-content-backlinks/","markdown_url":"https://indie.md/advice/marketplace-backlinks-beat-content-backlinks.md","title":"For apps, a marketplace listing beats most content backlinks","description":"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 sa…","content":"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.","category":"seo","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/journeys/raul-ebaza/","source_type":"journey"}
{"id":"advice/translate-jargon-into-plain-english","type":"advice","url":"https://indie.md/advice/translate-jargon-into-plain-english/","markdown_url":"https://indie.md/advice/translate-jargon-into-plain-english.md","title":"Translate an invisible technical problem into plain English","description":"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 use…","content":"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.","category":"product","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/journeys/vali-doesmyemail/","source_type":"journey"}
{"id":"advice/obsess-over-the-activation-screen","type":"advice","url":"https://indie.md/advice/obsess-over-the-activation-screen/","markdown_url":"https://indie.md/advice/obsess-over-the-activation-screen.md","title":"For a free tool, the answer screen is the whole product","description":"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, th…","content":"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.","category":"product","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/journeys/vali-doesmyemail/","source_type":"journey"}
{"id":"advice/remove-the-app-handoff","type":"advice","url":"https://indie.md/advice/remove-the-app-handoff/","markdown_url":"https://indie.md/advice/remove-the-app-handoff.md","title":"Never make a mobile user switch apps and come back","description":"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…","content":"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.","category":"product","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/journeys/vali-doesmyemail/","source_type":"journey"}
{"id":"advice/one-playbook-many-products","type":"advice","url":"https://indie.md/advice/one-playbook-many-products/","markdown_url":"https://indie.md/advice/one-playbook-many-products.md","title":"Reuse one top-of-funnel playbook across products","description":"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 p…","content":"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.","category":"distribution","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/journeys/vali-doesmyemail/","source_type":"journey"}
{"id":"advice/share-the-real-numbers","type":"advice","url":"https://indie.md/advice/share-the-real-numbers/","markdown_url":"https://indie.md/advice/share-the-real-numbers.md","title":"Share real numbers; honesty earns trust and feedback","description":"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 nev…","content":"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.","category":"mindset","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/journeys/vali-doesmyemail/","source_type":"journey"}
{"id":"advice/mindset-stop-polishing","type":"advice","url":"https://indie.md/advice/mindset-stop-polishing/","markdown_url":"https://indie.md/advice/mindset-stop-polishing.md","title":"Stop polishing code, start finding customers","description":"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 ha…","content":"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.","category":"mindset","author":"Vlad","author_url":"https://indie.md/people/vlad/","source_url":"https://indie.md/journeys/vlad-sisif-ai/","source_type":"journey"}
{"id":"advice/mindset-traditional-marketing-slow","type":"advice","url":"https://indie.md/advice/mindset-traditional-marketing-slow/","markdown_url":"https://indie.md/advice/mindset-traditional-marketing-slow.md","title":"Twitter and ProductHunt are slow for unknown founders","description":"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 compo…","content":"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.","category":"mindset","author":"Vlad","author_url":"https://indie.md/people/vlad/","source_url":"https://indie.md/journeys/vlad-sisif-ai/","source_type":"journey"}
{"id":"advice/distribution-platform-led-growth","type":"advice","url":"https://indie.md/advice/distribution-platform-led-growth/","markdown_url":"https://indie.md/advice/distribution-platform-led-growth.md","title":"Ride existing waves with platform-led growth","description":"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 i…","content":"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.","category":"distribution","author":"Vlad","author_url":"https://indie.md/people/vlad/","source_url":"https://indie.md/journeys/vlad-sisif-ai/","source_type":"journey"}
{"id":"advice/business-tiered-pricing","type":"advice","url":"https://indie.md/advice/business-tiered-pricing/","markdown_url":"https://indie.md/advice/business-tiered-pricing.md","title":"Tiered pricing unlocks hidden revenue","description":"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…","content":"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.","category":"business","author":"Vlad","author_url":"https://indie.md/people/vlad/","source_url":"https://indie.md/journeys/vlad-sisif-ai/","source_type":"journey"}
{"id":"advice/distribution-beats-product","type":"advice","url":"https://indie.md/advice/distribution-beats-product/","markdown_url":"https://indie.md/advice/distribution-beats-product.md","title":"Distribution beats product, every time","description":"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 …","content":"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.","category":"distribution","author":"Vlad","author_url":"https://indie.md/people/vlad/","source_url":"https://indie.md/journeys/vlad-sisif-ai/","source_type":"journey"}
{"id":"advice/persist-through-early-rejection","type":"advice","url":"https://indie.md/advice/persist-through-early-rejection/","markdown_url":"https://indie.md/advice/persist-through-early-rejection.md","title":"A rejection is a data point, not a verdict","description":"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 b…","content":"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.","category":"mindset","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/journeys/zoltan-flowbite/","source_type":"journey"}
{"id":"advice/follow-the-spike-to-the-market","type":"advice","url":"https://indie.md/advice/follow-the-spike-to-the-market/","markdown_url":"https://indie.md/advice/follow-the-spike-to-the-market.md","title":"Let one big spike tell you where the market is","description":"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 r…","content":"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.","category":"product","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/journeys/zoltan-flowbite/","source_type":"journey"}
{"id":"advice/open-source-as-distribution","type":"advice","url":"https://indie.md/advice/open-source-as-distribution/","markdown_url":"https://indie.md/advice/open-source-as-distribution.md","title":"Open source can be your distribution channel","description":"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 wi…","content":"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.","category":"distribution","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/journeys/zoltan-flowbite/","source_type":"journey"}
{"id":"advice/free-core-paid-extras","type":"advice","url":"https://indie.md/advice/free-core-paid-extras/","markdown_url":"https://indie.md/advice/free-core-paid-extras.md","title":"Give away the core and sell the extras once","description":"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 hesi…","content":"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.","category":"business","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/journeys/zoltan-flowbite/","source_type":"journey"}
{"id":"advice/bet-on-the-layer-ai-cant-replace","type":"advice","url":"https://indie.md/advice/bet-on-the-layer-ai-cant-replace/","markdown_url":"https://indie.md/advice/bet-on-the-layer-ai-cant-replace.md","title":"Own the layer AI coding tools still leave missing","description":"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…","content":"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.","category":"mindset","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/journeys/zoltan-flowbite/","source_type":"journey"}
{"id":"advice/specialized-model-beats-general-llm","type":"advice","url":"https://indie.md/advice/specialized-model-beats-general-llm/","markdown_url":"https://indie.md/advice/specialized-model-beats-general-llm.md","title":"Reach for a purpose-built model before a general LLM","description":"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 fr…","content":"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.","category":"product","author":"Mihai","author_url":"https://indie.md/people/mihai-balint/","source_url":"https://indie.md/events/indie-tm-10-timisoara-june-2026/","source_type":"event"}
{"id":"advice/schema-driven-extraction-loop","type":"advice","url":"https://indie.md/advice/schema-driven-extraction-loop/","markdown_url":"https://indie.md/advice/schema-driven-extraction-loop.md","title":"Let the schema drive extraction, not the prompt","description":"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 field…","content":"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.","category":"product","author":"Mihai","author_url":"https://indie.md/people/mihai-balint/","source_url":"https://indie.md/events/indie-tm-10-timisoara-june-2026/","source_type":"event"}
{"id":"advice/go-in-person-when-cold-email-dies","type":"advice","url":"https://indie.md/advice/go-in-person-when-cold-email-dies/","markdown_url":"https://indie.md/advice/go-in-person-when-cold-email-dies.md","title":"When cold email dies, sell in person","description":"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 c…","content":"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.","category":"distribution","author":"Doru","author_url":"https://indie.md/people/doru-bota/","source_url":"https://indie.md/events/indie-tm-10-timisoara-june-2026/","source_type":"event"}
{"id":"advice/single-purpose-tool-beats-suite-feature","type":"advice","url":"https://indie.md/advice/single-purpose-tool-beats-suite-feature/","markdown_url":"https://indie.md/advice/single-purpose-tool-beats-suite-feature.md","title":"A focused tool can beat a feature buried in a giant suite","description":"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 …","content":"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.","category":"product","author":"Camil","author_url":"https://indie.md/people/camil/","source_url":"https://indie.md/events/indie-tm-10-timisoara-june-2026/","source_type":"event"}
{"id":"advice/sell-where-people-describe-the-problem","type":"advice","url":"https://indie.md/advice/sell-where-people-describe-the-problem/","markdown_url":"https://indie.md/advice/sell-where-people-describe-the-problem.md","title":"Sell where people already describe the problem","description":"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 m…","content":"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.","category":"distribution","author":"Camil","author_url":"https://indie.md/people/camil/","source_url":"https://indie.md/events/indie-tm-10-timisoara-june-2026/","source_type":"event"}
{"id":"advice/short-form-video-for-awareness","type":"advice","url":"https://indie.md/advice/short-form-video-for-awareness/","markdown_url":"https://indie.md/advice/short-form-video-for-awareness.md","title":"Use short-form video for awareness, not conversion","description":"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…","content":"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.","category":"distribution","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/events/indie-tm-10-timisoara-june-2026/","source_type":"event"}
{"id":"advice/content-as-gentle-push-notifications","type":"advice","url":"https://indie.md/advice/content-as-gentle-push-notifications/","markdown_url":"https://indie.md/advice/content-as-gentle-push-notifications.md","title":"Repackage your content as push notifications that respect attention","description":"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 wheneve…","content":"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.","category":"product","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/events/indie-tm-10-timisoara-june-2026/","source_type":"event"}
{"id":"advice/model-intent-as-matchable-cards","type":"advice","url":"https://indie.md/advice/model-intent-as-matchable-cards/","markdown_url":"https://indie.md/advice/model-intent-as-matchable-cards.md","title":"Turn fuzzy intent into structured cards a machine can match","description":"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 thinki…","content":"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.","category":"product","author":"Octavian Chiș","author_url":"https://indie.md/people/octavian-chis/","source_url":"https://indie.md/events/indie-tm-11-timisoara-june-2026/","source_type":"event"}
{"id":"advice/matching-networks-are-dead-until-dense","type":"advice","url":"https://indie.md/advice/matching-networks-are-dead-until-dense/","markdown_url":"https://indie.md/advice/matching-networks-are-dead-until-dense.md","title":"A needs-and-offers network is worthless until it is dense","description":"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…","content":"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.","category":"business","author":"Octavian Chiș","author_url":"https://indie.md/people/octavian-chis/","source_url":"https://indie.md/events/indie-tm-11-timisoara-june-2026/","source_type":"event"}
{"id":"advice/be-prolific-the-body-of-work-compounds","type":"advice","url":"https://indie.md/advice/be-prolific-the-body-of-work-compounds/","markdown_url":"https://indie.md/advice/be-prolific-the-body-of-work-compounds.md","title":"Be prolific, because a large body of small tools compounds","description":"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…","content":"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.","category":"mindset","author":"Octavian Chiș","author_url":"https://indie.md/people/octavian-chis/","source_url":"https://indie.md/events/indie-tm-11-timisoara-june-2026/","source_type":"event"}
{"id":"advice/bundle-the-deadlines-people-dread","type":"advice","url":"https://indie.md/advice/bundle-the-deadlines-people-dread/","markdown_url":"https://indie.md/advice/bundle-the-deadlines-people-dread.md","title":"Productize the recurring deadlines people already dread","description":"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…","content":"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.","category":"product","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/events/indie-tm-11-timisoara-june-2026/","source_type":"event"}
{"id":"advice/strip-the-tells-that-look-unfinished","type":"advice","url":"https://indie.md/advice/strip-the-tells-that-look-unfinished/","markdown_url":"https://indie.md/advice/strip-the-tells-that-look-unfinished.md","title":"Strip the small visual tells that make a product look unfinished","description":"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 w…","content":"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.","category":"product","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/events/indie-tm-11-timisoara-june-2026/","source_type":"event"}
{"id":"advice/wrap-a-dull-utility-in-a-familiar-metaphor","type":"advice","url":"https://indie.md/advice/wrap-a-dull-utility-in-a-familiar-metaphor/","markdown_url":"https://indie.md/advice/wrap-a-dull-utility-in-a-familiar-metaphor.md","title":"Wrap a dull utility in a metaphor people already understand","description":"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…","content":"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.","category":"product","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/events/indie-tm-11-timisoara-june-2026/","source_type":"event"}
{"id":"advice/turn-your-data-into-credibility","type":"advice","url":"https://indie.md/advice/turn-your-data-into-credibility/","markdown_url":"https://indie.md/advice/turn-your-data-into-credibility.md","title":"Turn the data your tool collects into visible credibility","description":"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 …","content":"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.","category":"distribution","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/events/indie-tm-11-timisoara-june-2026/","source_type":"event"}
{"id":"advice/ocr-on-a-gaming-gpu","type":"advice","url":"https://indie.md/advice/ocr-on-a-gaming-gpu/","markdown_url":"https://indie.md/advice/ocr-on-a-gaming-gpu.md","title":"A gaming GPU on solar power can replace a cloud AI service","description":"DataDriven needs industrial OCR, every tender document in Romania, scans included, and cloud pricing made that a luxury: Azure Document Intelligence billed per page, and GPU instances rent at rates designed for venture budgets. Mihai's replacement is a single RTX 3090 in his off…","content":"DataDriven needs industrial OCR, every tender document in Romania, scans included, and cloud pricing made that a luxury: Azure Document Intelligence billed per page, and GPU instances rent at rates designed for venture budgets. Mihai's replacement is a single RTX 3090 in his office running Tesseract plus his own quality-validation classifiers, processing about 1,500 pages per hour, powered by the solar panels on the roof, so the marginal cost per page is approximately zero. A consumer GPU is not a data center, but a solo founder's workload rarely needs one; it needs sustained, predictable throughput on a task that tolerates batch processing. When an AI API is your biggest variable cost, price out the unfashionable alternative of one good machine you own, because the payback period is often measured in weeks.","category":"business","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","source_type":"event"}
{"id":"advice/ads-cant-qualify-an-eligibility-market","type":"advice","url":"https://indie.md/advice/ads-cant-qualify-an-eligibility-market/","markdown_url":"https://indie.md/advice/ads-cant-qualify-an-eligibility-market.md","title":"Paid ads fail when your buyer must meet requirements a click cannot check","description":"Google Ads sent DataDriven a steady stream of visitors who could never become customers: they searched for construction tenders, clicked, and only then discovered that public procurement demands revenue thresholds, staff counts, and certifications they did not have. The ad platf…","content":"Google Ads sent DataDriven a steady stream of visitors who could never become customers: they searched for construction tenders, clicked, and only then discovered that public procurement demands revenue thresholds, staff counts, and certifications they did not have. The ad platform had no way to target eligibility, so the budget bought branding at best and noise at worst. This failure mode generalizes to every market where the buyer must hold a license, a certification, or a track record: regulated industries, government suppliers, professional services. In those markets the qualifying attribute is invisible to ad targeting but often visible in public registries, which is where the marketing budget should go instead. Before spending on ads, ask whether a click can even in principle identify your qualified buyer; if not, the channel is structurally wrong regardless of how well you run it.","category":"distribution","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","source_type":"event"}
{"id":"advice/warm-up-a-fleet-of-sending-domains","type":"advice","url":"https://indie.md/advice/warm-up-a-fleet-of-sending-domains/","markdown_url":"https://indie.md/advice/warm-up-a-fleet-of-sending-domains.md","title":"Cold email at scale is an infrastructure problem before it is a copywriting problem","description":"Mihai's cold email machine is mostly plumbing: multiple sending addresses spread across several domains, each warmed up automatically by Instantly.ai, which has the accounts send, open, reply to, and click each other's messages until mailbox providers trust them. The whole fleet…","content":"Mihai's cold email machine is mostly plumbing: multiple sending addresses spread across several domains, each warmed up automatically by Instantly.ai, which has the accounts send, open, reply to, and click each other's messages until mailbox providers trust them. The whole fleet costs about $150 per month plus $5 per Google Workspace address, and throughput stays deliberately limited to protect deliverability. The insight indie hackers miss is the ordering: before subject lines and personalization matter at all, the message has to land in an inbox, and that is determined by sender reputation built over weeks. Blasting from your main domain both fails and burns the domain your business runs on. Treat cold email like infrastructure, warmed domains you can afford to lose, low volume, patience, and only then start optimizing the words.","category":"distribution","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","source_type":"event"}
{"id":"advice/build-a-fallback-before-you-leave-the-cloud","type":"advice","url":"https://indie.md/advice/build-a-fallback-before-you-leave-the-cloud/","markdown_url":"https://indie.md/advice/build-a-fallback-before-you-leave-the-cloud.md","title":"Leave the cloud with a fallback, not a farewell","description":"DataDriven's infrastructure now lives on Hetzner dedicated servers and an office GPU, but Mihai kept an escape hatch in the other direction: when his local hardware has downtime, backend tasks overflow to Azure Batch Low Priority instances for a few hours at modest cost, and a S…","content":"DataDriven's infrastructure now lives on Hetzner dedicated servers and an office GPU, but Mihai kept an escape hatch in the other direction: when his local hardware has downtime, backend tasks overflow to Azure Batch Low Priority instances for a few hours at modest cost, and a Starlink connection is under consideration as network fallback. That design is what makes self-hosting responsible instead of reckless for a company of one. The cloud's real product was never compute, it was the promise that failures are someone else's pager, and when you take that back you must replace it with something: an overflow path, a degraded mode, a documented recovery. Price the fallback into the migration math from the start, because the savings of leaving the cloud are only real if one hardware failure cannot take the product down for a week.","category":"business","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","source_type":"event"}
{"id":"advice/invoice-first-is-a-market-reality","type":"advice","url":"https://indie.md/advice/invoice-first-is-a-market-reality/","markdown_url":"https://indie.md/advice/invoice-first-is-a-market-reality.md","title":"In invoice-first markets, churn is operational, not emotional","description":"DataDriven's churn is high, and almost none of it means the product failed: cards run out of funds, payments get forgotten, and firms that fully intend to continue simply lapse. Romanian B2B buyers want the fiscal invoice before money moves, prefer direct human contact, and dist…","content":"DataDriven's churn is high, and almost none of it means the product failed: cards run out of funds, payments get forgotten, and firms that fully intend to continue simply lapse. Romanian B2B buyers want the fiscal invoice before money moves, prefer direct human contact, and distrust automatic card billing on principle, so the frictionless self-serve subscription that SaaS playbooks assume does not exist here. Mihai's response is to treat payment recovery as a standing operational process, reminders, follow-up calls, re-onboarding, rather than reading every lapse as a verdict on the product. The lesson for anyone selling outside the Silicon Valley payment bubble is to learn how your market actually pays before designing the billing, and to budget real recurring effort for collection. A lapsed card in an invoice-first culture is a to-do item, not a goodbye.","category":"business","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","source_type":"event"}
{"id":"advice/refuse-the-percentage-of-public-money","type":"advice","url":"https://indie.md/advice/refuse-the-percentage-of-public-money/","markdown_url":"https://indie.md/advice/refuse-the-percentage-of-public-money.md","title":"Some revenue models are traps: know why you refuse a success fee","description":"Customers keep offering Mihai a seductive model: charge nothing up front, take a percentage when the tender is won. He refuses, and his reasoning is worth copying. The contract values are public money, and a private platform skimming a percentage of state contracts invites legal…","content":"Customers keep offering Mihai a seductive model: charge nothing up front, take a percentage when the tender is won. He refuses, and his reasoning is worth copying. The contract values are public money, and a private platform skimming a percentage of state contracts invites legal scrutiny, reputational damage, and misaligned incentives to push clients toward the biggest tenders rather than the right ones. If he ever prices on outcomes it will be a fixed fee per successful assisted tender bundled into a subscription, never a percentage. The general discipline is to stress-test a revenue model against the source of the money and the behavior it rewards, not just against revenue potential, and to be able to articulate exactly why you turned down the model everyone suggests. A pricing structure is a position you have to defend for years.","category":"business","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","source_type":"event"}
{"id":"advice/interview-the-workflow-not-the-wishlist","type":"advice","url":"https://indie.md/advice/interview-the-workflow-not-the-wishlist/","markdown_url":"https://indie.md/advice/interview-the-workflow-not-the-wishlist.md","title":"Interview customers about their workflow, never their wishlist","description":"Of the thirty or so customer interviews Mihai scheduled, ten to twelve happened, and in every one he refuses the founder's favorite question. He never asks what features people want; he asks what they do: walk me through the process, how many hours does it take, who on the team …","content":"Of the thirty or so customer interviews Mihai scheduled, ten to twelve happened, and in every one he refuses the founder's favorite question. He never asks what features people want; he asks what they do: walk me through the process, how many hours does it take, who on the team touches it. Feature requests are guesses filtered through what the customer imagines software can do, while workflow descriptions are facts, and the product opportunities sit visibly inside them, the daily bookmark-folder patrol, the hours lost to six SEAP menus. The show-up rate is also part of the lesson: schedule three times the interviews you need, because most will evaporate. Treat customer conversations as ethnography rather than requirements gathering, and the roadmap writes itself from the pain you observed instead of the wishlist you collected.","category":"mindset","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","source_type":"event"}
{"id":"advice/guide-the-llm-through-the-table-of-contents","type":"advice","url":"https://indie.md/advice/guide-the-llm-through-the-table-of-contents/","markdown_url":"https://indie.md/advice/guide-the-llm-through-the-table-of-contents.md","title":"Give an LLM the table of contents before you give it embeddings","description":"DataDriven serves tender documentation to AI assistants as structured markdown with an explicit table of contents and chapter hierarchy, and retrieval walks that structure first, using semantic search as a supplement rather than the foundation. Mihai distrusts embeddings-only RA…","content":"DataDriven serves tender documentation to AI assistants as structured markdown with an explicit table of contents and chapter hierarchy, and retrieval walks that structure first, using semantic search as a supplement rather than the foundation. Mihai distrusts embeddings-only RAG for long official documents, where a naive similarity search returns fragments stripped of the context that gives them legal meaning. Guided navigation, find the right chapter, then read it properly, mirrors how a careful human reads a contract, costs fewer tokens, and fails more predictably. The broader point for anyone building on LLMs is that documents already contain an information architecture, headings, sections, numbering, and throwing it away to chunk-and-embed is destroying signal you paid to OCR. Preserve structure, navigate it explicitly, and reserve embeddings for the queries structure cannot answer.","category":"product","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","source_type":"event"}
{"id":"advice/let-copycats-chase-the-wrapper","type":"advice","url":"https://indie.md/advice/let-copycats-chase-the-wrapper/","markdown_url":"https://indie.md/advice/let-copycats-chase-the-wrapper.md","title":"Copycats clone your pitch, not your pipeline","description":"When Romanian copycats started advertising \"AI agents for public tenders,\" Mihai did not panic, because he could see what they actually shipped: a GPT wrapper over the same misclassified official data everyone can access. What they cannot clone from his landing page is the part …","content":"When Romanian copycats started advertising \"AI agents for public tenders,\" Mihai did not panic, because he could see what they actually shipped: a GPT wrapper over the same misclassified official data everyone can access. What they cannot clone from his landing page is the part that took years, a crawler covering ten thousand sources, an OCR pipeline reading every document, a hand-built taxonomy, and a retrieval stack that makes the data usable. Even the funded European competitor with fourteen people concentrates on sales rather than technology, which is precisely why he declined to join forces. The reassurance for any founder watching lookalikes appear is that marketing copy is the only layer that copies cheaply; if your advantage lives in accumulated data and infrastructure, every copycat validates the market while inheriting none of the moat. Fear the competitor who rebuilds your pipeline, not the one who rewrites your homepage.","category":"mindset","author":"Mihai Negrea","author_url":"https://indie.md/people/mihai-negrea/","source_url":"https://indie.md/events/indie-tm-12-timisoara-july-2026/","source_type":"event"}
{"id":"advice/video-content-face-in-corner","type":"advice","url":"https://indie.md/advice/video-content-face-in-corner/","markdown_url":"https://indie.md/advice/video-content-face-in-corner.md","title":"Record videos with your face in the corner","description":"Use Loom or similar tools to record product walkthroughs with your face visible in the corner. People trust faces. These videos work as blog post embeds, YouTube content, and social proof simultaneously. Pages with face-in-corner walkthroughs consistently convert better than tex…","content":"Use Loom or similar tools to record product walkthroughs with your face visible in the corner. People trust faces. These videos work as blog post embeds, YouTube content, and social proof simultaneously. Pages with face-in-corner walkthroughs consistently convert better than text-only pages.","category":"product","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/infographics-backlink-strategy","type":"advice","url":"https://indie.md/advice/infographics-backlink-strategy/","markdown_url":"https://indie.md/advice/infographics-backlink-strategy.md","title":"Create infographics for blog posts and backlinks","description":"Infographics get shared and linked to far more than plain text. Create one per major blog post. Use Canva or Figma to visualize your key data points, then offer an embed code below the image so other bloggers can easily reuse it. This is one of the most reliable passive backlink…","content":"Infographics get shared and linked to far more than plain text. Create one per major blog post. Use Canva or Figma to visualize your key data points, then offer an embed code below the image so other bloggers can easily reuse it. This is one of the most reliable passive backlink strategies.","category":"seo","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/content-platform-backlinks","type":"advice","url":"https://indie.md/advice/content-platform-backlinks/","markdown_url":"https://indie.md/advice/content-platform-backlinks.md","title":"Get backlinks from Blogger, Wikipedia, and YouTube","description":"Create profiles and content on high-authority platforms. Write a Blogger post linking to your product. Add your tool to relevant Wikipedia lists (following their guidelines). Create a YouTube video and include your link in the description. Each of these platforms passes signific…","content":"Create profiles and content on high-authority platforms. Write a Blogger post linking to your product. Add your tool to relevant Wikipedia lists (following their guidelines). Create a YouTube video and include your link in the description. Each of these platforms passes significant domain authority through their backlinks.","category":"distribution","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/nocode-platform-backlinks","type":"advice","url":"https://indie.md/advice/nocode-platform-backlinks/","markdown_url":"https://indie.md/advice/nocode-platform-backlinks.md","title":"Get listed on no-code platforms for free backlinks","description":"Integrate with Zapier, Make.com, n8n, and other workflow tools. Each platform gives you a listing page with a backlink to your domain. The integration itself doesn't need to be complex: even a simple webhook trigger is enough to get listed. This is free, permanent, and builds do…","content":"Integrate with Zapier, Make.com, n8n, and other workflow tools. Each platform gives you a listing page with a backlink to your domain. The integration itself doesn't need to be complex: even a simple webhook trigger is enough to get listed. This is free, permanent, and builds domain authority over time.","category":"distribution","author":"Vlad","author_url":"https://indie.md/people/vlad/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/programmatic-local-pages","type":"advice","url":"https://indie.md/advice/programmatic-local-pages/","markdown_url":"https://indie.md/advice/programmatic-local-pages.md","title":"Create localized landing pages at scale","description":"Build pages targeting \"[product/service] in [city/country]\" and \"[integration] in [city/country]\" combinations. Automate the page structure but keep the content genuine. Each page should have real, location-specific information, not just a city name swapped in a template. This i…","content":"Build pages targeting \"[product/service] in [city/country]\" and \"[integration] in [city/country]\" combinations. Automate the page structure but keep the content genuine. Each page should have real, location-specific information, not just a city name swapped in a template. This is how you capture long-tail local search traffic with almost no competition.","category":"seo","author":"Vlad","author_url":"https://indie.md/people/vlad/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/app-store-backlinks","type":"advice","url":"https://indie.md/advice/app-store-backlinks/","markdown_url":"https://indie.md/advice/app-store-backlinks.md","title":"Publish to app stores for authority backlinks","description":"Even if your product is primarily web-based, publish a simple mobile wrapper to the App Store and Google Play. The backlinks from apple.com and google.com are extremely high authority. A basic WebView wrapper with push notifications takes a weekend to build and gives you two of …","content":"Even if your product is primarily web-based, publish a simple mobile wrapper to the App Store and Google Play. The backlinks from apple.com and google.com are extremely high authority. A basic WebView wrapper with push notifications takes a weekend to build and gives you two of the strongest backlinks on the internet.","category":"distribution","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/internal-linking-seo","type":"advice","url":"https://indie.md/advice/internal-linking-seo/","markdown_url":"https://indie.md/advice/internal-linking-seo.md","title":"Add internal links between every page","description":"Every page on your site should link to at least 2-3 other relevant pages. Internal linking helps Google discover your content, distributes page authority, and keeps visitors engaged longer. Audit your site for orphan pages (pages with zero internal links pointing to them) and fi…","content":"Every page on your site should link to at least 2-3 other relevant pages. Internal linking helps Google discover your content, distributes page authority, and keeps visitors engaged longer. Audit your site for orphan pages (pages with zero internal links pointing to them) and fix them. Use descriptive anchor text, not \"click here.\"","category":"seo","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/faq-schema-markup","type":"advice","url":"https://indie.md/advice/faq-schema-markup/","markdown_url":"https://indie.md/advice/faq-schema-markup.md","title":"Add FAQ sections with FAQPage schema to every page","description":"Write real, human-authored FAQ sections for every page on your site. Use FAQPage structured data so Google can surface your answers as rich results. The key is writing questions your users actually ask, not keyword-stuffed filler. Check Google Search Console for queries people a…","content":"Write real, human-authored FAQ sections for every page on your site. Use FAQPage structured data so Google can surface your answers as rich results. The key is writing questions your users actually ask, not keyword-stuffed filler. Check Google Search Console for queries people already use to find you, then answer those directly on the page.","category":"seo","author":"Petru","author_url":"https://indie.md/people/petru-popa/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/trust-pages-careers-about","type":"advice","url":"https://indie.md/advice/trust-pages-careers-about/","markdown_url":"https://indie.md/advice/trust-pages-careers-about.md","title":"Create Careers, About Us, and team pages to build trust","description":"Google evaluates trust signals when ranking your site. A Careers page, an About Us page, Privacy Policy, Terms of Service, and content showcasing team building experiences all signal that there is a real organization behind the site. Include team photos, company culture, and hir…","content":"Google evaluates trust signals when ranking your site. A Careers page, an About Us page, Privacy Policy, Terms of Service, and content showcasing team building experiences all signal that there is a real organization behind the site. Include team photos, company culture, and hiring information even if you are not actively recruiting. These pages build trust with both search engines and visitors, and attract backlinks from directories that list companies with public hiring or legal pages.","category":"seo","author":"Petru","author_url":"https://indie.md/people/petru-popa/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/publish-one-article-per-day","type":"advice","url":"https://indie.md/advice/publish-one-article-per-day/","markdown_url":"https://indie.md/advice/publish-one-article-per-day.md","title":"Publish one article per day instead of batching","description":"Publishing one article per day is far more effective than dropping a batch of articles all at once. Search engines treat a sudden burst of content as suspicious, potentially flagging it as spam. A steady daily cadence signals consistent, genuine content production. It also gives…","content":"Publishing one article per day is far more effective than dropping a batch of articles all at once. Search engines treat a sudden burst of content as suspicious, potentially flagging it as spam. A steady daily cadence signals consistent, genuine content production. It also gives each article time to get indexed and start ranking before the next one competes for attention.","category":"seo","author":"Petru","author_url":"https://indie.md/people/petru-popa/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/translate-pages-slugs","type":"advice","url":"https://indie.md/advice/translate-pages-slugs/","markdown_url":"https://indie.md/advice/translate-pages-slugs.md","title":"Translate every page including the URL slugs","description":"Full translation means translating the content AND the URL slugs. A page at /ro/servicii/ ranks better in Romanian search than /ro/services/. Use hreflang tags to tell Google which language version to show each user. Start with your highest-traffic pages and expand from there.","content":"Full translation means translating the content AND the URL slugs. A page at /ro/servicii/ ranks better in Romanian search than /ro/services/. Use hreflang tags to tell Google which language version to show each user. Start with your highest-traffic pages and expand from there.","category":"seo","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/content-before-product","type":"advice","url":"https://indie.md/advice/content-before-product/","markdown_url":"https://indie.md/advice/content-before-product.md","title":"Write useful content before you have a product to sell","description":"Cozmoslabs started by publishing programming tutorials with no product behind them. That content built domain authority, attracted an audience, and created the SEO foundation that still drives traffic years later. If you start writing only after you have something to sell, you a…","content":"Cozmoslabs started by publishing programming tutorials with no product behind them. That content built domain authority, attracted an audience, and created the SEO foundation that still drives traffic years later. If you start writing only after you have something to sell, you are already behind. The best time to build your content foundation is before you need it.","category":"seo","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/high-quality-low-volume-content","type":"advice","url":"https://indie.md/advice/high-quality-low-volume-content/","markdown_url":"https://indie.md/advice/high-quality-low-volume-content.md","title":"Publish high-quality articles at low volume","description":"Cozmoslabs still publishes articles, but they prioritize quality over quantity. Every piece is well-researched, genuinely useful, and built to last. High-quality, low-volume content builds trust with both readers and search engines. A single article that answers a real question …","content":"Cozmoslabs still publishes articles, but they prioritize quality over quantity. Every piece is well-researched, genuinely useful, and built to last. High-quality, low-volume content builds trust with both readers and search engines. A single article that answers a real question thoroughly will outperform ten shallow posts competing for the same keywords.","category":"seo","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/build-from-client-problems","type":"advice","url":"https://indie.md/advice/build-from-client-problems/","markdown_url":"https://indie.md/advice/build-from-client-problems.md","title":"Build products from real client problems, not speculation","description":"Every Cozmoslabs product started with a problem their clients kept running into. They do not build on speculation or trends. When you know a product will take a year to execute, you need to be certain the problem is real. Spot the pattern in client requests, validate that the pa…","content":"Every Cozmoslabs product started with a problem their clients kept running into. They do not build on speculation or trends. When you know a product will take a year to execute, you need to be certain the problem is real. Spot the pattern in client requests, validate that the pain is genuine, and only then commit to building. Being picky about what you build is a feature, not a limitation.","category":"product","author":"Cristian","author_url":"https://indie.md/people/cristian-antohe/","source_url":"https://indie.md/events/indie-tm-5-timisoara-march-2026/","source_type":"event"}
{"id":"advice/keyword-demand-before-features","type":"advice","url":"https://indie.md/advice/keyword-demand-before-features/","markdown_url":"https://indie.md/advice/keyword-demand-before-features.md","title":"Use search demand to decide what features to build","description":"Before building a new feature or component, check what people are actually searching for. Use tools like Semrush to find keywords with real demand. When Flowbite saw search volume for \"avatar tailwind\" and \"datepicker tailwind,\" they built those components and captured the traff…","content":"Before building a new feature or component, check what people are actually searching for. Use tools like Semrush to find keywords with real demand. When Flowbite saw search volume for \"avatar tailwind\" and \"datepicker tailwind,\" they built those components and captured the traffic. Let search data guide your roadmap instead of guessing what users want.","category":"product","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/events/indie-tm-6-timisoara-april-2026/","source_type":"event"}
{"id":"advice/influencer-over-ads","type":"advice","url":"https://indie.md/advice/influencer-over-ads/","markdown_url":"https://indie.md/advice/influencer-over-ads.md","title":"Spend on influencers instead of ads","description":"If your product has any traction, skip paid ads and invest in influencer marketing instead. Pay 1,000 to 2,000 euros per influencer, feature them on your homepage hero section, and prefer American or Australian creators for the English-speaking market. One influencer creates soc…","content":"If your product has any traction, skip paid ads and invest in influencer marketing instead. Pay 1,000 to 2,000 euros per influencer, feature them on your homepage hero section, and prefer American or Australian creators for the English-speaking market. One influencer creates social proof that attracts others. The ROI on a single well-placed creator video outperforms most ad campaigns for developer tools.","category":"distribution","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/events/indie-tm-6-timisoara-april-2026/","source_type":"event"}
{"id":"advice/never-discount-prices","type":"advice","url":"https://indie.md/advice/never-discount-prices/","markdown_url":"https://indie.md/advice/never-discount-prices.md","title":"Never discount your prices","description":"Resist the urge to compete on price or offer discounts. Low prices scare away serious clients who associate cost with quality. Once you start discounting, customers learn to wait for sales instead of buying at full price. In the digital products space, maintaining premium pricin…","content":"Resist the urge to compete on price or offer discounts. Low prices scare away serious clients who associate cost with quality. Once you start discounting, customers learn to wait for sales instead of buying at full price. In the digital products space, maintaining premium pricing attracts better customers and builds a more sustainable business. Flowbite never discounts, and it has not hurt growth.","category":"business","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/events/indie-tm-6-timisoara-april-2026/","source_type":"event"}
{"id":"advice/story-driven-reddit","type":"advice","url":"https://indie.md/advice/story-driven-reddit/","markdown_url":"https://indie.md/advice/story-driven-reddit.md","title":"Post stories on Reddit, not sales pitches","description":"Reddit rewards authenticity and punishes promotion. When Flowbite launched a new datepicker component, they posted the story of building it, not a sales pitch. Share the journey, the technical decisions, the problems you solved. On X/Twitter, sharing MRR numbers gets engagement.…","content":"Reddit rewards authenticity and punishes promotion. When Flowbite launched a new datepicker component, they posted the story of building it, not a sales pitch. Share the journey, the technical decisions, the problems you solved. On X/Twitter, sharing MRR numbers gets engagement. On Reddit, the same post gets buried. Each platform has its own language. Learn to speak it.","category":"distribution","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/events/indie-tm-6-timisoara-april-2026/","source_type":"event"}
{"id":"advice/canonical-links-medium-devto","type":"advice","url":"https://indie.md/advice/canonical-links-medium-devto/","markdown_url":"https://indie.md/advice/canonical-links-medium-devto.md","title":"Write on Medium and dev.to with canonical links to your site","description":"Publish articles on Medium and dev.to to reach their built-in audiences, but always set the canonical URL to point back to your own blog. This way you get distribution from the platform while search engines credit your domain as the original source. The content should genuinely …","content":"Publish articles on Medium and dev.to to reach their built-in audiences, but always set the canonical URL to point back to your own blog. This way you get distribution from the platform while search engines credit your domain as the original source. The content should genuinely help the reader, not be a thinly disguised ad. Spammy content gets flagged on both platforms.","category":"seo","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/events/indie-tm-6-timisoara-april-2026/","source_type":"event"}
{"id":"advice/analytics-before-scaling","type":"advice","url":"https://indie.md/advice/analytics-before-scaling/","markdown_url":"https://indie.md/advice/analytics-before-scaling.md","title":"Set up analytics before you start scaling traffic","description":"Do not invest in scaling traffic until you have analytics running. Use Microsoft Clarity (free) or Hotjar for heatmaps, rage click detection, and session replays. Watch your bounce rate and average time on site (one minute is a reasonable benchmark to start). If users leave imme…","content":"Do not invest in scaling traffic until you have analytics running. Use Microsoft Clarity (free) or Hotjar for heatmaps, rage click detection, and session replays. Watch your bounce rate and average time on site (one minute is a reasonable benchmark to start). If users leave immediately, more traffic just means more people leaving. Fix the experience first, then scale.","category":"product","author":"Zoltan Szogyenyi","author_url":"https://indie.md/people/zoltan/","source_url":"https://indie.md/events/indie-tm-6-timisoara-april-2026/","source_type":"event"}
{"id":"advice/news-driven-seo-spikes","type":"advice","url":"https://indie.md/advice/news-driven-seo-spikes/","markdown_url":"https://indie.md/advice/news-driven-seo-spikes.md","title":"Ride news cycles for organic traffic spikes","description":"When a news story drives sudden search demand for a topic, pages that genuinely answer the underlying question capture a disproportionate share of the traffic. If you see an unexplained spike in analytics, open Google Trends and look for a matching jump in search volume on relat…","content":"When a news story drives sudden search demand for a topic, pages that genuinely answer the underlying question capture a disproportionate share of the traffic. If you see an unexplained spike in analytics, open Google Trends and look for a matching jump in search volume on related terms, then confirm with recent news. Once you know a news cycle is driving the traffic, publish more supporting content while the cycle is still hot. News stories are locomotives: the trick is having something already on the tracks when one arrives.","category":"seo","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/events/indie-tm-7-timisoara-april-2026/","source_type":"event"}
{"id":"advice/dont-let-users-return-to-search","type":"advice","url":"https://indie.md/advice/dont-let-users-return-to-search/","markdown_url":"https://indie.md/advice/dont-let-users-return-to-search.md","title":"Optimize for users not returning to search","description":"The most important SEO signal in modern search is whether a user returns to the results page after clicking your link. If they do, Google reads it as \"this page did not answer the query\" and your ranking erodes. If they do not, it reads as \"problem solved\" and your ranking compo…","content":"The most important SEO signal in modern search is whether a user returns to the results page after clicking your link. If they do, Google reads it as \"this page did not answer the query\" and your ranking erodes. If they do not, it reads as \"problem solved\" and your ranking compounds. This reframes SEO from \"rank for keywords\" to \"fully resolve the intent behind each query.\" Audit your top pages: does the reader actually get what they came for above the fold, or do they have to scroll through filler and ads? Fix the ones that force users back to search.","category":"seo","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/events/indie-tm-7-timisoara-april-2026/","source_type":"event"}
{"id":"advice/product-build-for-known-gap","type":"advice","url":"https://indie.md/advice/product-build-for-known-gap/","markdown_url":"https://indie.md/advice/product-build-for-known-gap.md","title":"Build for a practice everyone agrees is right but nobody does","description":"The richest product territory is the gap between \"known best practice\" and \"what people actually do.\" Structured interviews are universally accepted as the strongest predictor of job performance, and almost nobody runs them. Double-entry bookkeeping, security key logins, automat…","content":"The richest product territory is the gap between \"known best practice\" and \"what people actually do.\" Structured interviews are universally accepted as the strongest predictor of job performance, and almost nobody runs them. Double-entry bookkeeping, security key logins, automated tests, pre-commit hooks: same pattern. Look for a practice that experts in your industry agree is correct and operators skip because it is inconvenient, then build the tool that makes the right thing the easy thing. The onboarding pitch writes itself.","category":"product","author":"Flavius D.","author_url":"https://indie.md/people/flavius/","source_url":"https://indie.md/events/indie-tm-7-timisoara-april-2026/","source_type":"event"}
{"id":"advice/interview-specific-questions","type":"advice","url":"https://indie.md/advice/interview-specific-questions/","markdown_url":"https://indie.md/advice/interview-specific-questions.md","title":"Ask specific questions that reveal the real role","description":"Generic interview questions (\"tell me about yourself,\" \"what are your weaknesses\") produce rehearsed answers and almost no signal. Two questions that consistently produce the opposite are \"What does a typical day look like in this role?\" and \"What separates a great hire from an …","content":"Generic interview questions (\"tell me about yourself,\" \"what are your weaknesses\") produce rehearsed answers and almost no signal. Two questions that consistently produce the opposite are \"What does a typical day look like in this role?\" and \"What separates a great hire from an average one?\" The first forces the hiring manager to describe the real job instead of the job description. The second forces them to articulate the dimension on which people actually succeed or fail. Use the answers to design the rest of the interview. If a hiring manager cannot answer either clearly, the role is not ready to be filled.","category":"mindset","author":"Flavius D.","author_url":"https://indie.md/people/flavius/","source_url":"https://indie.md/events/indie-tm-7-timisoara-april-2026/","source_type":"event"}
{"id":"advice/benchmark-against-cost-of-mistake","type":"advice","url":"https://indie.md/advice/benchmark-against-cost-of-mistake/","markdown_url":"https://indie.md/advice/benchmark-against-cost-of-mistake.md","title":"Price against the cost of the mistake, not your competitors","description":"For tools that sit on top of high-stakes decisions (hiring, compliance, security, legal), the wrong benchmark is competitor pricing. The right benchmark is the cost of one bad outcome. Pace is built for hiring, where a single bad hire typically costs one to two times the annual …","content":"For tools that sit on top of high-stakes decisions (hiring, compliance, security, legal), the wrong benchmark is competitor pricing. The right benchmark is the cost of one bad outcome. Pace is built for hiring, where a single bad hire typically costs one to two times the annual salary once you factor in ramp, opportunity cost, severance, and team drag. A tool that prevents one bad hire a year is paying for itself many times over at almost any price. Teach your prospects to do that math in the first five minutes of the demo, and pricing objections mostly go away.","category":"business","author":"Flavius D.","author_url":"https://indie.md/people/flavius/","source_url":"https://indie.md/events/indie-tm-7-timisoara-april-2026/","source_type":"event"}
{"id":"advice/discover-the-enterprise-budget","type":"advice","url":"https://indie.md/advice/discover-the-enterprise-budget/","markdown_url":"https://indie.md/advice/discover-the-enterprise-budget.md","title":"Discover the enterprise budget instead of inventing a price","description":"Corporations of a certain size already run a budget line for your category: security, compliance, developer tooling, whatever the shelf is called internally. The money exists and procurement is used to spending it, so the pricing call is less \"convince them to pay\" and more \"dis…","content":"Corporations of a certain size already run a budget line for your category: security, compliance, developer tooling, whatever the shelf is called internally. The money exists and procurement is used to spending it, so the pricing call is less \"convince them to pay\" and more \"discover the number.\" On discovery, ask what the team already spends on adjacent tools or what last year's budget for the category was, and land inside the familiar range. The absolute number matters less than being in a bucket finance does not have to fight for. Founders who invent a price from scratch almost always land below the budget the buyer was ready to spend.","category":"business","author":"Fineas Silaghi","author_url":"https://indie.md/people/fineas-silaghi/","source_url":"https://indie.md/events/indie-tm-7-timisoara-april-2026/","source_type":"event"}
{"id":"advice/price-on-prem-for-support-cost","type":"advice","url":"https://indie.md/advice/price-on-prem-for-support-cost/","markdown_url":"https://indie.md/advice/price-on-prem-for-support-cost.md","title":"Price on-prem for the support reality, not the demo","description":"On-prem is not SaaS with a different installer. Once the software lives inside a customer network you lose live logs, hotfix freedom, and telemetry unless you explicitly negotiated for them. Support engineers spend materially more time per customer on debugging, upgrades, and es…","content":"On-prem is not SaaS with a different installer. Once the software lives inside a customer network you lose live logs, hotfix freedom, and telemetry unless you explicitly negotiated for them. Support engineers spend materially more time per customer on debugging, upgrades, and escalations than any SaaS cost model captures, and that time has to be priced in before you name a number. If on-prem is priced like SaaS, the first production incident eats the margin on the account. The safe heuristic is to model a realistic support load per customer per year, multiply by a loaded engineering rate, and treat that number as the floor, not a contingency.","category":"business","author":"Fineas Silaghi","author_url":"https://indie.md/people/fineas-silaghi/","source_url":"https://indie.md/events/indie-tm-7-timisoara-april-2026/","source_type":"event"}
{"id":"advice/build-your-own-agent-harness","type":"advice","url":"https://indie.md/advice/build-your-own-agent-harness/","markdown_url":"https://indie.md/advice/build-your-own-agent-harness.md","title":"Build your own agent harness, even as a side project","description":"Most developers assume an agent harness is something you buy or install. In practice, a working harness for your own workflow is a weekend project, not a quarter-long one. The payoff is that every future agentic feature you build sits on primitives you actually control: your own…","content":"Most developers assume an agent harness is something you buy or install. In practice, a working harness for your own workflow is a weekend project, not a quarter-long one. The payoff is that every future agentic feature you build sits on primitives you actually control: your own prompt format, your own tool interface, your own logging and trajectory replay. Even if you never ship it as a product, the harness compounds: it is the thing that makes every downstream experiment cheap. And as [Vlad](/people/vlad) put it at the end of his demo, it is genuinely fun to build, which is a signal in itself.","category":"mindset","author":"Vlad","author_url":"https://indie.md/people/vlad/","source_url":"https://indie.md/events/indie-tm-7-timisoara-april-2026/","source_type":"event"}
{"id":"advice/ocr-upload-cuts-onboarding-friction","type":"advice","url":"https://indie.md/advice/ocr-upload-cuts-onboarding-friction/","markdown_url":"https://indie.md/advice/ocr-upload-cuts-onboarding-friction.md","title":"Let users upload a photo instead of filling a form","description":"When your onboarding asks for data the user is already holding on a card or a document, do not make them transcribe it. Let them photograph it and run OCR to pre-fill the fields. Raul's RCA flow replaces a dozen manual inputs with a single photo of the car registration and the c…","content":"When your onboarding asks for data the user is already holding on a card or a document, do not make them transcribe it. Let them photograph it and run OCR to pre-fill the fields. Raul's RCA flow replaces a dozen manual inputs with a single photo of the car registration and the current policy, and every field removed before the user sees value is a measurable lift in completion. The pattern generalizes to anything printed: an invoice, an ID, a label, a receipt. The cost of an OCR pass is now low enough that asking the user to type what a camera could read is a friction you are choosing to keep.","category":"product","author":"Raul","author_url":"https://indie.md/people/raul/","source_url":"https://indie.md/events/indie-tm-9-timisoara-may-2026/","source_type":"event"}
{"id":"advice/anchor-price-on-the-pain","type":"advice","url":"https://indie.md/advice/anchor-price-on-the-pain/","markdown_url":"https://indie.md/advice/anchor-price-on-the-pain.md","title":"Anchor your price against the cost of the problem","description":"When your product removes a specific, expensive risk, price it against that risk, not against competitors or hours saved. Renzi's homepage leads with \"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 f…","content":"When your product removes a specific, expensive risk, price it against that risk, not against competitors or hours saved. Renzi's homepage leads with \"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 it stands in for: retroactive tax on undeclared rent, daily interest and penalties, and the tax authority's own estimate of what you owe. Against a number that large, a subscription of a few tens of lei a month is a rounding error, and the pricing objection mostly disappears. Find the worst outcome your product prevents, do that math out loud on your landing page, and let it dwarf your price.","category":"business","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/events/indie-tm-9-timisoara-may-2026/","source_type":"event"}
{"id":"advice/mine-search-console-for-content-gaps","type":"advice","url":"https://indie.md/advice/mine-search-console-for-content-gaps/","markdown_url":"https://indie.md/advice/mine-search-console-for-content-gaps.md","title":"Mine your own Search Console data for content gaps","description":"Your Google Search Console data already tells you what Google thinks you rank for, in your users' real words, for free. Pull the full query-and-page table from the Search Console API (it returns up to 25,000 rows per call against the dashboard's thousand or so), then look for tw…","content":"Your Google Search Console data already tells you what Google thinks you rank for, in your users' real words, for free. Pull the full query-and-page table from the Search Console API (it returns up to 25,000 rows per call against the dashboard's thousand or so), then look for two signals. First, striking-distance keywords: queries where you sit in positions four to twenty with plenty of impressions but a weak click-through rate. Google already considers you relevant, and nudging one of those pages from position twelve to position six can multiply its traffic. Second, content gaps: cluster the queries under their shared parent term, and any cluster with real impressions but no dedicated page is a pre-validated brief for an article you have not written yet. It is the cheapest, highest-signal SEO loop there is, and it needs no paid keyword tool.","category":"seo","author":"Mircea","author_url":"https://indie.md/people/mircea/","source_url":"https://indie.md/events/indie-tm-9-timisoara-may-2026/","source_type":"event"}
{"id":"advice/diacritics-in-content-not-urls","type":"advice","url":"https://indie.md/advice/diacritics-in-content-not-urls/","markdown_url":"https://indie.md/advice/diacritics-in-content-not-urls.md","title":"Keep diacritics in your content, strip them from your URLs","description":"On a Romanian site, the diacritics question has a practical answer. Google treats \"programari\" and \"programări\" as equivalent, so writing correct Romanian with diacritics in your body copy, headings, and titles carries no ranking penalty and reads as more credible to a human. Wh…","content":"On a Romanian site, the diacritics question has a practical answer. Google treats \"programari\" and \"programări\" as equivalent, so writing correct Romanian with diacritics in your body copy, headings, and titles carries no ranking penalty and reads as more credible to a human. Where diacritics genuinely cause trouble is in URL slugs, file names, and image alt text, where encoding breaks links and tooling. So the rule most Romanian practitioners settle on: diacritics in the content the reader sees, none in the identifiers the machine parses. The same logic applies to any language with accented characters.","category":"seo","author":"Doru","author_url":"https://indie.md/people/doru-bota/","source_url":"https://indie.md/events/indie-tm-9-timisoara-may-2026/","source_type":"event"}
{"id":"advice/health-data-compliance-is-engineering","type":"advice","url":"https://indie.md/advice/health-data-compliance-is-engineering/","markdown_url":"https://indie.md/advice/health-data-compliance-is-engineering.md","title":"For health data, compliance is an engineering posture, not a badge","description":"The moment your product stores diagnoses, treatments, or medical images, you are processing special-category health data under Article 9 of the GDPR, which is prohibited by default and allowed only on a specific lawful basis such as the provision of health care or explicit conse…","content":"The moment your product stores diagnoses, treatments, or medical images, you are processing special-category health data under Article 9 of the GDPR, which is prohibited by default and allowed only on a specific lawful basis such as the provision of health care or explicit consent. That triggers a higher bar than ordinary personal data: a data protection impact assessment, encryption and pseudonymization, access limited to staff bound by confidentiality, and a signed data-processing agreement that makes you the processor to each clinic's controller. A \"GDPR Compliant\" badge on the landing page is marketing; for health data it has to be a documented engineering and legal reality. When you build a vertical SaaS that touches a regulated data class, the binding constraint is not your feature set, it is the data class, and you should design for it from the first table you create.","category":"product","author":"Doru","author_url":"https://indie.md/people/doru-bota/","source_url":"https://indie.md/events/indie-tm-9-timisoara-may-2026/","source_type":"event"}
{"id":"advice/free-tool-as-top-of-funnel","type":"advice","url":"https://indie.md/advice/free-tool-as-top-of-funnel/","markdown_url":"https://indie.md/advice/free-tool-as-top-of-funnel.md","title":"Ship a free tool as the top of your funnel","description":"A narrow, free, no-signup tool that solves one frequently-Googled problem is not charity, it is a lead magnet. The whole email-deliverability category (mail-tester, GlockApps, Warmy) gives away the check because running it is itself an admission of a problem the same vendor sell…","content":"A narrow, free, no-signup tool that solves one frequently-Googled problem is not charity, it is a lead magnet. The whole email-deliverability category (mail-tester, GlockApps, Warmy) gives away the check because running it is itself an admission of a problem the same vendor sells the fix for: it self-qualifies warm prospects and ranks for high-intent queries like \"does my email go to spam.\" The indie sequence is to ship the magnet first, let it accumulate search traffic and word of mouth, and only then bolt on the paid layer (monitoring, a plugin, a done-for-you fix). The catch the room raised: a magnet only works if activation is effortless, so the single most important screen is the one where the user gets their answer.","category":"distribution","author":"Valentin Bora","author_url":"https://indie.md/people/vali/","source_url":"https://indie.md/events/indie-tm-9-timisoara-may-2026/","source_type":"event"}
{"id":"advice/niche-audio-plugin-as-a-product","type":"advice","url":"https://indie.md/advice/niche-audio-plugin-as-a-product/","markdown_url":"https://indie.md/advice/niche-audio-plugin-as-a-product.md","title":"A niche audio plugin is a textbook solo product","description":"Audio plugins are an underrated indie category. A single technical builder can ship one well-scoped effect or instrument on a standard framework like JUCE, which handles the brutal cross-format, cross-platform plumbing (VST3, AU, AAX across Windows, macOS, and Linux) so you can …","content":"Audio plugins are an underrated indie category. A single technical builder can ship one well-scoped effect or instrument on a standard framework like JUCE, which handles the brutal cross-format, cross-platform plumbing (VST3, AU, AAX across Windows, macOS, and Linux) so you can focus on the sound. The economics fit one person: you sell perpetual licenses for 30 to 100 dollars directly to producers, the distribution channels already exist (KVR Audio, Plugin Boutique, YouTube and producer communities), and a perpetual framework license covers six figures of revenue before it costs you recurring money. The moat is not raw engineering, it is taste and DSP craft: a recognizable sound and a brand producers trust. Small, focused, and durable, which is exactly the kind of product that outlasts trends.","category":"product","author":"Ionut F.","author_url":"https://indie.md/people/ionut/","source_url":"https://indie.md/events/indie-tm-9-timisoara-may-2026/","source_type":"event"}
