<?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: Ivan Shevtsov</title>
    <description>The latest articles on DEV Community by Ivan Shevtsov (@dl1ar).</description>
    <link>https://dev.to/dl1ar</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%2F4047247%2Fa5400d04-5105-45ab-b55c-c41283476611.png</url>
      <title>DEV Community: Ivan Shevtsov</title>
      <link>https://dev.to/dl1ar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dl1ar"/>
    <language>en</language>
    <item>
      <title>🚀 TMA DevKit v2: Local Emulator for Telegram Mini Apps + MCP AI Debugging</title>
      <dc:creator>Ivan Shevtsov</dc:creator>
      <pubDate>Sat, 01 Aug 2026 21:02:41 +0000</pubDate>
      <link>https://dev.to/dl1ar/tma-devkit-v2-local-emulator-for-telegram-mini-apps-mcp-ai-debugging-5ekb</link>
      <guid>https://dev.to/dl1ar/tma-devkit-v2-local-emulator-for-telegram-mini-apps-mcp-ai-debugging-5ekb</guid>
      <description>&lt;p&gt;😤 The Problem That Drives Everyone Crazy&lt;/p&gt;

&lt;p&gt;Ever tried building a Telegram Mini App?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    Write your code.

    Spin up ngrok (and pray it doesn't crash).

    Go to @BotFather, paste the tunnel URL.

    Grab your phone, open the bot, type console.log() — and pray again.

    Repeat for every theme, platform, and user type you need to test.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;It's 2015, folks. And there's still no official emulator.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"The main difficulty is the inability to run a project as easily as in a browser via localhost — and the absence of a developer console."
— Habr, March 2025
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;💡 Introducing: TMA DevKit&lt;/p&gt;

&lt;p&gt;A local emulator and bridge inspector for Telegram Mini Apps. Think Redux DevTools, but for window.Telegram.WebApp.&lt;/p&gt;

&lt;p&gt;In one sentence: paste your Mini App URL into the panel, and it runs inside an iframe with a full emulation of the Telegram client — no phone, no ngrok, no BotFather.&lt;br&gt;
✨ What DevKit v2 Can Do (and Why It's Awesome)&lt;br&gt;
🧠 MCP Server for AI-Powered Debugging — Brand New!&lt;/p&gt;

&lt;p&gt;Connect any AI assistant (Claude, GPT, local models) via the Model Context Protocol. Ask questions about your app's state, event flow, or initData validation — and get instant debugging suggestions.&lt;br&gt;
🔧 A Real Mock, Not a Stub&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Full window.Telegram.WebApp API surface (all methods, properties, events).

Cryptographically valid initData generation with HMAC-SHA-256 signature using your bot token.

Backend validation passes as in production.

Compatible with @telegram-apps/sdk v3 out of the box.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;⚡ 5 One‑Click Quick Scenarios&lt;br&gt;
Scenario    Description&lt;br&gt;
iOS Premium iPhone user with Premium subscription&lt;br&gt;
Android Free    Regular Android user&lt;br&gt;
New User    With referral parameter&lt;br&gt;
Group Launch    Emulates opening from a group chat&lt;br&gt;
Desktop Wide viewport on computer&lt;/p&gt;

&lt;p&gt;Switch contexts in seconds — no manual input.&lt;br&gt;
📊 Bridge Event Inspector&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;All web_app_* calls displayed in real time.

Group by type, filter, pause, export logs as .txt.

emit console to fire client → app events (theme_changed, main_button_pressed, etc.).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;☁️ CloudStorage Editor&lt;/p&gt;

&lt;p&gt;Visual key‑value editor. No more guessing what's stored or messing with localStorage manually.&lt;br&gt;
💾 Saved Presets&lt;/p&gt;

&lt;p&gt;Save your current config (platform, user, theme, viewport, bot token) as a named preset. Switch between them in one click — persists across sessions.&lt;br&gt;
🖥️ Polished Panel UX&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Resizable panels (like VS Code).

Zoomable device stage (25%–200%).

Mobile notch and desktop traffic lights react to platform selection.

Import/export config as JSON.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;🧰 Tech Stack&lt;br&gt;
Component   Technology&lt;br&gt;
Frontend    React 19, TypeScript, Vite&lt;br&gt;
Styling Tailwind CSS, shadcn/ui&lt;br&gt;
Mock Script ~90 KB of vanilla JS, zero dependencies&lt;br&gt;
Testing 22+ Vitest tests (base64url, config, protocol, events)&lt;br&gt;
License MIT&lt;br&gt;
🎯 What's Next?&lt;/p&gt;

&lt;p&gt;The project is under active development. Planned:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;More scenario presets.

Enhanced MCP integration with pre‑built prompts.

VS Code plugin.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;🔗 Links&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GitHub: github.com/Deus-org/tma-devkit

Live Demo (if available) — add your link or a screenshot.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;👋 Call to Action&lt;/p&gt;

&lt;p&gt;If you've ever built a TMA, I'd really appreciate:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Feedback on the README (is it clear?).

Feature suggestions.

Bug reports (open an issue on GitHub).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;⭐️ Star the repo if you find it useful — it helps a ton!&lt;/p&gt;

&lt;p&gt;Built by a developer who got tired of debugging on a phone.&lt;br&gt;
Let's make TMA development better together! 🚀&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>telegram</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Built a DevTools for Telegram Mini Apps So You Don't Have to Debug on Your Phone</title>
      <dc:creator>Ivan Shevtsov</dc:creator>
      <pubDate>Sat, 25 Jul 2026 22:09:09 +0000</pubDate>
      <link>https://dev.to/dl1ar/i-built-a-devtools-for-telegram-mini-apps-so-you-dont-have-to-debug-on-your-phone-30m9</link>
      <guid>https://dev.to/dl1ar/i-built-a-devtools-for-telegram-mini-apps-so-you-dont-have-to-debug-on-your-phone-30m9</guid>
      <description>&lt;p&gt;While building a Telegram Mini App recently, I hit the same wall every TMA developer knows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Code your app locally.&lt;/li&gt;
&lt;li&gt;Spin up ngrok (hope it doesn't crash).&lt;/li&gt;
&lt;li&gt;Go to &lt;a class="mentioned-user" href="https://dev.to/botfather"&gt;@botfather&lt;/a&gt;, set the web_app URL to the tunnel.&lt;/li&gt;
&lt;li&gt;Grab your phone, launch the app, &lt;code&gt;console.log()&lt;/code&gt; and pray.&lt;/li&gt;
&lt;li&gt;Repeat for every theme / platform / user combination you need to test.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There's no official Telegram Mini Apps emulator. The workflow is stuck in 2015. Developers in the Russian TMA community have been complaining about it publicly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The main difficulty is the inability to run a project as easily as in a browser via localhost — and the &lt;strong&gt;absence of a developer console&lt;/strong&gt;." — Habr, March 2025&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I built &lt;strong&gt;TMA DevKit&lt;/strong&gt; — an open-source local emulator and bridge inspector for Telegram Mini Apps. Think Redux DevTools, but for &lt;code&gt;window.Telegram.WebApp&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it works (one sentence):&lt;/strong&gt; you paste your Mini App URL into a local panel, and it runs inside an iframe against a faithful mock of the Telegram client — no phone, no ngrok, no BotFather.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it gives you:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔧 &lt;strong&gt;Real mock, not a stub.&lt;/strong&gt; Full &lt;code&gt;window.Telegram.WebApp&lt;/code&gt; API surface with cryptographically valid &lt;code&gt;initData&lt;/code&gt; (HMAC-SHA-256 signed against your dev bot token). Backend validation passes. Compatible with &lt;code&gt;@telegram-apps/sdk&lt;/code&gt; v3 out of the box.&lt;/p&gt;

&lt;p&gt;⚡ &lt;strong&gt;5 one-click Quick Scenarios.&lt;/strong&gt; Premium iOS user → Free Android user → New user with referral param → Group chat launch → Desktop wide viewport. Switch contexts without touching a single input field.&lt;/p&gt;

&lt;p&gt;📊 &lt;strong&gt;Bridge event inspector.&lt;/strong&gt; Every &lt;code&gt;web_app_*&lt;/code&gt; call appears in real-time. Group by event type, filter, pause, export logs as &lt;code&gt;.txt&lt;/code&gt;. Plus an emit console to fire client→app events (&lt;code&gt;theme_changed&lt;/code&gt;, &lt;code&gt;main_button_pressed&lt;/code&gt;, etc.) back into your app.&lt;/p&gt;

&lt;p&gt;☁️ &lt;strong&gt;CloudStorage editor.&lt;/strong&gt; Visual key-value editor — no more guessing what's stored or manually manipulating localStorage.&lt;/p&gt;

&lt;p&gt;💾 &lt;strong&gt;Saved presets.&lt;/strong&gt; Save your current config (platform, user, theme, viewport, bot token) as a named preset. Switch between them in one click. Persists across sessions.&lt;/p&gt;

&lt;p&gt;🖥️ &lt;strong&gt;Panel UX.&lt;/strong&gt; Drag-resize panels (like VS Code), zoomable device stage (25%–200%), mobile notch and desktop traffic lights that react to your platform selection. Import/export config as JSON.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; React 19, TypeScript, Vite, Tailwind CSS, shadcn/ui. Mock script is ~90 KB of zero-dependency vanilla JS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing:&lt;/strong&gt; 22 Vitest tests covering the base64url codec, config model, wire protocol, and bridge message discrimination.&lt;/p&gt;

&lt;p&gt;MIT licensed. Would love some honest feedback — and stars if you find it useful ⭐&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/Deus-org/tma-devkit" rel="noopener noreferrer"&gt;github.com/Deus-org/tma-devkit&lt;/a&gt;&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>opensource</category>
      <category>react</category>
      <category>telegram</category>
    </item>
  </channel>
</rss>
