Back to Blog

Subscriby 5.0: Connectors. One Membership. Every Platform.

Subscriby 5.0: Connectors. One Membership. Every Platform.

Subscriby 5.0 is out, and it is the biggest architectural redesign we have ever shipped. Not the biggest feature. Not the biggest release. The biggest change to what Subscriby is since the first line of it was written.

Here is the one-sentence version: Subscriby is no longer a Telegram membership tool. It is a membership platform that runs on Connectors, and Telegram is the first one.

Here is the one-sentence version for everyone already running a community on it: nothing changed for you, and you have nothing to do. Your bots, your channels, your members, their invite links, their renewals, your payouts: all of it migrated by itself, and the bot says exactly what it said yesterday, word for word. We checked. We recorded 113 complete bot conversations before the rewrite and compared them byte by byte after it. Same bytes.

Everything below is what that sentence cost us, and what it buys you.


The Short Version

  • Connectors. A project installs any number of connectors. A plan can grant access on several platforms at once. One purchase, every place.
  • Telegram is the first official connector, with everything it did before plus a few things it could not do.
  • Discord is next and is under development right now. Slack, WhatsApp, Microsoft Teams, Discourse, Ghost, Google Drive, GitHub, Reddit, Guilded and Zoom are on the roadmap.
  • A Connectors Marketplace, on the marketing site and inside the app, with a published SDK and a conformance kit, so a platform we have never heard of can become a connector without us.
  • A long tail of improvements that landed along the way: outage compensation, automatic bot failover, a cash-flow card, an account-wide transactions ledger, member notices that route by intent, and a great many smaller things listed further down.

How It Used to Work (A Confession)

Subscriby grew up on Telegram, and it showed. Not in the interface, which was tidy, but underneath, where it counts.

When we started this programme, the word Telegram appeared 2,711 times across 372 files of application code. Every one of the ten languages we ship carried 235 Telegram-shaped sentences. A creator account literally could not exist without a Telegram chat id; the database refused the row. A member was a chat id. Access was an invite link. A resource was a channel, a group or a supergroup, and the code compared those three words to decide what it could do. One webhook handler received every update from every bot and decided everything.

None of that was wrong for a Telegram product. It was simply a monolith with a Telegram tattoo, and adding a second platform meant touching all of it: the schema, the payments, the recovery program, the portal, the API, the docs, the bot, and the 215 test files that assumed a chat id was a person.

We could have bolted Discord onto the side. We have seen products do that. You can always tell, because the second platform gets half the features and the bugs live in the seams.

So we did the other thing.


How It Works Now

Subscriby 5.0 has a core that knows nothing about any platform, and a set of connectors that know everything about one.

The core speaks in neutral nouns

An installation is a connector set up on a project. An identity is a person’s account on a platform, and one member can hold several. A space is a place: a channel, a guild, a role, a forum. A grant is a row in an access ledger saying this purchase gives this identity access to this space, and whether that is pending, held, granted, revoked or failed. Those four tables replaced a dozen platform-shaped columns, and every screen, job, reminder and bot button now reads from them.

Connectors speak through ports

A connector is a package that implements ports: how to install and verify itself, how to resolve who is talking, how to link a place, how to grant and revoke access, how to send a message, how to receive one, how to classify a failure, how to run recovery. It declares what it can do in a manifest, connector.json, and the core believes the manifest: which kinds of place it gates, which plan shapes those can be sold under, how fast it may send, how long a message may be, whether it can hold a pass holder at the door until the window opens.

Where a screen needs platform-specific words or widgets, the connector fills a slot. There are eighteen of them, from the install form to the recovery page to the “Open in…” button on a member’s portal card. If a connector fills no slot, the screen simply shows nothing platform-shaped.

The Telegram code moved out, and the door locked behind it

Every Telegram line moved into the Telegram connector package: handlers, wizards, payments, recovery, the bot’s ten languages, the tests. The core now contains the word Telegram zero times. An automated guard fails our build the moment anyone types it back in. (Yes, we had to exempt this blog post. The guard has no sense of occasion.)

What that buys you

  • A plan that grants a Telegram channel and a Discord role sells as one plan and grants as one purchase.
  • A member who bought before linking their second account gets a pending grant that turns into real access the moment they link it. Nothing to reissue.
  • Notices route by intent: an invite arrives on the platform the access is on, a support reply where the member wrote from, a receipt on the account they prefer, and email only when nothing else can reach them.
  • Recovery, the doctor, outage handling and health probes work per connector, in that connector’s own words.
  • The Growth tier unlocks multiple connectors per project; Free and Starter run one. That is the whole pricing change.

Telegram: The First Official Connector

Every existing project became a Telegram installation at the deploy, with the same token, the same webhook and the same registered commands. No re-linking, no new BotFather trip, no member noticed anything.

What Telegram gained on the way:

  • Capability switches per project: messaging, broadcasts, support relay, built-in payments and each recovery facet can be switched off on one project without touching another.
  • The Connector Doctor, which asks about every channel and group the bot manages and reports in plain sentences with a fix button next to each.
  • Telegram Stars as the connector’s own currency. Its name, icon, rate and explainer come from the connector, and a second connector can bring its own currency the same way.
  • Outage handling. When Telegram refuses a project’s bot, dependent plans go off sale everywhere, the Connectors page says so, and when the bot returns or is replaced, every affected member is compensated the lost time automatically, banked at the end of their membership for recurring plans and at once for one-time purchases. Invites that never arrived are re-sent.
  • Automatic bot failover on Growth: with a healthy standby bot registered, a refused bot is replaced by itself, plans return to sale, and every member with an email on file gets the new link.
  • Health probes every fifteen minutes on Growth, hourly for everyone else.
  • A bot command menu that is owned by code: /projects, /newcode, /subscription, /invoices and /help answer beside /start, /donate, /language and /cancel.

Discord Is Next

Discord is under development and is the second connector. Roles are the grant, single-use invites cover members who are not in the server yet, slash commands carry the creator flows, and a member who bought on Telegram links Discord with one tap on the portal and is admitted the moment the role exists.

We will not give a date. Discord ships when it passes the same conformance kit Telegram passes, on a real server, with a real outage staged and repaired. Watch the marketplace; its card says “Under Development” today and will change lanes when it is ready.


The Connectors Marketplace

The marketplace lives at subscriby.net/connectors and inside the app under Connectors. Lanes for what is available now, in beta, under development and coming soon; official and community badges; New and Trending chips; a detail page per connector with an Overview tab and a Configuration tab; “Notify me” on roadmap connectors; and a checklist on every card saying which plan shapes a platform can honestly sell.

The Build a connector button leads to the developer documentation: the manifest block by block, one page per port and per Core API contract, the conformance kit rule by rule, and a ten-chapter tutorial that builds a connector for an imaginary forum from nothing. If you run a community platform and want Subscriby memberships on it, the door is open.


Everything Else That Shipped

A rewrite this size drags a lot of smaller work behind it. The highlights, grouped.

Dashboard

  • A Cash flow card on the account dashboard: money in, fees out, six monthly bars, a month-to-date comparison against the same days of last month.
  • An All Transactions page: the account-wide ledger with search, sort and filters by project, connector, plan, method, status and period.
  • The account dashboard’s portfolio is a ranked leaderboard; Revenue per Plan is a ranked bar list, so long plan names no longer crush a chart.
  • Recent Transactions rows open with a calendar tile; subscriptions show Joined, Not Joined or 1 of 3 joined, and a cancelled renewal says how long access continues.
  • A Notifications Center in the sidebar collects every creator alert that used to exist only as an email or a bot message.
  • The Connectors table paginates like every other table, shows each connector’s icon and the doctor’s last verdict; a connected installation offers Reconnect, which is where a bot token is replaced.

Members and notices

  • Members and creators have connected accounts, one per platform, and every message, invite, join approval and search reads them.
  • The portal’s Connected Accounts card lets a member choose “Notify me here” per account and whether to also receive the project’s notices by email.
  • A member whose account gave no name is shown as Member.
  • Disconnecting a project’s bot no longer deletes its members, their subscriptions or its resources. It used to. We are sorry, and it is fixed at the database level.

Resources, plans and payments

  • Resources have one tab per kind the project’s connectors gate, and a plan editor that offers a connector’s currency only while that connector is connected.
  • A plan name that another live plan of the project already carries is refused as a field error on every surface, without regard to case or stray spaces, instead of the database shouting at nobody.
  • A payment method remembers which connector’s currency it is, so a project can hold one native method per connected connector.
  • A Telegram group that Telegram upgraded to a supergroup can still be swapped in during recovery, because the connector says a supergroup upgrades from a group.

Support

  • Threads are filed per connector, so a second connector’s members are never filed as Telegram threads.
  • Photos and files members send to the support inbox open again. With the self-hosted Bot API the file lived on that server’s disk and the app never fetched it; now it does, and keeps its own copy.
  • The relay picker reads Dashboard Only, Direct Message to Me or Group With Topics, and the connector explains what the group mode means on it.

Reliability

  • An update Telegram re-sends after a timeout is handled once.
  • An operator can pause a connector during an incident: its webhook answers “retry later”, nothing is lost, messages wait on the queue, probes and reconciliation skip it, and the directory shows it as Paused.
  • A quarter-hourly sweep reconciles the access ledger against each platform and issues the access a purchase never received, so a lost invite link heals itself.
  • Re-admitting members after a channel swap is paced by the connector’s own declared rate, 28 a second on Telegram.

Sign-in, portal and the marketing site

  • The “Continue with…” buttons on sign-in and sign-up come from the connectors, and a platform whose bot can create the account offers “Sign up inside… instead”.
  • The portal’s “Join” button is rendered by the member’s connector, and the footer now reads Memberships on autopilot, wherever your community lives.
  • The home page shows every platform as a chip in three lanes, live today, building now and on the roadmap, and scrolls them as a single row on a phone. Pricing cards state One Connector per Project or Multiple Connectors per Project.

Copy, in ten languages

  • The dashboard, the emails and the API refusals no longer say Telegram where they mean a connected account. Every new or reworded sentence shipped in all ten languages at once, as it always does.

For Developers and Integrators: The Breaking Changes

This is a major version, and the public contracts moved with it. The short list:

  • The bot-shaped surface is gone. GET|DELETE /v1/projects/{project}/bot, distribution/bot-link, the bot_id field, the get_bot_status and disconnect_bot MCP tools, the project.bot.* webhook events and the bot:manage ability are replaced by the connector family: /connectors/{key}/installation, get_connector_installation, disconnect_connector, connector.* events and project-connector:* abilities.
  • A resource is {kind, connector, space}. kind is manual or the connector’s kind spelled telegram:channel; space is the place with the platform’s external id. type and chat_id are gone from REST, MCP and every resource webhook.
  • Health reason codes read connector_api_unauthorized, connector_api_not_found, connector_api_rate_limited and connector_api_error.
  • Members expose identities (connector, platform id, display name, username, preferred) instead of a single chat id; subscriptions expose compensation_seconds.

Nothing an integration relied on went silent at the deploy: existing webhook subscriptions to the old events were moved to their connector.* twins, and tokens holding bot:manage received project-connector:delete. Zapier 3.0 and n8n 3.0 speak the new contract, both are generated from the API itself, and both builds fail when a Subscriby endpoint or event has no counterpart, so parity is checked on every release. The REST, MCP and webhook documentation describes the connector family as the only contract there ever was.


What’s Next

  • 5.0.1, a few days from now, drops the legacy platform columns we kept as a rollback safety net, once the nightly verification of the migrated data has stayed green for as long as we want it to.
  • 5.1 is Discord.
  • Marketplace listings for community connectors, once the Telegram connector itself passes the isolation bar we set for everyone else. We are not exempting our own package from our own rules.
  • Everything new lands on the REST API and the MCP server the day it lands on the dashboard, because the next clients of this platform are not going to be browsers.

Thank You

To the creators who ran real communities through the rehearsal, to the ones who wrote in at 05:14 in the morning because a bot button did nothing (it was one byte over a limit; we fixed it, then fixed sixteen more), and to everyone who trusted a Telegram tool to become something larger: thank you.

Our codebase no longer knows what a chat id is. We are fine. We are completely fine.

Open the dashboard, browse the Connectors Marketplace, or read the connectors guide. And if you build platforms for communities: build a connector. The door is open.

Prêt à automatiser votre Telegram Business ?

Arrêtez de gérer les utilisateurs manuellement. Commencez à bâtir votre empire. Rejoignez des milliers de créateurs qui monétisent leurs chaînes sans effort avec Subscriby.

Nos feuilles de route