Telecom and privacyTelegramBackendWebAdminPayments

Subscription VPN

A bot, a mini app and an admin panel on top of billing and server agents written from scratch

What it gave the business

The subscription runs without a human: payment, provisioning, renewal and cut-off happen on their own. The owner counts revenue instead of registering users by hand.

The problem

A subscription service is not a connection client but a pipeline: sell a plan, take the money, provision access on a server automatically, renew it and cut it off on time. The whole chain had to be built end to end.

My role

Everything: backend, server agents, bot, mini app, admin panel, infrastructure, monitoring and tests.

What was built

  • Plans are sold and paid for inside a messenger: a bot and a web mini app instead of a separate site
  • Four payment channels, including cryptocurrency and the messenger's own currency
  • The backend owns the subscription lifecycle, billing and reporting; background work runs on a queue
  • Server-side agents are written in Go and provision access automatically — nobody registers anything by hand
  • A React admin panel: dashboards, servers, users, promo codes
  • 731 automated tests, metrics monitoring with dashboards and real-time error tracking
Bot and mini appplan choice, paymentBillingsubscriptions, job queueGo agentprovisioningServerSubscription link back to the userAdmin paneldashboards, promo codes

The engineering core

A whole service, not an app: Python on the backend, Go in the server agents, React and TypeScript in the mini app and admin panel, PostgreSQL and Redis, a background job queue, migrations, monitoring and 731 tests — 68k lines across 398 files. Provisioning, renewal and cut-off run without a single manual step.

Stack

PythonFastAPISQLAlchemyPostgreSQLRedisGoReactTypeScriptViteDockerNginx

Integrations

Telegram Bot APITelegram StarsCryptoBotЮKassaPrometheusGrafanaSentry

Tell me about your project

I will tell you how long it takes and what it costs before any work starts. If it is not my kind of task, I will say so right away and point you elsewhere if I can.

Message on Telegram
Next case
Mobile VPN
→