DField SolutionsMérnöki stúdió · Budapest
Loading · Töltődik
Skip to content

Tippsziget

Hungarian premium sports-tips subscription that gates a private Telegram channel · Stripe checkout, auto-invite, branded share cards.

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 per-leg ✓/✗ markers, confetti on wins, and a 'Nettó nyeremény' footer.

Listen
CASE STUDY · 2026

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 per-leg ✓/✗ markers, confetti on wins, and a Nettó nyeremény footer summing (odds − 1) per won leg.

DELIVERY·AUTOMATEDSTACK·Next.js · Stripe · PostgresBOT·@tippszigetbot
Anonymous client

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.

Anonymous·Operator · premium sports-tips channel (under NDA)UNDER NDA
5Subscription packages
0Manual invites
DailyExpiry sweep
9:16 + 3:4Share-card formats

What's on screen

Frame breakdown
Tippsziget · Hungarian premium sports-tips subscription
  • 01User surface

    The whole experience the user sees

    This frame shows the live product: hungarian premium sports-tips subscription that gates a private telegram channel · stripe checkout, auto-invite, branded share cards. Every component is ours · scope, design, code, deploy.

  • 02Stack behind the screen

    What's powering it: Next.js, TypeScript, Postgres

    5 stack components run behind this frame · Next.js, TypeScript, Postgres drive the visible UI; the rest sit in the data layer. All studio-owned.

  • 03What we shipped

    Subscription packages · 15/30/60 days, lifetime, 3-day trial

    Every purchase auto-grants channel access · zero manual work

  • 04Status

    Private deploy · under NDA.

    Per the client's request the URL stays private · the build, architecture, and lessons can be shared in a scoping call.

How it shipped

Timeline
  • 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 · ARCHITECTURE

    Stack decisions before any code.

    Decision doc captured the data flow, Next.js, TypeScript, Postgres, Stripe role split, and the failure modes we'd handle in v1 vs defer. Cross-service boundaries (where AI ends and the web app begins) were drawn here so neither side leaked into the other later.

  • 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.

  • 04 · POLISH

    Performance, accessibility, and observability.

    PSI / a11y / coverage budgets enforced as launch gates. Logging + metrics wired before cut-over · the team can answer 'is it working?' from a dashboard, not a Slack thread. Threat-model checklist signed off before traffic hits the box.

  • 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.

What shipped

04
  • 01Checkout

    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.

  • 02Telegram 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.

  • 03Cron

    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.

  • 04Share-card

    9:16 + 3:4 · per-leg markers

    Singles + parlays, per-leg ✓/✗ (SVG-rendered because the font has no glyphs), confetti on wins, hidden odds on losses, and a Nettó nyeremény footer summing (odds − 1) per won leg.

From the video

Frame by frame
  • Tippsziget landing with subscription packages
    01Frame

    Landing · packages and the promo counter

    Five packages in HUF, with the launch-promo counter (first 10 buyers of the 30-day for 1 990 Ft) surfaced from a tiny /api/promo JSON fetch — the rest of the page stays static.

  • Telegram bot — inline-buy flow
    02Frame

    Bot · inline-buy without leaving Telegram

    Bot-originated purchases hit the same Stripe checkout — the moment the webhook fires, the bot auto-activates the order and the customer never opens the web checkout.

  • Telegram bot · package selection
    03Frame

    Bot · package selection inline

    Inline buttons map directly to Stripe Checkout sessions · the bot stays the surface, the payment lives in Stripe.

  • Stripe Checkout step in HUF
    04Frame

    Stripe Checkout · HUF, no detour

    From a bot button to the Stripe checkout in one tap · paid orders trigger the webhook → invite link → bot redeem chain end-to-end.

2026YEAR
02SERVICES
05TECHNOLOGIES
PRIVATESTATUS

THE PROBLEM

  • Manual invite-link management leaks free access
  • Expiry chasing eats time and customers slip through
  • Posting tips without branded slips · no shareability

WHAT THE CLIENT GOT

  • 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

WHAT WE DELIVERED

  • +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

STACK

  • Next.js
  • TypeScript
  • Postgres
  • Stripe
  • Telegram
Previous projectAxisFit Next projectUse AI Easily
talk to us

Like what you see? Let's build yours.

Short email or a 30-min call · 24h reply.

Start a project