SubBot
A billing bot that guards your private Telegram channel 24/7. Paid subscribers in, lapsed ones out — automatically. Stripe subscriptions plus USDT/TON for crypto-native clients.

The problem we were hired to solve.
Before: channel owner checked @username lists every morning against a spreadsheet of payments, DMed late payers, removed expired members by hand, fielded constant 'did my payment go through?' questions. Around 10 hours a week consumed by billing ops alone — and chargebacks happened anyway.
After: three payment buttons in the welcome screen — TON, Stripe, USDT. Subscribers get instant access on a successful charge. BullMQ pings them at 7, 3, and 1 days before expiry. On expiry they're kicked automatically and sent a one-tap renewal link. Owner's job is content. Bot's job is everything else.
Context
Private-channel owners — signal traders, fitness coaches, VIP clubs — were spending hours every week on payment ops: verifying transfers manually, DMing late payers, kicking expired members from a spreadsheet. The bot replaces that entire job with a 24/7 automated billing and access-control system.
Approach
Node.js with grammY for the bot core — fastest Telegram framework we've used in production. Stripe Subscription API with verified webhooks for recurring card payments. TON Connect and NowPayments API for on-chain USDT. BullMQ on Redis runs the expiration queue — every reminder and every kick is a scheduled job that survives restarts and node failures. MongoDB stores the subscriber graph with TTL indexes for automatic cleanup. Owner-side: an admin panel for tiers, discount codes, renewal windows, and live MRR.



How this project was actually made.
Every project leaves a paper trail. Figma comments, Notion specs, GitHub history, Vercel deploy logs, Telegram threads, first-week analytics. Numbers below are real and available on request under NDA.
◆ Screenshots of any artifact available on request. Confidential details redacted.
Key features
- ◆Hybrid payments — Stripe subscriptions + TON/USDT crypto
- ◆Smart expiration tracking with auto-kick on lapse
- ◆Retention reminders fire 7, 3, and 1 day before expiry
- ◆One-click cancel and tier change from bot menu
- ◆Admin panel — subscriber graph, MRR, churn rate live
Results
Launched March 2026. First month on a single private fitness channel: 200+ paid subscribers onboarded, zero manual interventions from the owner. Three payment rails meant crypto-native subscribers didn't drop off at the Stripe-card wall. Owner's weekly billing time went from ~10 hours to under 20 minutes.
Tech stack
What the client said.
Ran my private fitness channel for two years mostly by hand — payments in DM, kicking expired members by checking a spreadsheet every morning. After installing SubBot I literally stopped checking. First month: 200 new paid subs, all onboarded automatically, zero 'did my payment go through?' messages. MRR doubled inside thirty days.