Open-Source Cold Email & Warmup Platform
Warmbly is the open-source platform for cold email: warm your mailboxes, send campaigns, and triage every reply. Run it on our cloud or self-host the whole thing.
Paste or import the comments of your Instagram post, apply the giveaway rules and pick random winners with a verification hash. Free, no sign-up, runs in your browser.
MarketingHTML · JavaScriptGitHub @bemanagementgp-bitOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Instagram giveaway winner picker – fair, verifiable draws with certificate export. Be Management Tools.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Pick random winners from the comments of an Instagram giveaway (or any list of participants). Paste, upload or import comments, apply the giveaway rules, draw winners with a Web Crypto seed and a SHA-256 verification hash, and export a winner certificate. Everything runs in the user's browser; nothing is uploaded.
Live: https://giveaway-tool.vercel.app/ (placeholder – replaced after deploy)
Free
@user comment, user: comment, user comment, or the instagram.com desktop layout with the username on its own line; noise lines like "Reply" / "12 likes" / "3d" are dropped), Upload CSV/TXT/JSON (columns username/user/author/name + text/comment/message auto-detected, plain lists too), Manual chip input. "Load sample" with 63 realistic comments (mentions, duplicates, hashtags, comments without tags, 2 bots).crypto.getRandomValues; winners derived deterministically from the seed over the sorted eligible list; verification hash = SHA-256(sorted usernames + seed). "Repeat draw", "Exclude winners & draw again", "Replay a seed".localStorage (giveaway_state_v1).Pro (one-time, price from config.js)
instagram_basic, instagram_manage_comments, pages_read_engagement). Chain: /me/accounts → instagram_business_account → /{ig_user_id}/media?fields=id,shortcode,permalink (paged) → /{media_id}/comments?fields=username,text,timestamp,like_count&limit=50 (follows paging.next). Token kept in memory unless "remember on this device" is ticked.giveaway_history_v1) + "exclude previous winners".Gates are enforced in app.js via isPro() / Studio.gate(); the UI listens to pro:changed.
index.html tool page + SEO content + FAQ (JSON-LD WebApplication + FAQPage)
styles.css _shared/base.css + app styles
app.js parsing, rules, draw, certificate, Instagram import (vanilla JS, no build step)
studio.js shared canvas / drop zone / export helpers (copy of _shared/studio.js)
monetize.js shared theme / toast / analytics / AdSense / Pro license helpers
config.js window.APP_CONFIG (site URL, AdSense, GA, price, LICENSE, NEWSLETTER, PAYMENTS)
privacy.html privacy policy (required for AdSense)
terms.html terms of use
robots.txt, sitemap.xml, vercel.json, favicon.svg, .gitignore
npx serve .
No build step. Open the printed URL.
Deploy the folder as a static site on Vercel (vercel --prod). After the first deploy, replace the placeholder everywhere:
sed -i 's/giveaway-tool.vercel.app/giveaway-tool.vercel.app/g' index.html privacy.html terms.html robots.txt sitemap.xml config.js README.md
Then run node _shared/apply-brand.js giveaway-picker from the repo root to inject the shared header, hero, footer and lead card. Add giveaway to bm-payments/catalog.js (APPS) if not already there.
ADSENSE_CLIENT: "ca-pub-XXXXXXXXXXXXXXXX" in config.js. Slots: sidebar-1, below-tool. privacy.html already discloses advertising cookies.GA_ID: "G-XXXXXXX". Events: sample, upload, draw (winners, alternates, participants, anim), download, copy (what), share, instagram_import, pro_click, begin_checkout, license_activated.PAYMENTS.url / PAYMENTS.app: "giveaway" use the bm-payments Mercado Pago service. Alternatively set PRO_CHECKOUT_URL and LICENSE.store_id / product_id for Lemon Squeezy. Until configured, only LICENSE.test_keys work locally.NEWSLETTER.url (Formspree / ConvertKit / Beehiiv) to show the lead card that apply-brand.js injects.graph.facebook.com when the Pro Instagram import is used.