You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(course access): funnel -- first course free, Telegram login for two more, 10000 Stars unlocks everything #1492
Owner directive, 2026-10-07 (translated): viewing any first course is free. To view two more courses of the visitor's choice, they must log in via Telegram. After the third course, force payment. This builds the funnel that prepares users to pay 10000 Telegram Stars for the bot. In the bot, these clients get the free channel; paying 10000 Stars for the whole service unlocks all courses.
Access stages
Stage
Who
Access
Gate
1
anonymous
any ONE course, visitor's choice, full lessons
none
2
Telegram-logged-in
two MORE courses of their choice
Telegram login (free)
3
paid
ALL courses, forever
one-time 10000 XTR (Telegram Stars) via the bot
Stage tracking must survive per-visitor (localStorage for anonymous choice; server-side once logged in).
Surfaces
Site: static /learn// pages under apps/website. Gating is client-side until a backend exists; the paid tier needs a real check eventually.
Telegram Login Widget for stage 2 (auth via the bot).
Bot: Stars invoice (currency XTR) for the one-time 10000-star product; unlocks all courses for that Telegram account. Logged-in non-payers get the free channel (digest/updates) inside the bot.
Open questions
Which bot takes the payment -- identify the public bot (token, @Botfather payments setup) vs the internal render broker.
Where login -> entitlement state lives (bot backend is the natural home; the static site needs a tiny verify endpoint or signed token).
Whether stage-1 "first course free" resets per browser or is permanent per visitor.
Activity