Telecom and privacyTelegramBackendWebAdminPayments

Subscription VPN

A bot, a mini app and an admin panel over an own billing system and node agents

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 users automatically — nobody registers anything by hand
  • A React admin panel: dashboards, servers, users, promo codes
  • Around 731 tests, metrics monitoring with dashboards, and error tracking
Bot and mini appplan choice, paymentBillingsubscriptions, job queueGo agentprovisioningServerSubscription link back to the userAdmin paneldashboards, promo codes

The engineering core

The broadest case by stack: Python on the backend, Go in the agents, React in two interfaces, PostgreSQL and Redis, a background job queue, migrations, monitoring and tests — around 68k lines across 398 files. Not an app but a whole service, and it is my own product.

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
Escrow Marketplace