4
17 Comments

Show IH: Built a free Shopify app that shows ingredient safety ratings on beauty product pages — looking for beta testers

Hey IH! 👋

I'm Donghyun, a solo dev from Korea. Spent the last few months building Skinin Ingredient Checker — a free Shopify Theme App Extension for clean beauty and skincare brands.

The problem:
Clean beauty shoppers want to know what's in their products before buying. Most Shopify brands have no easy way to show this without expensive custom dev work.

What Skinin does:

  • Reads ingredient list from product description
  • Displays a color-coded "What's inside?" widget on the product page
  • 1,500+ ingredient database across 10 categories
  • Customers can tap each ingredient to see safety details
  • Takes ~5 min to set up, 100% free

Where I'm at:

  • Live on Shopify App Store ✅
  • 0 reviews (this is the hard part 😅)
  • Reached out to 20+ brands via Instagram DM — crickets so far

What I'm looking for:
If you run or know a Shopify beauty/skincare store, I'd love to get 3-5 beta testers. I'll personally help with setup and would love honest feedback.

Happy to answer any questions — and would love feedback on my outreach strategy too!

posted to Icon for group Building in Public
Building in Public
on June 16, 2026
  1. 1

    cold DMing brands is rough, you're asking a busy store owner to trust a stranger's app with 0 reviews. what usually works better is finding like 3-5 people who genuinely care about clean ingredients and getting them to use it loudly, instead of 20 cold brands who'll never reply. for you that's probably the skincare subreddits or the clean-beauty crowd already arguing about ingredient safety, they convert way better than cold DMs. reviews come from people who already wanted the thing, not from outreach tbh.

    1. 1

      This is a really fair point, and honestly it stings a little because I think I already knew it deep down.I've been chasing brands because that felt like the "real" channel — but you're right that nobody trusts a stranger's app with 0 reviews, no matter how good the pitch is.The people already arguing about ingredient safety in skincare subreddits have already done the hard part — they care. I haven't been talking to them at all.Going to actually try this instead of just nodding along. Appreciate you saying it plainly.

  2. 1

    I'm not a beauty store, so I can't be a beta tester, but I work in ecommerce and conversion, so let me help where I actually can: your App Store listing. It's the page every channel feeds into, including those DMs, and right now it's underselling you.

    You asked about outreach, but I'd look upstream first. Even if your DMs worked perfectly, they send a merchant to a listing that has to close the deal, and two things there are working against you.

    First, the media. Your screenshots are shrunk and only show properly once someone clicks to expand, and a merchant comparing five apps won't click. The first thing in your gallery should show the widget live on a real product page, big, at a glance, ideally a short video or an annotated before-and-after. Let them see it working in two seconds without lifting a finger. For a visual product like yours, that one image probably matters more than any line of copy.

    Second, the description sells the feature, not the merchant's win. It explains what the widget is (color-coded, reads the product description, 1,500 ingredients), but not what it does for their store. A merchant doesn't buy "color-coded breakdown." They buy "shoppers trust what's inside, so they buy with more confidence," and "my clean and vegan positioning becomes something customers can see and tap, instead of fine print." Right now your first line leads with the feature. Lead with the outcome, then spell out the differentiation: once this is installed, ingredient transparency becomes a visible selling point that the brands next to you don't have. That's the "why should I care" the listing is missing.

    One trust thing: your "I'll personally help you set it up" offer is great, and it's buried in your DMs. Put it on the listing. With 0 reviews, a visible human offering hands-on help does a lot of the work a review would.

    On outreach: 20 DMs is a tiny sample, so crickets is normal, don't read defeat into it. Sharper angle: lead the message with the merchant's outcome plus a 20-second Loom of the widget live, not "I built an app." And target stores that already list ingredients on their product pages. They've already told you they care about exactly this, which makes them a far warmer audience than brands you'd first have to convince to care.

    Quick question: of the 20 you messaged, were they already showing ingredient lists on their pages, or were you trying to get them to start? The first group converts much easier, and that alone might be the fix.

    1. 2

      This is exactly the kind of feedback I needed — thank you for taking the time.
      You're right that I've been obsessing over outreach copy while the listing itself was an afterthought. To your question: looking back at the list, most were brands
      with strong "clean beauty" positioning, but I never checked whether they actively talk about ingredients as part of their brand story (blog posts, INCI glossaries, "what's in it" content) versus just listing them on the page because they're legally required to. That's a real blind spot — I was treating "clean beauty brand" as the qualifier, when "already treats ingredient communication as a selling point" is the one that actually matters.Going to fix the listing media and copy first, then re-target
      with that distinction in mind. Really appreciate this.

  3. 1

    The build sounds clean and the 5-minute setup is the right call for Shopify. On your actual question, why 20+ brands went quiet and whether transparency is a conversion, trust, or nice-to-have problem, there is a third possibility worth naming, because it might be a silent reason for some of the no-replies.
    The moment your widget puts a "safety rating" on an ingredient, the brand is now publishing a safety claim about its own product, on its own product page.
    That is a regulated space. In the US the FTC expects health and safety claims to be substantiated, and an ingredient supplier or a competitor can challenge a "rating" as misleading.
    In the EU the cosmetics claims rules (the Common Criteria) specifically forbid denigrating ingredients that are legally permitted, which a hazard-style score can do.
    A brand that has a compliance person will not bolt a third-party "safety score" onto its product page without clearing it first, and that hesitation looks exactly like "bad outreach" from your side.
    The fix is mostly framing. "Ingredient transparency" and "what's inside" plus sourcing info is descriptive and defensible, and brands can adopt it freely.
    "Safety ratings" is a claim they have to own. If you reposition around transparency rather than safety scoring, you remove the thing that makes a careful brand pause.
    The brands most likely to want this are also the ones most sensitive to claims risk, so getting ahead of it might turn some of those silent no's into yes's.

    1. 1

      This is the most useful comment on this whole post — thank you.
      I hadn't thought about it from the compliance angle at all. I was treating "safety rating" as a UX label, not realizing it reads as a claim the brand has to defend.
      The distinction you're drawing — descriptive/transparency vs. claim/score — makes a lot of sense. Reframing something like "Low concern" to something more like "Commonly used" or "Well-documented" seems like it would remove the claim entirely while still giving shoppers the same information.
      Quick question: do you think the underlying categorization (safe/caution/avoid) is the actual problem, or is it mostly the labeling/language on top of it? I'm trying to figure out if this is a copy fix or a deeper structural one.

      1. 1

        Good question, and I think it is more structural than copy.
        Renaming Low concern to Commonly used helps, but the part that creates the exposure is the ranking itself.
        The moment you sort or score products as safe, caution, avoid, you are publishing a comparative safety judgment, and that is a claim the brand can be asked to defend no matter which words sit on top.
        The version that holds up is to drop the verdict layer and surface sourced facts instead. Show what the ingredient is, whether it appears on a restricted or watch list (an EU Annex entry, a specific database flag), what the documented use is, and let the shopper draw the conclusion.
        You are then describing public information, not issuing a safety grade.
        So I would treat the safe caution avoid scale as the thing to rework, and keep the underlying ingredient data as your real asset.
        That keeps the usefulness while removing the part that reads as a claim.

        1. 1

          This is sharper than the copy fix I was about to ship — you're right that renaming the label doesn't touch the actual structure underneath it. Here's the tension I'm sitting with: the at-a-glance color coding is also the thing that makes the widget useful and visually compelling (someone in e-commerce actually told me this is my strongest asset for the App Store listing). If I drop the verdict entirely and just show facts, I lose the quick-scan format. Would it hold up if the color coding stayed, but was driven by objective flags (appears on an EU Annex / flagged in a specific database / no flags found) instead of a subjective safe/caution/avoid call? Same visual format, but the thing underneath it is a documented fact, not a judgment.Or does even that still read as a verdict once it's color-coded?

          1. 1

            Good instinct, and you can keep most of what you want, but the honest answer is that a green to red scale reads as a verdict no matter what feeds it.
            Color is the message. A shopper scans the color and never reads the flag underneath, so if the palette runs good to bad, you are still publishing a comparative safety judgment, just with the words removed.
            There is also a trap inside the flags themselves. Appearing on an EU Annex is not one thing.
            Annex II is prohibited, but Annex III is permitted within limits, so the ingredient is legal and fine when used correctly.
            If both turn the dot red, you are labeling a legally permitted ingredient as dangerous, which is the exact kind of denigration the EU claims rules try to prevent.
            Same issue if no flags found renders as green, since absence from a list is not a safety endorsement.
            So the version that survives is to color by status, not quality. Let the color encode a neutral category rather than a rank: restricted use, listed for disclosure, no listing found, in colors that do not form a danger gradient, with a legend that says in plain words this shows regulatory status, not a safety rating. You keep the at a glance scannability and the visual asset, you just stop the palette from doing the grading. And phrase the empty state as not on the lists we check rather than clear or safe.
            Short version: you can keep color coded and at a glance.
            You cannot keep red equals bad, because that is the verdict, whatever the data behind it

            1. 1

              This is the cleanest articulation of the problem I've gotten — thank you.The Annex II vs III point is something I genuinely hadn't accounted for. My current flagging treats "appears on an EU list" as one bucket, which means I may have already been labeling legally-permitted-but-restricted ingredients the same as banned ones. That's worse than I thought. Going to rework the categories to something like
              "Restricted use" / "Listed for disclosure" / "Not on the lists we check" — neutral status labels, no gradient, with the legend stating plainly that this shows regulatory
              status, not a safety rating.One thing I'm genuinely unsure about: at what point does
              this become something I should run by an actual regulatory professional before shipping, rather than iterating based on forum feedback? Not rhetorical — this thread has gotten more rigorous than I expected for something this product shaping.

              1. 1

                Good question, and the honest answer is that the reframe you just made is what shrinks the need, not the other way around. Forum feedback is great for shaping the model, that part you are doing right. The trigger for an actual professional review is narrower: it is the moment the product makes a representation that a third party relies on and could be held to. As a "safety rating," every widget output was a claim a merchant had to stand behind, so a review would have been worth it early. As "regulatory status, not a safety rating," surfacing sourced public facts (this ingredient appears on Annex III, here is the entry), you are describing data rather than grading it, and that pulls most of the claim surface out. So you can ship the beta as a transparency tool on that footing.
                Where I would actually pay for a couple of hours of a cosmetics-claims lawyer: right before you either add any scoring or verdict layer back, or start marketing it to merchants as a compliance or safety feature. Those are the two moments the claim comes back. A cheap intermediate step first is to make every flag cite its exact source, so the tool is provably publishing public facts, which is the most defensible posture and the one a lawyer review then just confirms.
                (Mapping exactly this line is what I build Tovrio for, so happy to be a sounding board as you rework the categories.)

  4. 1

    Honestly, what makes me hesitate isn't the lack of reviews.

    It's the fact that 20+ outreach attempts produced almost no signal.

    I've seen founders assume that means they need better outreach when sometimes it means the thing being tested isn't the part buyers are evaluating first.

    That's why I'd be careful before optimizing the DM strategy too much.

    The feedback I'd want most right now is whether beauty brands see ingredient transparency as a conversion problem, a trust problem, or just a nice-to-have.

    Those can look similar early on but usually lead to very different outcomes.

    1. 1

      This hits harder than I want to admit.
      I've been treating the silence as a messaging/outreach problem this whole time — better subject lines, better timing, more personalization. It never occurred to me that the silence itself might be the data, telling me the thing isn't ranked high enough on their list to even respond to.
      Honestly I don't know the answer to conversion vs. trust vs. nice-to-have yet. I've been asking brands to install the app, not asking them how they think about ingredient transparency as a business problem.
      Those feel like very different conversations. The first is a pitch. The second is research.
      If you were in my position, would you go back to the brands that went silent and ask the research question directly? Or is that conversation better had with brands that already do some form of ingredient communication (even manually), since they've already decided it matters?

      1. 1

        That's exactly why I stopped short earlier.

        I don't think the interesting part is choosing between those conversations.

        I think it's the decision sitting underneath that choice.

        I'd be careful answering that casually because it can make the same outreach data mean very different things.

        I wouldn't try to unpack that properly in a thread.

        If you'd like the tighter version, drop your email and I'll put it together properly.

        1. 1

          Appreciate you taking it seriously enough to not
          want to rush it. Happy to take this to email —
          [email protected]

          Genuinely curious what's underneath the choice
          I haven't seen yet.

          1. 1

            Sent you a note over email.

  5. 1

    Looks good can you post this on my forum : ) https://dev.us.kg/

Trending on Indie Hackers
I got my first $159 in sales after realizing I was building in silence User Avatar 53 comments Three Days Before Launch, I Let My Own Tool Tear Me Apart User Avatar 37 comments I thought I was building a news visualization tool. Users thought it was a catch-up tool. User Avatar 31 comments I got tired of rewriting the same content for 9 different platforms. So I built Repostify. User Avatar 30 comments A pattern I keep seeing in EdTech: traffic isn't usually the problem. User Avatar 23 comments I Rejected a $15K Acquisition Offer for My Multi-Agent IDE — Here's the Full Breakdown User Avatar 21 comments