Case study · 2026 · Web · Custom software
Selling access to a private Telegram channel by hand means manual invites, missed expiries, and members slipping in and out without you knowing.Built a subscription product that automates the invite, the expiry, and the share card.
Tippsziget sells access to a private Telegram tips channel via Stripe Checkout (HUF). A webhook generates a one-shot invite link, emails the customer, and @tippszigetbot redeems it on /start. Customers can also buy directly from inside the bot via inline buttons - those purchases auto-activate the moment the webhook fires, with no web detour. A daily cron sends expiry reminders, removes expired members on day zero, and at trial-end issues a 50%-off coupon link. Bot admins are derived dynamically from the channel's Telegram admins (cached 5 min). The operator also gets a share-card generator that emits branded Story + post variants with a win or loss marker on every leg, confetti on wins, and a Nettó nyeremény footer summing (odds − 1) per won leg.
- Next.js
- TypeScript
- Postgres
- Stripe
- Telegram

Inside the build



Overview
- 5
- Subscription packages
- 0
- Manual invites
- Daily
- Expiry sweep
- 9:16 + 3:4
- Share-card formats
Tippsziget is a subscription product where customers buy access (15/30/60 days, lifetime, or a 3-day trial) and get a one-shot invite link to a private Telegram channel with daily analysed tips. The Stripe webhook generates the invite, the bot redeems it on /start, and a daily cron handles expiry reminders + channel cleanup. A built-in share-card generator (9:16 Story + 3:4 post) emits branded slips with a win or loss marker on every leg, confetti on wins, and a 'Nettó nyeremény' footer.
What shipped
What it does
- Subscription packages · 15/30/60 days, lifetime, 3-day trial
- Stripe checkout (HUF) → automatic Telegram channel invite
- Cron-driven expiry reminders and channel cleanup
- Branded share-card generator (Story 9:16 + post 3:4)
- Bot inline-buy + post-purchase auto-activation
The problem
- Manual invite-link management leaks free access
- Expiry chasing eats time and customers slip through
- Posting tips without branded slips · no shareability
Why it matters
- Every purchase auto-grants channel access · zero manual work
- Expiry handled by cron · members removed on day zero, no slip-through
- Every winning slip ships ready to share on social
How it shipped
- 01 · BRIEF
Pin the friction · manual invites and missed expiries.
Decision the product rests on: every step that touched a person in a spreadsheet has to disappear · invite generation, channel removal, expiry reminders, trial-coupon issuance.
- 02 · BUILD
Stripe checkout → webhook → one-shot invite → bot redemption.
5 packages priced in HUF in Stripe Checkout, plus an inline-buy flow inside the Telegram bot. The webhook issues a one-shot channel invite token; /start <token> redeems it and grants channel access until the order's expiry.
- 03 · SHIP
Live with launch promo enforced server-side, cron + bot unattended.
First 10 buyers of the 30-day for 1 990 Ft promo is enforced from paid-order counts (not from a coupon code that leaks). The home page is static; a tiny /api/promo JSON fetch surfaces remaining slots. The site is SEO-saturated · 50+ Hungarian posts, glossary, FAQ, JSON-LD (Organization, Article, FAQPage, Service+Offer+Review, HowTo, Speakable, BreadcrumbList), per-post dynamic OG images.
Stack
Checkout
Stripe HUF · 5 packages
15/30/60 days, lifetime, plus a 3-day free trial. Inline-buy inside the bot uses the same Checkout sessions.
Telegram bot
@tippszigetbot · inline-buy + /start redeem
The bot is the second checkout: inline buttons map to the same Stripe sessions, the customer never leaves Telegram. On the web side, the webhook generates a one-shot invite link, emails the customer, and the bot redeems the token on /start <token>. Bot admins are derived live from the channel's Telegram admins (cached 5 min) so the operator never edits a config file.
Cron
Expiry, removal, trial coupons
Daily job pushes reminders before expiry, removes expired members on day zero, and issues a 50%-off coupon link the moment the trial ends.
Share-card
9:16 + 3:4 · per-leg markers
Singles + parlays, a win or loss marker on every leg, drawn as SVG because the font has no glyph for it, confetti on wins, hidden odds on losses, and a Nettó nyeremény footer summing (odds − 1) per won leg.
Case study
“We were managing the channel by hand · sending invite links one by one, kicking expired members from a spreadsheet, and posting tips as plain text nobody shared. The studio built a system where the website sells the access, the bot lets people buy without leaving Telegram, and every winning slip comes out as a branded card ready for socials. The expiry day used to be the worst day · now it's a cron line.”
More work
Next project
Use AI Easily