tarunmottlia / stickly
git clone https://github.com/tarunmottlia/stickly.git
Drop-in rewards widget for SaaS. Let your users earn your own product credits for starring your repo, joining your Discord, or leaving a G2 review — one script tag, rewards granted by signed webhook to your own ledger.
—
stars, 24h
+51
stars, 7 days · #883
+51
stars, 30 days · #5,811
51
★ total · +51% this week
1
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageTypeScript
LicenseMIT
Created2026-10-13 (6d ago)
Last push6d ago
Watchers1
OwnerUser
GitHub topics
creditsembeddable-widgetgamificationgrowthin-app-rewardsjavascript-widgetplgproduct-led-growthreferral-programreferral-program-for-small-businessretentionrewardsrewards-platformrewards-systemsaas-starteruser-engagementuser-engagement-and-retentionuser-engagement-automationwidgetwidget-toolkit
Links
- GitHub: github.com/tarunmottlia/stickly
- Homepage: https://stickly.live
- Releases · Issues · Hacker News mentions
README excerpt
# Stickly **Drop-in rewards widget for SaaS.** Let your users earn *your own product credits* for starring your repo, joining your Discord, or leaving a G2 review — one script tag, rewards granted by signed webhook to your own ledger. stickly.live · Get a free key · Integration guide for agents --- ## What it is Your users already like your product. Stickly gives them a short list of things they could do for you — follow, star, join, review, refer — and pays them in the currency you already have: **your own credits**. Stickly never holds the credits. It tells you a task was claimed; you add the credits to your own ledger. One script tag on your side, one webhook endpoint, and a dashboard where someone who is not an engineer can change the rewards without a deploy. [code] ## Install **One script tag.** That is the whole client install. [code] Then tell Stickly which of your users it is talking to, with a token you sign on your server: [code] [code] And grant the credits when the webhook arrives: [code] Get your keys at **app.stickly.live** — free tier, no card. ## What your users can do to earn Twenty-six built-in rewards across twenty-two platforms, and any URL you like on top of them. | | | |---|---| | **Reviews & listings** | G2 · Capterra · Trustpilot · Google · Product Hunt · Play Store · App Store · Chrome Web Store | | **Community** | Discord · Slack · Telegram · WhatsApp · Reddit | | **Developer** | Star a GitHub repo · Follow on GitHub · Star a GitLab repo | | **Social** | X · LinkedIn · YouTube · Instagram · TikTok · Facebook | | **Share** | Post to X, LinkedIn or Reddit with copy you write | | **Referral** | Invite a friend, tracked through to signup | Anything else is just a URL: paste it, Stickly reads the domain for the icon and the button label, and it behaves like the rest. > **Stickly does not verify that a task was done.** There is no scraping, no API > check, no automation. The user says they did it and you decide whether to trust > that. Rewards can require a **link or a screenshot as proof**, which holds the > credits until you approve the claim in Activity. > > Check each platform's own terms before you reward an action on it — some of > them prohibit incentives, and that is your call to make, not ours to hide. ## Why not just build this yourself? The widget is the easy part. A list of links with a `localStorage` flag is an afternoon's work, and if that is genuinely all you need, build it — you do not need us. What takes weeks is everything behind it: - **Identity.** The user id has to come from a token you sign on your server, never from the browser. Read it from the request body and anyone can mint credits in a console loop. The signing secret has to be per-key, not shared, or one tenant can sign for another. - **Delivery.** Signed webhooks with a timestamp tolerance, a constant-time comparison, and verification over the **raw bytes** — re-serialise the body before checking and every signature breaks. Then re