<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex Manner</title>
    <description>The latest articles on DEV Community by Alex Manner (@alexmanner).</description>
    <link>https://dev.to/alexmanner</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4087584%2Fd4a1c1d7-d900-4775-8e42-a5e131350462.png</url>
      <title>DEV Community: Alex Manner</title>
      <link>https://dev.to/alexmanner</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexmanner"/>
    <language>en</language>
    <item>
      <title>How to set up a paid Telegram channel with Nemiling</title>
      <dc:creator>Alex Manner</dc:creator>
      <pubDate>Tue, 25 Aug 2026 19:32:11 +0000</pubDate>
      <link>https://dev.to/alexmanner/how-to-set-up-a-paid-telegram-channel-with-nemiling-ll4</link>
      <guid>https://dev.to/alexmanner/how-to-set-up-a-paid-telegram-channel-with-nemiling-ll4</guid>
      <description>&lt;p&gt;How to set up a paid Telegram channel with Nemiling&lt;br&gt;
Setting up a paid Telegram channel sounds simple at first: someone pays, gets access, and loses that access when the subscription expires. Nemiling will ask you to create a PayPal REST API application. Open PayPal's My Apps &amp;amp; Credentials page, create a new app, choose the Merchant app type, then copy the Client ID and send it back to @Nemilin_bot. Continue following the bot's prompts until it confirms that PayPal has been connected successfully.  &lt;/p&gt;

&lt;p&gt;In practice, there are a few moving parts involved. You need to connect the channel, create subscription plans, set up a Telegram bot, connect a payment provider, and make sure payment notifications work correctly. I decided to go through the whole process myself and document it step by step.&lt;/p&gt;

&lt;p&gt;Step 1. Create a project&lt;br&gt;
Open @Nemilin_bot and go to the projects section in the bottom menu.&lt;br&gt;
Nemiling is a platform for automating monetization and access management for Telegram channels and groups.&lt;br&gt;
The first message appeared in Russian, but the bot immediately asks you to choose your preferred language. After selecting English, the rest of the setup is displayed in English. The language selector is straightforward, so this shouldn't cause any problems. (1st Figure)&lt;br&gt;
(1st Figure)&lt;/p&gt;

&lt;p&gt;Click “Create a new project” and choose the project type you want to set up (2nd Figure) &lt;br&gt;
(2nd Figure)&lt;/p&gt;

&lt;p&gt;The bot will then ask you to:&lt;br&gt;
enter a name for the new project;&lt;br&gt;
choose the resource you want to connect.&lt;br&gt;
In this case, the resource is a Telegram channel. (3rd Figure) (3rd Figure) &lt;/p&gt;

&lt;p&gt;You can think of the project as the foundation of the setup. Later, the Telegram channel, subscription plans, and other paid-access settings will all be connected to it.&lt;/p&gt;

&lt;p&gt;Step 2. Connect the Telegram channel&lt;br&gt;
Once the project is created, open the Telegram channel you want to monetize. Go to the channel's administrator settings and add @Nemilin_bot as an administrator. &lt;/p&gt;

&lt;p&gt;If your channel has a linked discussion group, follow the additional instructions shown by the bot and make sure it has the required permissions there as well. (4th Figure)  (4th Figure) &lt;br&gt;
The permissions shown in the setup include the ability to manage subscribers, including adding and removing them. &lt;br&gt;
This makes sense: if the system is going to grant access after payment and revoke it when a subscription expires, it needs permission to manage channel members.&lt;br&gt;
Next, return to @Nemilin_bot and forward any message from the channel you just connected.&lt;br&gt;
This lets Nemiling verify that it actually has access to the correct Telegram resource.&lt;br&gt;
If everything is configured correctly, the bot will confirm the connection and offer to continue with subscription-plan setup.  (5th Figure) &lt;br&gt;
 (5th Figure) &lt;/p&gt;

&lt;p&gt;Step 3. Configure a subscription plan&lt;br&gt;
Now it's time to define what the subscriber is actually buying.&lt;br&gt;
When creating a plan, you need to specify:&lt;br&gt;
currency;&lt;br&gt;
plan name;&lt;br&gt;
subscription duration;&lt;br&gt;
price;&lt;br&gt;
resources that become available after purchase.&lt;/p&gt;

&lt;p&gt;(6th Figure) &lt;/p&gt;

&lt;p&gt;For example, you can create a plan that provides access for one month.&lt;br&gt;
You don't have to stop at a single option. If you want to offer different conditions, you can create several plans with different prices or subscription periods.&lt;br&gt;
Once the plan is configured, click Save.&lt;br&gt;
When all required plans are ready, click “Next Stage”.  (7th&amp;amp;8th Figure) (7th Figure)(8th Figure)&lt;/p&gt;

&lt;p&gt;Step 4. Create your own bot with BotFather&lt;br&gt;
At this point, one question may come up:&lt;br&gt;
We're already configuring everything through @Nemilin_bot. Why do we need another bot? (9th Figure)(9th Figure)&lt;br&gt;
@Nemilin_bot is the interface used to configure the Nemiling platform itself.&lt;br&gt;
Your project, however, gets its own Telegram bot.&lt;br&gt;
Open the official &lt;a class="mentioned-user" href="https://dev.to/botfather"&gt;@botfather&lt;/a&gt; and send:&lt;br&gt;
/newbot&lt;/p&gt;

&lt;p&gt;BotFather will ask you to:&lt;br&gt;
choose a bot name;&lt;br&gt;
choose a username.&lt;/p&gt;

&lt;p&gt;The username must end with bot.&lt;br&gt;
After the bot is created, BotFather will give you an API token that looks roughly like this:&lt;br&gt;
123456789:ASDFABC-DEF1234gh&lt;br&gt;
Copy the token and send it to @Nemilin_bot.&lt;br&gt;
One important point from the original setup instructions: it's better to create a separate bot for Nemiling rather than reuse a bot that is already connected to another service.&lt;br&gt;
And, of course, never publish your real API token in an article, repository, or screenshot.&lt;/p&gt;

&lt;p&gt;Step 5. Connect a Payment Provider&lt;br&gt;
The next step is accepting payments.&lt;br&gt;
The setup I followed uses PayPal as the example payment provider.&lt;br&gt;
In Nemiling, select PayPal and click the option to connect it. Nemiling will ask you to create a PayPal REST API application. Open PayPal's My Apps &amp;amp; Credentials page, create a new app, choose the Merchant app type, then copy the Client ID and send it back to @Nemilin_bot. Continue following the bot's prompts until it confirms that PayPal has been connected successfully. &lt;/p&gt;

&lt;p&gt;For this integration, you'll need an eligible PayPal business account in a country where PayPal operates. &lt;/p&gt;

&lt;p&gt;If you run into problems during setup, contact Nemiling support. &lt;br&gt;
Continue following the prompts in @Nemilin_bot until the bot confirms that the payment provider has been connected successfully. &lt;br&gt;
The project exists, subscription plans are configured, and Nemiling can automate the routine parts of paid access to the connected Telegram channel.&lt;/p&gt;

&lt;p&gt;What Nemiling Automates &lt;br&gt;
In this setup, Nemiling sits between payment processing and access management for the Telegram resource.&lt;br&gt;
The subscriber chooses a plan and pays for it.&lt;br&gt;
After that, the channel owner doesn't have to manually check every transfer or manage access for every new subscriber.&lt;br&gt;
The platform automates the routine parts of paid access.&lt;br&gt;
The money is not accumulated on an internal Nemiling balance waiting for a separate withdrawal. It goes through the connected payment provider to the creator's account.&lt;br&gt;
Nemiling doesn't charge a percentage of each payment. Instead, it uses subscription plans based on the account's monthly turnover. &lt;br&gt;
In this article, I deliberately focused on just one use case: running a paid Telegram channel with subscriptions.&lt;br&gt;
Nemiling also supports other monetization scenarios, including paid messages, paid consultations, and donations, but those deserve separate walkthroughs.&lt;br&gt;
The setup involves several services, but each individual step is straightforward. The important part is testing the entire flow — from choosing a plan to receiving access — before sending the bot to real subscribers. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>What I’m Learning While Exploring Telegram Bots with Python</title>
      <dc:creator>Alex Manner</dc:creator>
      <pubDate>Mon, 24 Aug 2026 08:30:06 +0000</pubDate>
      <link>https://dev.to/alexmanner/what-im-learning-while-exploring-telegram-bots-with-python-4g2e</link>
      <guid>https://dev.to/alexmanner/what-im-learning-while-exploring-telegram-bots-with-python-4g2e</guid>
      <description>&lt;p&gt;Hey DEV community!&lt;br&gt;
I’m still early in my journey with Python and Telegram bots, but one thing has already become clear: building a useful bot is much more than sending a message back when someone types a command.&lt;/p&gt;

&lt;p&gt;At first, the basic flow looks simple:&lt;/p&gt;

&lt;p&gt;User sends a message&lt;br&gt;
        ↓&lt;br&gt;
Bot receives it&lt;br&gt;
        ↓&lt;br&gt;
Some Python code runs&lt;br&gt;
        ↓&lt;br&gt;
Bot sends a response&lt;/p&gt;

&lt;p&gt;Then you start thinking about a real product. Suddenly there are users, states, databases, payments, permissions, errors, background tasks, and integrations with external services.&lt;/p&gt;

&lt;p&gt;That’s where things get much more interesting. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Telegram API is only one part of the system It’s easy to think of a Telegram bot as “a program inside Telegram.”&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In practice, Telegram is mostly the interface. Behind the bot you may still need:&lt;/p&gt;

&lt;p&gt;application logic;&lt;br&gt;
a database;&lt;br&gt;
authentication;&lt;br&gt;
an external API;&lt;br&gt;
payment processing;&lt;br&gt;
logging;&lt;br&gt;
monitoring;&lt;br&gt;
deployment.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;State becomes important very quickly.
For a simple command like /help, you don’t need much context. But imagine a user going through a multi-step process:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Choose a plan&lt;br&gt;
→ enter some information&lt;br&gt;
→ confirm&lt;br&gt;
→ pay&lt;br&gt;
→ receive access&lt;/p&gt;

&lt;p&gt;Now the bot needs to know where that user currently is in the process.&lt;/p&gt;

&lt;p&gt;Did they already choose a plan?&lt;/p&gt;

&lt;p&gt;Did the payment succeed?&lt;/p&gt;

&lt;p&gt;Should they still have access?&lt;/p&gt;

&lt;p&gt;What happens if they leave halfway through and come back tomorrow?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Payments make everything more serious
A bug in a weather bot is annoying. A bug involving money is different.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once payments are involved, you need to think about things like:&lt;/p&gt;

&lt;p&gt;duplicate events;&lt;br&gt;
failed payments;&lt;br&gt;
delayed confirmations;&lt;br&gt;
retries;&lt;br&gt;
expired access;&lt;br&gt;
what happens when an external service is unavailable.&lt;/p&gt;

&lt;p&gt;The interesting work starts with: What happens when something goes wrong?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Automation creates another problem: trust&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The system needs to be reliable enough to make decisions on its own.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Payment confirmed&lt;br&gt;
        ↓&lt;br&gt;
Grant access&lt;br&gt;
        ↓&lt;br&gt;
Track expiration&lt;br&gt;
        ↓&lt;br&gt;
Remove access if necessary&lt;/p&gt;

&lt;p&gt;If any part of that logic is wrong, the bot can affect a real user without a human being involved.&lt;/p&gt;

&lt;p&gt;That makes logging, testing, and good error handling much more important than I initially expected.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Small projects are a good way to learn architecture&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I used to associate software architecture with large systems and big engineering teams.&lt;/p&gt;

&lt;p&gt;Now I’m starting to see that the same questions appear surprisingly early:&lt;/p&gt;

&lt;p&gt;Where should business logic live?&lt;br&gt;
What should the Telegram handler be responsible for?&lt;br&gt;
What belongs in the database?&lt;br&gt;
How should external integrations be isolated?&lt;br&gt;
What happens if one service goes down?&lt;/p&gt;

&lt;p&gt;You don’t need thousands of users before these questions become useful.&lt;/p&gt;

&lt;p&gt;Even a small bot can teach you a lot about designing systems.&lt;/p&gt;

&lt;p&gt;I’m especially interested in the point where a small Telegram bot starts turning into a real product. If you’ve built Telegram bots before, I’d be curious to know:&lt;br&gt;
what was the first problem that made you realize your bot was becoming a “real” software project?&lt;/p&gt;

</description>
      <category>api</category>
      <category>beginners</category>
      <category>learning</category>
      <category>python</category>
    </item>
  </channel>
</rss>
