7
93 Comments

Product Hunt gave me almost no traffic, so I built a free tool around the problem

I launched my B2B SaaS OS on Product Hunt earlier this month.

The result was basically zero traffic and zero sales.

Instead of adding more features, I started looking at the acquisition problem.

The product is a $249 one-time source-code foundation for developers building B2B SaaS with Next.js, Supabase, PostgreSQL and Stripe.

I realized asking someone to immediately spend $249 on a developer infrastructure product gives them very little reason to trust it.

So I built a free tool as the entry point:

SaaS Production Readiness Check

It checks 10 areas that can cause problems in a multi-tenant SaaS:

Tenant isolation
Supabase RLS
Authorization
RBAC
Stripe webhook authenticity
Stripe webhook idempotency
Stripe state synchronization
API key revocation
Invitation race conditions
Auditability

It's a self-assessment, not an automated security scanner or certification. No account required.

You can try it here:

https://andrady.co/check

I'm now testing whether giving developers something genuinely useful first can create a better path to the paid product.

If you're building a SaaS, what production issue would you add to this checklist?

on September 23, 2026
  1. 1

    Solid lesson. Which channel has worked best for you so far?

  2. 1

    Solid lesson. Which channel has worked best for you so far?

  3. 1

    Nice progress. What is the next thing you are focusing on?

  4. 2

    Solid lesson. Which channel has worked best for you so far?

    1. 1

      So far, Indie Hackers has produced the most meaningful conversations. X and Reddit are still experiments for me, so I’m focusing on where I can have genuine technical discussions rather than just chasing impressions.

  5. 1

    What made you pick this stack over the alternatives?

    1. 1

      Mainly because I wanted a stack that gives me strong primitives without hiding the important parts. Next.js gives me the app layer, Supabase/Postgres gives me database + auth + RLS, and Stripe handles billing. It keeps the core infrastructure inspectable and easy to extend.

  6. 1

    Nice work shipping it. What has been the biggest challenge since launch?

    1. 1

      Honestly, distribution has been the biggest challenge. The product itself is working, but getting it in front of the right developers is much harder than building it. That's actually what led me to build the free production-readiness check as an entry point.

  7. 1

    This is useful. How are you finding your first users so far?

    1. 1

      Mostly through technical communities and content so far. I’m focusing on showing the actual problems the product solves rather than pushing the product directly. I’ve also started using the free readiness check as an entry point: andrady.co/check

  8. 1

    How did you decide this was worth building in the first place?

    1. 1

      Honestly, I was tired of rebuilding the same SaaS infrastructure every time — auth, multi-tenancy, RBAC, RLS, billing, API keys, audit logs, etc. I figured other developers were probably wasting the same time, so I built the foundation I wished I had.

  9. 1

    Appreciate the honesty here, most people only share the wins.

    1. 1

      Yeah, I figured the failures are probably more useful to share than pretending everything went perfectly. The biggest lesson so far has been that building the product and getting the right people to see it are two very different problems.

  10. 1

    Interesting take. Would you still recommend this approach to someone starting today?

    1. 1

      Yes, but I'd keep the scope tight. I'd still choose the stack because it lets you move quickly without abstracting away the database and security layer. The important part is understanding what you're shipping rather than treating the stack as a magic shortcut.

  11. 1

    Great breakdown. What feedback have you had from early users?

    1. 1

      Mostly positive on the technical side so far. The biggest feedback has been that having auth, multi-tenancy, RLS, RBAC and billing already wired together saves a lot of setup time. I'm still early enough that I'm actively looking for more developers to stress-test it.

  12. 1

    Curious how long it took before you saw the first real results?

    1. 1

      Honestly, I’m still waiting for the first real sales result. The product was ready before launch, but getting it in front of the right developers has been the harder part. I’m treating distribution as the next problem to solve rather than pretending I’ve figured it out already.

  13. 1

    Appreciate the honesty here, most people only share the wins.

    1. 1

      Thanks. I figured sharing the actual process would be more useful than pretending everything went perfectly. I'm learning a lot from the gap between building something technically solid and actually getting it in front of the right people.

  14. 1

    Solid lesson. Which channel has worked best for you so far?

    1. 1

      So far, technical communities have been the most useful. Indie Hackers has given me the most meaningful conversations, while I'm still testing X and Reddit. I'm realizing the quality of the audience matters much more than raw traffic.

  15. 1

    Interesting take. Would you still recommend this approach to someone starting today?

    1. 1

      Yes, but I'd keep the approach focused. Build something you genuinely understand, validate the problem early, and don't assume that shipping automatically creates distribution. I'd spend as much time figuring out how to reach the right users as building the product.

  16. 1

    Thanks for writing this up. Bookmarking it for later.

    1. 1

      Appreciate it. Hope it’s useful when you get around to it.

  17. 1

    Curious how long it took before you saw the first real results?

    1. 1

      Still waiting on the first sale, honestly. The biggest result so far has been getting real technical conversations and learning which problems people actually care about. I'm treating that as validation before trying to scale distribution.

  18. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

    1. 1

      The readiness check is staying free. The B2B SaaS OS is the paid product at $249 one-time. The idea is to make the free check genuinely useful on its own, then let people who need the actual infrastructure foundation discover the paid product naturally.

  19. 1

    Interesting take. Would you still recommend this approach to someone starting today?

    1. 1

      Yes, but I’d keep it focused. Build something you genuinely understand, validate the problem early, and treat distribution as part of the product—not something you figure out after shipping.

  20. 1

    I'd split tenant isolation into two checks: requests made by a signed-in user, and work that runs later without that request context. A scheduled email or export job can fetch a record by ID and accidentally skip the company scope even when every API route is correct. A test with two tenants and the same kind of record would make that boundary much easier to verify.

    1. 1

      That's a really good distinction. I was treating tenant isolation mostly around request-time access, but background jobs definitely create another boundary where the original tenant context can disappear. I'll add that as a separate check/test case.

  21. 1

    Solid lesson. Which channel has worked best for you so far?

    1. 1

      So far, Indie Hackers has produced the most meaningful conversations. X and Reddit are still experiments, so I'm focusing on channels where I can have genuine technical discussions rather than just chasing impressions.

  22. 1

    Hey Wendel, building a free diagnostic tool to solve the acquisition problem is a much better long-term play than relying on a Product Hunt launch.
    Since your foundation uses Next.js and Supabase, here are two production issues I'd definitely add to that checklist:
    Database Connection Pooling: Deploying serverless Next.js without proper pooling (like PgBouncer) will quickly max out Postgres connections under load.
    Domain Authentication (SPF/DKIM/DMARC): You listed invitation race conditions, but a more common production failure is having B2B invitation emails land in spam because the sending domain isn't strictly configured.
    This is a perfect entry point to build trust for a $249 technical product. Great pivot.

    1. 1

      This is exactly the kind of feedback I was hoping to get. The background-job tenant boundary is already something I’m going to split out, and I’ll add connection pooling and domain authentication to the next version of the checklist. Appreciate the detailed suggestions.

  23. 1

    Solid lesson. Which channel has worked best for you so far?

    1. 1

      So far, Indie Hackers has produced the most meaningful conversations. X and Reddit are still experiments, so I'm focusing on channels where I can have genuine technical discussions rather than just chasing impressions.

  24. 1

    Solid lesson. Which channel has worked best for you so far?

  25. 1

    Solid lesson. Which channel has worked best for you so far?

  26. 1

    Solid lesson. Which channel has worked best for you so far?

  27. 1

    Solid lesson. Which channel has worked best for you so far?

  28. 1

    The shift from trying to sell the full product straight away to giving people something useful first makes a lot of sense, especially for developer infrastructure. $249 isn't necessarily expensive for the right buyer, but there's a pretty big trust gap when they haven't seen the product in action yet.

    One thing I'd add to the checklist is observability around background jobs and async workflows. It's easy to test the happy path and forget about what happens when a job fails, runs twice, gets stuck, or processes something out of order. Those issues can be surprisingly painful once you have real customers using the system.

    I'm also curious whether the free check ends up being more useful as a lead generator or simply as a way to learn what problems developers are actually worried about. Either way, it seems like a much more interesting experiment than just adding another feature and hoping the Product Hunt traffic improves.

    1. 1

      That’s a really good point. Background jobs are easy to overlook because the happy path works while failures, retries and ordering issues stay invisible until you have real usage. I’m going to add observability around async workflows to the checklist. And right now I’m treating the free check as both a lead generator and a way to learn what developers actually worry about.

  29. 1

    The pivot from “add features” to “earn trust” is the real launch here. A free readiness check makes the $249 ask feel less like a blind first date—I’d watch which checklist item turns the most visitors into curious buyers.

    1. 1

      Exactly. That’s what I want to learn now. I’m tracking which parts of the check people engage with and whether completing it leads to interest in the OS. If a specific failure point consistently gets people curious, that’s probably where I should focus more of the content.

  30. 1

    Once developers use the readiness check, what behavior would tell you it is creating qualified demand for the $249 product rather than just attracting free-tool usage?

    1. 1

      I’d look for behavior beyond just completing the check: sharing the result, clicking through to the OS, checking the demo, visiting the product/pricing page more than once, or asking technical questions about implementation. A completed check tells me there’s interest; those actions would tell me whether there’s potential buying intent.

      1. 1

        That’s a pretty clear progression from interest to buying intent. Could be useful to compare notes on what you see in practice over email sometime, if you’re open to it.

  31. 1

    On my case, PH gave me great boost!

    1. 1

      That’s great to hear. I think the bigger lesson for me is that the outcome depends heavily on having an audience or distribution going into the launch. I had almost no existing audience, so I’m experimenting with building that distribution before relying on another launch.

  32. 1

    One I'd add: what happens when a Stripe webhook fires but your own downstream action against it times out or comes back ambiguous — not "webhook was malformed," but "we got the event, tried to act on it, and don't actually know if that action landed." Idempotency covers duplicate delivery, but it doesn't cover your own side failing silently mid-response. I've been stuck on exactly this for a confirm-before-execute product (action dispatched, result unknown, don't want to blindly retry since retry itself can be the dangerous move) and haven't found a clean answer yet — curious if your "auditability" item already covers that gap or if it's really a separate one.

    1. 1

      That's a really good distinction. I don't think my current auditability check cleanly covers the “action succeeded or outcome is unknown” state. I'd treat that as a separate reliability check rather than pretending idempotency solves it. The confirm-before-execute case you described is especially interesting because blindly retrying can itself be unsafe.

  33. 1

    Solid lesson. Which channel has worked best for you so far?

  34. 1

    Solid lesson. Which channel has worked best for you so far?

  35. 1

    Solid lesson. Which channel has worked best for you so far?

  36. 1

    Solid lesson. Which channel has worked best for you so far?

  37. 1

    Solid lesson. Which channel has worked best for you so far?

  38. 1

    Solid lesson. Which channel has worked best for you so far?

  39. 1

    Solid lesson. Which channel has worked best for you so far?

  40. 1

    Nice progress. What is the next thing you are focusing on?

    1. 1

      Right now I’m focusing on distribution and learning from the readiness check. I want to get enough developers through it to see which problems resonate most and whether that actually translates into interest in the $249 OS before I build anything else.

  41. 1

    Thanks for writing this up. Bookmarking it for later.

  42. 1

    Clear and practical, thanks. Did anything surprise you along the way?

    1. 1

      Definitely. I expected the hardest part to be building the product, but the bigger surprise has been how different distribution is from development. I also didn't expect the technical conversations around the readiness check to be this useful for discovering problems I hadn't considered.

  43. 1

    Really relatable. How much time do you put into this each week?

  44. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

    1. 1

      The readiness check will stay free. The B2B SaaS OS is the paid product at $249 one-time. I want the free tool to stand on its own as something genuinely useful, with the paid product being the next step for people who need the actual infrastructure.

    2. 1

      Pretty much every day right now. I split the time between building, talking to developers, and distribution. Lately I've been deliberately shifting more time toward distribution because I've learned that shipping the product is only half the job.

      1. 1

        sorry wrong reply

  45. 1

    Thanks for sharing the numbers, that makes it much easier to follow.

  46. 1

    Solid lesson. Which channel has worked best for you so far?

  47. 1

    Solid lesson. Which channel has worked best for you so far?

  48. 1

    What made you pick this stack over the alternatives?

  49. 1

    Appreciate the honesty here, most people only share the wins.

  50. 1

    Same pattern here, so I can share how it looks from the inside a bit further along. UtilitySEO's entry point is a free scan (up to 2,000 pages, no account) for exactly your reason: nobody spends real money on a tool from a site with no reputation. But our domain authority is 3 and search sends us about 4 visits a month, so the free tool hasn't solved discovery by itself. It converts attention you already have; it doesn't create it. The checker has to go where your buyers already are. For yours, I'd take the Stripe webhook idempotency item into Supabase and Stripe communities as a standalone post, since it's the one I'd bet most people fail without knowing. Which of the 10 gets the most "fail" answers so far?

    1. 1

      That’s a really good point about discovery vs. conversion. I’m seeing the same thing already — the checker needs to be distributed through the technical communities where the problem is being discussed. I don’t have enough completed checks yet to say which item has the highest fail rate, but Stripe webhook idempotency is definitely one I want to turn into a standalone technical post. I’ll track the failure distribution as more people use it.

  51. 1

    Solid lesson. Which channel has worked best for you so far?

  52. 1

    Solid lesson. Which channel has worked best for you so far?

  53. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

  54. 1

    Solid lesson. Which channel has worked best for you so far?

  55. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

  56. 1

    This is useful. How are you finding your first users so far?

  57. 1

    That shift from adding features to earning the first bit of trust feels right. For a $249 infra product, I’d keep the checker narrow and show one concrete failure, then let people decide if the paid foundation is worth exploring. Otherwise “production readiness” can become another generic checklist. I’d track which check actually makes people continue, not just how many finish it.

    1. 1

      That's a good distinction. I don't want the checker to become a generic checklist either. I'm going to track which individual checks create the most drop-off, failures, and clicks toward the OS. If one consistently gets developers digging deeper, that's probably the problem worth building the content around.

  58. 1

    Really good writeup, thanks for sharing it. What's the next thing you're planning to try here?

    1. 1

      Next I’m focusing on distribution and learning from the checker. I want to get enough developers using it to see which checks actually resonate, then turn the strongest findings into standalone technical content rather than just adding more product features.