<?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: DMITRY</title>
    <description>The latest articles on DEV Community by DMITRY (@shuvalov).</description>
    <link>https://dev.to/shuvalov</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3718363%2F7c0a3254-2ada-4616-a656-d5d935d063f4.jpeg</url>
      <title>DEV Community: DMITRY</title>
      <link>https://dev.to/shuvalov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shuvalov"/>
    <language>en</language>
    <item>
      <title>Stop Configuring Telegram Bots via Commands: Building a Visual Moderator with Mini Apps</title>
      <dc:creator>DMITRY</dc:creator>
      <pubDate>Sun, 18 Jan 2026 20:11:33 +0000</pubDate>
      <link>https://dev.to/shuvalov/stop-configuring-telegram-bots-via-commands-building-a-visual-moderator-with-mini-apps-3ac7</link>
      <guid>https://dev.to/shuvalov/stop-configuring-telegram-bots-via-commands-building-a-visual-moderator-with-mini-apps-3ac7</guid>
      <description>&lt;p&gt;Managing large Telegram chats is a familiar challenge. Once a chat grows beyond 100–200 members, typical problems start to appear: spam, flooding, scam links, bots, and generally toxic behavior.&lt;/p&gt;

&lt;p&gt;The market already offers well-known solutions — Combot, Rose, and other popular bots. They are powerful and battle-tested, but they share one major drawback: configuration via text commands.&lt;/p&gt;

&lt;p&gt;Setting up filters, limits, exclusions, and rules often looks like working in a console: &lt;br&gt;
/settings&lt;br&gt;
/filter add ...&lt;br&gt;
/warn limit 3&lt;br&gt;
For technically experienced users, this is acceptable. But for community owners, channel administrators, and moderators, it creates an unnecessary barrier to entry.&lt;/p&gt;

&lt;p&gt;In this article, I want to share how I tried to solve this problem — and why Telegram Mini Apps turned out to be the perfect tool for it.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;The UX Problem of Telegram Moderation Bots&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
The main issue with most moderation bots is not functionality, but user experience:&lt;br&gt;
    • commands must be memorized or constantly looked up;&lt;br&gt;
    • it’s hard to quickly understand which rules are currently active;&lt;br&gt;
    • there is little transparency — a message gets deleted, but why?&lt;/p&gt;

&lt;p&gt;As a result, chat management starts to feel like working with a CLI. It’s efficient, but inconvenient for people who simply want to manage a community rather than learn command syntax.&lt;/p&gt;

&lt;p&gt;My goal was to make moderation:&lt;br&gt;
    • visual,&lt;br&gt;
    • predictable,&lt;br&gt;
    • accessible without reading documentation.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Why Telegram Mini Apps&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
With the introduction of Telegram Mini Apps (web applications embedded directly into the Telegram client), it became clear that this was the missing piece in the bot ecosystem.&lt;/p&gt;

&lt;p&gt;Mini Apps make it possible to:&lt;br&gt;
    • move administration into a full-fledged UI;&lt;br&gt;
    • use familiar interface elements (switches, sliders, lists);&lt;br&gt;
    • display analytics and logs in real time.&lt;/p&gt;

&lt;p&gt;This is how SmartMod was born — a Telegram moderation bot where all administrative control is implemented via a Mini App.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;What Moderation Looks Like in Practice&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Visual Control Panel&lt;/p&gt;

&lt;p&gt;Instead of commands, there is a dashboard.&lt;/p&gt;

&lt;p&gt;When an administrator opens the Mini App, they immediately see:&lt;br&gt;
    • how many messages have been checked;&lt;br&gt;
    • how many violations occurred today;&lt;br&gt;
    • which rules are triggered most often.&lt;/p&gt;

&lt;p&gt;This provides a clear overview of the chat’s current state without digging through logs or bot messages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faaoc4k43f84jqpvoypai.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faaoc4k43f84jqpvoypai.jpeg" alt=" " width="625" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;One-Click Rule Configuration&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
All core moderation features are configured through the interface:&lt;br&gt;
    • anti-spam and anti-flood protection;&lt;br&gt;
    • link and forward restrictions;&lt;br&gt;
    • caps and media filtering;&lt;br&gt;
    • AI moderation — for ambiguous cases where simple rules and regular expressions are not enough.&lt;/p&gt;

&lt;p&gt;No text commands. Only switches, sliders, and checkboxes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2v0gn5iseyzy4frjwig.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2v0gn5iseyzy4frjwig.jpeg" alt=" " width="637" height="1280"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9ilz6qrs70m0kbt2hmm.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9ilz6qrs70m0kbt2hmm.jpeg" alt=" " width="637" height="1280"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsae181rsdi1qr33umdoj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsae181rsdi1qr33umdoj.jpeg" alt=" " width="633" height="1280"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzdxig8i31rwnzqy6qq8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzdxig8i31rwnzqy6qq8.jpeg" alt=" " width="619" height="1280"&gt;&lt;/a&gt;&lt;br&gt;
*&lt;em&gt;Transparency of Bot Actions&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
One of the most common issues with automated moderation is the “black box” effect.&lt;/p&gt;

&lt;p&gt;SmartMod includes an action log directly in the Mini App, showing:&lt;br&gt;
    • who was muted or banned;&lt;br&gt;
    • at what time;&lt;br&gt;
    • and which specific rule was triggered.&lt;/p&gt;

&lt;p&gt;This makes dispute resolution easier and increases trust in automated moderation.&lt;br&gt;
*&lt;em&gt;A Bit About the Technical Implementation&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
The project was designed from the start to handle high loads with minimal latency.&lt;/p&gt;

&lt;p&gt;The technology stack includes:&lt;br&gt;
    • Backend: Cloudflare Workers&lt;br&gt;
A serverless architecture with fast response times worldwide.&lt;br&gt;
    • Database: Cloudflare D1&lt;br&gt;
An SQLite database running on Cloudflare’s edge infrastructure.&lt;br&gt;
    • Frontend: React + Vite + TailwindCSS&lt;br&gt;
A compact and fast interface optimized for Mini Apps.&lt;br&gt;
    • UI: Shadcn/UI&lt;br&gt;
A clean, minimalistic design without visual clutter.&lt;/p&gt;

&lt;p&gt;As a result, the Mini App opens inside Telegram almost instantly and does not feel like an external website.&lt;br&gt;
*&lt;em&gt;How to Try It&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
The bot is available for free.&lt;/p&gt;

&lt;p&gt;👉 Telegram bot: @SmartModIA_bot&lt;/p&gt;

&lt;p&gt;Just add the bot to your chat and grant it administrator permissions.&lt;/p&gt;

&lt;p&gt;I’d appreciate any feedback — especially comparisons between visual UI-based management and the traditional command-based approach.&lt;/p&gt;

</description>
      <category>telegram</category>
      <category>miniapps</category>
      <category>cloudflare</category>
      <category>react</category>
    </item>
  </channel>
</rss>
