2
7 Comments

30 days promoting a self-hosted tool with $0 budget. Here's what actually worked (and what got me banned)

A month ago I posted my first update about Pronto — an open-source POS with Telegram/WhatsApp notifications — here on IndieHackers. That post was about what I built. This one is about what happened after.

The short version: I got banned from Reddit, found my real customers in Facebook groups I didn't expect, and discovered that Google indexes Dev. to articles faster than I thought. Here's the full breakdown.


The channels I tried, ranked by what actually worked

1. Dev. to — surprisingly effective for organic traffic

I published two technical articles on Dev. to. One about the notification architecture, one about multi-tenancy with Supabase RLS. Combined, they got 23 reads in the first month — which sounds small, but the important detail is where those reads came from: Google search, not Dev. to's own feed.

The articles started ranking within days. People searching for "open source POS Docker" and "Supabase multi-tenancy Next.js" found them organically. That traffic compounds. A post I wrote five weeks ago is still sending visitors today.

Lesson: on Dev. to, you're not writing for the Dev. to audience. You're writing for Google. Treat every article title as a search query your ideal reader would type.

2. Facebook groups — the channel I underestimated

This was the real discovery of the month. I joined groups for dissatisfied users of competitors — specifically "Fresha Users Support (Unofficial)" — and watched the posts.

Within a week, someone posted: "I absolutely hate Fresha and how they extract fees on top of the monthly subscription fee. 20% is way too much."

That post was my opening. I commented with empathy first, then mentioned Pronto with a specific price comparison. No aggressive pitch. Just: here's what the alternative looks like, here's the price, here's the link if you're curious.

The key insight: these people are already looking for an alternative. They're not browsing a marketplace hoping to discover something. They're actively frustrated and asking "what are you all using instead?" Commenting there is not spam — it's a relevant answer to a direct question.

What I don't do: comment on personal posts, on posts that aren't about dissatisfaction with tools, or in groups where Pronto is clearly not relevant.

3. LinkedIn — slow but building

I post twice a week from my personal profile, not a company page. The content splits into three types: technical insights (how I solved a specific engineering problem), founder observations (the self-hosted market is underserved), and honest numbers (infra cost at zero customers: $22/month).

Growth is slow. But comments from other indie hackers and occasional engagement from developers have led to a handful of profile visits and one conversation with a potential Agency plan customer.

The thing that works on LinkedIn: ending posts with a genuine question. Not "what do you think?" but something specific — "what's your preferred multi-tenancy pattern?" or "has anyone solved Stripe access from a non-supported country?"

4. Reddit — what got me banned

I'm going to be honest about this because I've seen other founders make the same mistake.

I posted about Pronto in a few relevant subreddits. Got banned from the account within a week. No warning, no explanation — account just stopped being able to post.

Looking back, I did everything wrong: new account, posted across multiple subreddits in the same week, included links. The algorithm saw a pattern that looked exactly like spam, because it was — even if my intentions weren't.

I've since created a new account and I'm doing it properly this time: two weeks of only upvoting and commenting with no links, answering technical questions in r/selfhosted and r/docker where I can genuinely help. No mentions of Pronto at all yet. Building karma the boring way.

The lesson: Reddit has a long memory for patterns. You get one chance per account to establish yourself as a contributor. Use it correctly.

5. Hacker News — not yet, but soon

My HN account has 8 karma after a month of daily comments. That's not enough for Show HN to get any traction — posts from low-karma accounts get buried before they're seen.

The target is ~50-100 karma before I attempt a Show HN post. I'm commenting on threads about self-hosted software, Docker, PostgreSQL, and SaaS infrastructure — the exact space where Pronto lives. The comments that get upvoted are always the ones with a specific technical observation, never the ones that are generally positive.

Show HN: "Pronto — open-source self-hosted POS with Telegram/WhatsApp notifications, one Docker command" is a good HN title. But the timing matters. I'm waiting until the karma is there.


The one paying customer, and what happened

Pronto got its first Starter subscriber ($19/month) a few weeks after launch.

Three days later, they requested a refund. Reason: "changed my mind."

I tried to process the refund through Whop (my payment processor) and got an error: "not enough funds available to refund this amount." The $19 was still on hold pending my account verification. To refund a customer, I'd need to top up my balance first — essentially paying $19 out of pocket to return $19 to someone who was technically me testing my own product.

I let the case time out. Whop sided with the "customer" (me) and processed the return automatically. My dispute rate took a hit, but it was a test purchase anyway.

The actual lesson here isn't about refunds. It's that payment infrastructure as a non-US solo founder is genuinely broken in ways that don't become visible until the first transaction.

I'm in Batumi, Georgia. Stripe doesn't support Georgian sellers. Paddle rejected my application. LemonSqueezy showed "bank payouts unavailable in your country." I'm currently on Whop with pending KYC verification that's blocking withdrawals.

If you've solved payments from a non-Stripe country, I'm still looking for what actually works at scale.


What the numbers look like after 30 days

  • GitHub stars: still modest — I haven't done any coordinated launch push yet
  • Dev. to reads: 23 (100% from Google organic, 0 from Dev. to feed)
  • LinkedIn followers: 19 (from 0)
  • Reddit: banned once, rebuilding with new account correctly
  • HN karma: 8 (slow, intentional)
  • Paying customers: 1 (refunded, but real)
  • Monthly infra cost: $22
  • Revenue: $0 net after refund

What I'm doing differently in month two

More Facebook groups. The signal-to-noise ratio there is better than any other channel for finding people who are actively switching tools. I'm joining groups for Vagaro users, Booksy users, and Square Appointments users — same playbook as Fresha.

Consistent Dev. to publishing. One article every 1-2 weeks. Each one targeting a specific search query. The compounding nature of that traffic is the best low-effort channel I've found.

Reddit the slow way. No shortcuts. Pure karma building through technical answers.

Show HN when ready. That's the one channel that could generate a real spike — but only if the timing and account are right.


The self-hosted market is genuinely underserved. There are real business owners who want to own their data, don't want marketplace commissions, and will actually pay for software that respects that. Finding them is just slower than I expected.

GitHub: github.com/SGrappelli/pronto
SaaS: trypronto.app

If you're building something in the self-hosted or open-source space, I'd love to compare notes on what distribution channels have actually worked for you.

on June 2, 2026
  1. 2

    This is one of the more useful distribution breakdowns I’ve seen here because you’re not just listing channels, you’re showing where actual buyer intent appeared.

    The Facebook group insight is probably the strongest signal. Dissatisfied users of Fresha, Vagaro, Booksy, Square Appointments, etc. are much closer to purchase than generic “self-hosted” audiences. They already have the problem, already understand the category, and are actively comparing alternatives.

    I’d be careful not to split month two too evenly across every channel though. Dev.to, Reddit, HN, LinkedIn, and Facebook all behave differently. If Facebook groups produced the clearest buyer pain, I’d make that the main acquisition loop and use Dev.to as the compounding technical trust layer.

    The sharper month-two test might be:

    Can Pronto convert frustrated salon/spa operators from competitor groups into demos or trial installs before worrying about broad open-source traffic?

    That would make the next 30 days much easier to judge.

    1. 1

      This reframe is useful and honestly more focused than how I've been thinking about it.
      You're right that Facebook groups are the only channel where I've seen actual buyer intent — not developer curiosity, not indie hacker solidarity, but someone actively saying "I'm paying too much and want out." That's a different quality of signal.
      The honest answer to your question: Pronto doesn't have a demo environment yet. Self-hosted requires Docker, which filters out most salon operators immediately. The SaaS version at trypronto.app is the right conversion path for that audience — sign up, get a subdomain, see it running in 2 minutes without touching a terminal.
      So month two is probably: Facebook groups as the primary acquisition loop targeting competitor-dissatisfied users → trypronto.app as the landing → focus on whether that funnel converts at all before worrying about GitHub stars or HN karma.
      Dev. to stays as the background compounding layer, not the focus.
      The 30-day test you're describing is cleaner than what I had. I'll report back.

      1. 1

        That “2 minutes without touching a terminal” line is probably more important than the open-source angle for the buyer you’re describing.

        The salon owner leaving Fresha or Vagaro is not looking for infrastructure freedom first. They’re looking for: lower cost, fewer limits, and something they can actually start using without technical friction.

        So the interesting part now is less “can open-source scheduling get attention?” and more:

        Can competitor frustration reliably convert into fast SaaS trials if the onboarding feels easy enough?

        That becomes a much cleaner funnel to optimize.

        I have a few thoughts on tightening the positioning, trial flow, and competitor-group conversion path specifically for that audience. Share your email if you want me to send them privately.

        1. 1

          Appreciate the framing — you're right that "2 minutes without a terminal" is the actual value prop for that audience, not the open-source story.
          I'd rather keep the conversation here for now — happy to hear your thoughts on positioning and trial flow publicly. Others building in the same space might find it useful too, and I'll get better feedback if it's visible.
          What specifically feels off about the current onboarding angle?

          1. 1

            Fair. I’ll keep it high-level here.

            The main thing I’d pressure-test is this: the first screen should sell the switch, not the software.

            A salon owner leaving Fresha or Vagaro probably does not care about open-source first. They care about cost, control, and getting a working booking page without technical friction.

            So I’d make the public promise much closer to:

            “Launch your salon booking page in 2 minutes, without platform bloat.”

            The deeper part is mapping the trial flow around that promise: what they see first, what they enter, what proof they get, and when you ask them to commit.

            That’s the part I’d keep out of a public thread because it gets very specific to your funnel.

            1. 1

              "Sell the switch, not the software" is a useful reframe. You're right that the current homepage leads with what Pronto is, not with what the person leaving Fresha is feeling.
              The "2 minutes to a working booking page" promise is testable — that's actually close to the real experience on the SaaS version. The gap is that the current homepage doesn't say that anywhere near the top.
              I'll take the funnel mapping piece offline and work through it myself — the trial flow is specific enough that I can probably figure out the weak points by watching where the first few signups drop off.
              Appreciate the pressure-test. Useful enough that it's already on my list for this week.

              1. 1

                Makes sense. Glad the framing helped.

                Good luck with the test this week.

Trending on Indie Hackers
Your build-in-public audience is not your market. I learned the difference the slow way. User Avatar 233 comments Built a "stocks as football cards" thing. 5 days in, my launch tweet got 7 views. What am I missing? User Avatar 33 comments How to automatically turn customer feedback into high-converting testimonials User Avatar 29 comments Why Claude Skills Are Becoming Important for Tech Careers User Avatar 25 comments Spent months building LazyEats AI. Spent 1 day realizing I have no idea how to get users. User Avatar 23 comments Week 10+11: PDF cluster, blog launch, 143 indexed, and a new compression feature User Avatar 19 comments