NENVEST

Stripe payment bot + Telegram-native admin

Předplatitelská platforma pro uzavřenou investiční komunitu Capitalist Invest / Rynochok

👤 Solo full-stack🌍 SubTech / Wealth-tech✅ ProductionDemo na vyžádání

Kontext

Capitalist Invest / Rynochok — uzavřená investiční komunita s placeným předplatným: denní analytika trhů, týdenní research-reporty, 8 tematických kanálů (akcie, dluhopisy, volatilita, krypto, makro, commodity, research, portfolio), live chat. 500+ členů, partnerství s médiem «Ostanniy Kapitalist».

Postavil jsem dva systémy, které spolupracují: Stripe Payment Bot — Telegram frontend pro platby předplatných (jediný bod interakce s uživatelem), a Admin Panel — Telegram-native administraci pro tým (promo, ceník, broadcasty, migrace).

Moje role: solo full-stack — od architektury po produkci. Stripe bot, Telegram-native admin, webhook-pipeline, provozní dashboard v Google Sheets, Docker deploy a Cloudflare Tunnels. Před tím jsem řídil digitální komunitu kolem 1000 lidí — manuálně dělal rozesílky, komunikaci s klienty, opakované platby, přidávání a mazání členů. Tyto znalosti a zkušenosti mi umožnily postavit komplexní platformu pro automatickou správu členství.

Co z toho vzniklo

Dva systémy, které spolupracují: Stripe-bot pro uživatele a admin panel pro tým.

// system

Architektura

01 — user-facing
Stripe Payment Bot
live
Uživatel (Telegram)
/subscribe · /cancel · /status
command
Stripe Payment Link
+ metadata: telegram_id, product_id
Webhook Receiver
Flask · :3001 · idempotent (event.json)
Schedulers
warning · delete
Event Transmitter
routing per event type
Bot Notifier
success · failed · expiring
Stripe
DUAL accounts
Google Sheets
state machine
Closed Chat
invite / kick
02 — team-facing
Admin Panel
live
Admin / tým
whitelist Telegram-ID
inline keyboard
Cloudflare Tunnel
no public IP needed
Admin Bot
Flask · :3003 · 7-step state machine
JSON store
atomic writes
Promo
CRUD
Pricing
change · sync
Mass-sender
filter · test · send
Migration
2-step pipeline
Stripe API
subs · prices
Google Sheets
read-only sync
Bot API
broadcast
production

Technické informace

Struktura, infrastruktura a procesy vývoje.

Stripe-domain depth

Plný lifecycle předplatného: Payment Links s metadata-routing, Subscription Schedules pro price-migrations bez škody pro aktivní subs, webhook idempotency s 30denní TTL event-registry (ochrana před retry a dvojitými platbami), failed-payment escalation s retry logikou.

Reliability & atomicity

Atomické 3-fázové zpracování webhook události: ack se commitne POUZE po úspěchu všech kroků. Mutex-protected JSON-storage s atomic writes (tempfile → rename) místo samostatné DB — opodstatněno velikostí týmu, běží rok bez incidentů.

Multi-process orchestration

Paralelní async procesy (bot, webhook receiver, API server, Telegram monitor, warning/delete checkers) pod tmux, se samostatnými logy. Koordinace přes Stripe events + sdílený Sheets — bez orchestrátoru typu Celery nebo Kubernetes.

CI/CD + observability

GitLab pipelines: lint → tests (Pytest s mock Stripe přes recorded fixtures) → build → deploy. Daily log rotation, structured logs per process. Cloudflare Tunnel pro webhook ingress bez veřejné IP.

Pragmatic architecture

JSON soubory místo DB, Google Sheets místo samostatného dashboardu, in-memory FSM s atomic snapshots místo Redisu. Každé rozhodnutí je opodstatněno velikostí týmu a objemem — bez overkillu, max udržovatelnost.

Hot-reload & zero-downtime

Configy (tarify, whitelist, promo) se přečítávají přes mtime-tracking — změna bez restartu bota. Rolling deploy přes Docker: nový kontejner se zvedne vedle, traffic se přepne, starý se zastaví — nula přerušení aktivních plateb.

Technologie

Backend / runtime

Python 3.11+Flask 3.1pyTelegramBotAPI 4.27python-telegram-bot 22Telethon 1.24asynciomulti-process orchestration

Payments

Stripe 12.2dual-account orchestrationSubscription SchedulesPayment Linkswebhook idempotency

Persistence / data

JSON files (atomic writes)Google Sheets (gspread 6.2).env confighot-reloadable configs

Integrace

Telegram Bot APIStripe APIGoogle Sheets APIEmail (SMTP)

Infrastruktura

DockerCloudflare Tunnelsshell-orchestrationdaily log rotationEurope/Kyiv TZ

Co dál?

Tohle je jeden z mých cases. Zbytek je na hlavní.