The Storefront With No Website: Selling Inside a Telegram Channel
“A shop needs a website.” It does not. You can run a real store — catalogue, orders, card, credits, and crypto checkout — where the only thing your customer ever sees is a Telegram channel, and the only thing you ever touch is an app on your phone. No storefront to design, no landing page to babysit, no cart to abandon. The feed is the shelf, and the checkout happens inside a conversation.

The channel is the catalogue
The idea comes from an analysis on VBWD, a self-hosted, source-available full-stack SaaS SDK you compose out of plugins. The pieces here are ordinary: a cms plugin holds each product as a post, bot_telegram publishes those posts into your channel and takes the order in chat, and the shop plugin owns products, stock, and orders exactly as it would behind any web checkout. As the original analysis puts it:
The difference is only the surface. The order object, the stock decrement, the invoice — all identical to a browser sale.
That is the whole trick. Nothing about the commerce backend knows or cares that the sale arrived through a chat window instead of a product page. The bot is just another way in.
Three ways to pay, one invoice
Inside the conversation the customer can pay by card and local rails through the provider-agnostic payment core, by prepaid credits via token_payment, or by crypto and stablecoins settled non-custodially to your own wallet. The reason all three reconcile cleanly is architectural, not cosmetic — every plugin writes its charges to the same place:
Every VBWD plugin declares its charges as line items against one shared invoice interface. So the shop line item, any add-on, any fee — they all land on the same invoice regardless of how the order arrived.
Because that payment core is provider-agnostic, adding another gateway later is a configuration detail rather than a rebuild. You commit to an invoice on day one, not to a processor.
You run it from your phone
The quiet surprise is the operator side. VBWD is one Python backend that also ships a native iOS SDK, so the merchant console is not a laptop dashboard — it is an app. A new order pushes in, you confirm stock, you mark it fulfilled, you watch the invoice settle. The whole loop lives in your pocket:
The customer lives in Telegram; the merchant lives in an app; the backend quietly reconciles both against one invoice.
The event-driven core keeps those two surfaces honest. When an order is paid, the core emits an event; the bot confirms to the customer, the iOS app updates, and any downstream automation you add hangs off the same signed webhook. One event fans out — you are not polling for state or stitching two systems together by hand.
The honest boundary
This is a substrate, not a business. VBWD gives you the catalogue-as-channel mechanics, the bot plumbing, the shared invoice, the multi-rail payment core, and the native app — it does not give you the product, the photography, the pricing, or the customer trust. You self-host it, which means you own the uptime, the backups, the channel moderation, and the tax and compliance weight of taking money. A bot cannot pack a box. What the platform removes is the months of plumbing between “I have something to sell” and “money is in my wallet”; what it cannot remove is the work of actually running the shop.
The moving parts are worth a look if you want to see how a chat can be a checkout rather than a funnel that dumps buyers back onto a web page to pay. Read the full analysis on VBWD, and the public code is on GitHub. The tarot app, a dice-market game, and a pharmacy shop already run on this same core — a Telegram-only store is one more shape it takes.
Written for Red Robot with AI assistance and human editing. Adapted from an original analysis published on VBWD.