<?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: Oleg Bosatsky</title>
    <description>The latest articles on DEV Community by Oleg Bosatsky (@oleg_pydev).</description>
    <link>https://dev.to/oleg_pydev</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%2F3382875%2F4ab39af9-4925-4595-be93-2af1ef0a645d.png</url>
      <title>DEV Community: Oleg Bosatsky</title>
      <link>https://dev.to/oleg_pydev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oleg_pydev"/>
    <language>en</language>
    <item>
      <title>After the Hackathon: What I Learned, Built, and Plan Next</title>
      <dc:creator>Oleg Bosatsky</dc:creator>
      <pubDate>Thu, 31 Jul 2025 15:31:21 +0000</pubDate>
      <link>https://dev.to/oleg_pydev/after-the-hackathon-what-i-learned-built-and-plan-next-mib</link>
      <guid>https://dev.to/oleg_pydev/after-the-hackathon-what-i-learned-built-and-plan-next-mib</guid>
      <description>&lt;p&gt;When I joined the hackathon, I had one main goal: break out of the tutorial zone and actually build something useful with AI and Telegram.&lt;/p&gt;

&lt;p&gt;I'd worked with Python before, but never took the time to properly explore aiogram, the async-first framework for Telegram bots. And while I’d used Gemini, I’d never integrated it into a real-world project.&lt;/p&gt;

&lt;p&gt;This post is about what happened after the first working prototype, what I improved, where the limits showed up, and what’s coming next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Back: From Idea to Bot in Days
&lt;/h2&gt;

&lt;p&gt;It’s surprising how fast things moved once I got started. With the right tools (and a little stubbornness), a working AI-powered Telegram bot came together in just a few days:&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%2Fl1q0z9f4gz6olz0vxi5k.jpg" 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%2Fl1q0z9f4gz6olz0vxi5k.jpg" alt=" " width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each day added a new piece and by the end of the week, it wasn’t just a demo. It was a tool that someone could realistically use to improve and publish real Telegram content.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Much Time Did Bolt Actually Save Me?
&lt;/h2&gt;

&lt;p&gt;Looking back, using Bolt and Gemini easily cut my development time in half.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With AI: The full project from idea to working Telegram bot took just over a week.&lt;/li&gt;
&lt;li&gt;Without AI: Doing it all manually (figuring out aiogram, wiring configs, structuring logic) would’ve taken a month or more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bolt handled the repetitive parts, suggested clean structures, and gave me a working starting point almost instantly which meant I could focus more on improving.&lt;/p&gt;

&lt;p&gt;Sure, I still had to review but having something that works in minutes instead of hours? That’s cool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned: Tech, Process, and Mindset
&lt;/h2&gt;

&lt;p&gt;During the hackathon, I learned to work effectively with aiogram, explored the Gemini API in practice, and understood the strengths and quirks of different model types. It taught me that AI can accelerate development but still needs careful supervision and that starting messy is better than waiting for perfect.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next for This Project
&lt;/h2&gt;

&lt;p&gt;Now that the prototype is up and running, the focus shifts to making it usable for real users.&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%2F0io5y7u5dqo6dc7qdde5.png" 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%2F0io5y7u5dqo6dc7qdde5.png" alt=" " width="596" height="702"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s what’s on the roadmap:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Public release. Launch a fully functional version of the bot so anyone can start using it to create and update Telegram posts.&lt;/li&gt;
&lt;li&gt;Scheduled posting. Add the ability to plan posts in advance, letting users set dates and times for automatic publishing.&lt;/li&gt;
&lt;li&gt;Redis integration. Use Redis to store user-specific data like language preferences and daily limits, improving both performance and personalization.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These features will transform the bot from a simple AI assistant into a practical content management tool for Telegram creators everywhere.&lt;/p&gt;

&lt;p&gt;I’m excited to gather user feedback and continue iterating to make the experience even better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Would I Join Another Hackathon? Absolutely.
&lt;/h2&gt;

&lt;p&gt;Definitely yes. Even if you don’t win, you still get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New tech stack experience&lt;/li&gt;
&lt;li&gt;A working, deployable project&lt;/li&gt;
&lt;li&gt;Bonus: portfolio boost and fresh material for blog posts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hackathons push you to learn fast, build practical solutions, and connect with like-minded devs. For me, it’s always worth it and this Telegram AI bot was no exception.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing Thoughts: AI Tools Don’t Replace You - They Extend You
&lt;/h2&gt;

&lt;p&gt;AI and tools like Bolt.new definitely speed up development, but the real difference still comes down to your thinking, judgment, and manual refinement.&lt;/p&gt;

&lt;p&gt;These assistants help jumpstart projects and handle routine code, but the final quality depends on how you guide, review, and improve their output.&lt;/p&gt;

&lt;p&gt;If you want to explore the full code and try the bot yourself, check out the &lt;a href="https://github.com/pyCrafts/TgPostAI" rel="noopener noreferrer"&gt;GitHub README&lt;/a&gt; for detailed instructions.&lt;/p&gt;

&lt;p&gt;Also, if you want to dive deeper into my development journey, I wrote another post about the process here: &lt;a href="https://dev.to/oleg_pydev/from-zero-to-telegram-ai-bot-my-experience-building-with-bolt-and-gemini-1kbi"&gt;From Zero to Telegram AI Bot: My Experience Building with Bolt and Gemini&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This project was built as part of a hackathon by &lt;a class="mentioned-user" href="https://dev.to/oleg_pydev"&gt;@oleg_pydev&lt;/a&gt; and &lt;a class="mentioned-user" href="https://dev.to/valentina_skakun"&gt;@valentina_skakun&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>wlhchallenge</category>
      <category>career</category>
      <category>entrepreneurship</category>
    </item>
    <item>
      <title>From Zero to Telegram AI Bot: My Experience Building with Bolt and Gemini</title>
      <dc:creator>Oleg Bosatsky</dc:creator>
      <pubDate>Thu, 31 Jul 2025 13:21:46 +0000</pubDate>
      <link>https://dev.to/oleg_pydev/from-zero-to-telegram-ai-bot-my-experience-building-with-bolt-and-gemini-1kbi</link>
      <guid>https://dev.to/oleg_pydev/from-zero-to-telegram-ai-bot-my-experience-building-with-bolt-and-gemini-1kbi</guid>
      <description>&lt;p&gt;I’ve built a lot of bots but never for Telegram. And never with AI. &lt;br&gt;
I joined the hackathon to fix that.&lt;/p&gt;

&lt;p&gt;I wanted to push beyond my comfort zone in Python, and finally explore how hard (or easy?) it really is to build a fully working Telegram bot, one that doesn’t just echo messages, but helps with something practical: creating and editing content for Telegram itself.&lt;/p&gt;

&lt;p&gt;I chose the AI + content theme for a reason:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We scroll past hundreds of Telegram posts daily, but what if AI could write, clean up, or even repurpose them right inside the chat?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is how the idea for my Gemini-powered Telegram assistant was born.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Getting Started with Bolt.new
&lt;/li&gt;
&lt;li&gt;
What the AI Generated and How It Felt
&lt;/li&gt;
&lt;li&gt;
New Ideas Sparked by the First Prototype
&lt;/li&gt;
&lt;li&gt;
Can AI Really Help Refine Code?
&lt;/li&gt;
&lt;li&gt;
Final Thoughts: What I Learned Using Bolt
&lt;/li&gt;
&lt;li&gt;Bonus: Why You Should Try It Too&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Started with Bolt.new
&lt;/h2&gt;

&lt;p&gt;I started the project on Bolt.new - an AI-powered coding environment. After signing in, I was dropped into a minimal interface with a chat window. &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%2F57ur1gu8s04tmh88wsja.png" 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%2F57ur1gu8s04tmh88wsja.png" alt="Bolt prompt window" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bolt includes a full library of built-in prompt templates ranging from SEO audits and accessibility checks to API documentation generators. But none of them quite matched what I needed.&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%2F86reqrsk1a4lkfv00c2d.png" 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%2F86reqrsk1a4lkfv00c2d.png" alt="Bolt prompt templates" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There were great options like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accessible Data Tables&lt;/li&gt;
&lt;li&gt;Internationalization Setup&lt;/li&gt;
&lt;li&gt;Dark Mode Implementation&lt;/li&gt;
&lt;li&gt;API Documentation Generator&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But no prompt for building a Telegram bot with an AI brain. So I went freestyle.&lt;/p&gt;

&lt;p&gt;I typed out my own custom request (unfortunately I didn’t save the exact wording), but it was roughly along the lines of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Create a Telegram bot in Python that can help users create and edit Telegram posts using Gemini."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then came the model selection. I used Gemini 2.0 Flash, which is fast, reasonably smart for structured tasks, and (most importantly) gives up to 1,500 requests per day on the free tier (at the time of writing). That was enough to prototype without running into hard stops… most of the time.&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%2F4qobkxlofmu9omvci4fk.png" 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%2F4qobkxlofmu9omvci4fk.png" alt="Gemini 2.0 Flash description" width="800" height="835"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To connect to Gemini API manually outside Bolt, I used the google-generativeai Python library.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the AI Generated and How It Felt
&lt;/h2&gt;

&lt;p&gt;Bolt didn’t just write a few lines, it generated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A working Telegram bot skeleton&lt;/li&gt;
&lt;li&gt;Clear separation between message handling and AI logic&lt;/li&gt;
&lt;li&gt;Proper dependencies, imports, and basic config structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At first, the bot accepted raw text and returned improved versions of Telegram posts - enhancing structure, readability, and engagement. It corrected grammar, spelling, and punctuation, shortened or expanded content as needed, and even provided suggestions for improvement.&lt;/p&gt;

&lt;p&gt;Pretty quickly, I asked it to go further and refine the prompt logic, modularize the code, and add additional commands.&lt;/p&gt;

&lt;p&gt;But there were limits.&lt;/p&gt;

&lt;p&gt;When I didn't specify the desired architecture, the AI would dump everything into a single monolithic script. When I did ask for modular code, it generated better folder structure and helper functions but at the cost of increased token usage. And yes, I hit credit limits, which meant I had to finish parts of the logic manually.&lt;/p&gt;

&lt;p&gt;Still, the first time I ran the bot and saw it respond inside Telegram - something clicked.&lt;/p&gt;

&lt;p&gt;It was surprisingly satisfying to have a functional AI-enhanced project up and running in just minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Ideas Sparked by the First Prototype
&lt;/h2&gt;

&lt;p&gt;Once the basic bot was working, ideas started flowing.&lt;/p&gt;

&lt;p&gt;Seeing how fast AI could help clean up and rewrite Telegram posts, I realized the tool could go beyond just editing. It could actually manage the full publishing workflow.&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%2Fd8gvmsy6kx9psznzk47s.png" 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%2Fd8gvmsy6kx9psznzk47s.png" alt="Telegram Bot Description" width="471" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s what I started thinking about next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Post publishing. Allow the bot to not just prepare content, but also publish directly to a Telegram channel or group via the Telegram Bot API.&lt;/li&gt;
&lt;li&gt;Localization. Add multilingual support.&lt;/li&gt;
&lt;/ul&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%2Flu0n1bueszhtsx73r3ts.png" 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%2Flu0n1bueszhtsx73r3ts.png" alt="Change Bot Language" width="378" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Token/length management. Telegram has limits on message size, so it made sense to add auto-trimming or content chunking to stay within platform rules.&lt;/li&gt;
&lt;li&gt;Pre-publish editing. Before final posting, offer a preview and allow the user to make last-minute manual edits inside the chat.&lt;/li&gt;
&lt;/ul&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%2F8f1xiu39bwlo3sb8e25f.png" 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%2F8f1xiu39bwlo3sb8e25f.png" alt="Post Preview" width="593" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What started as a simple content editor began to feel more like a personal Telegram content assistant and that opened up a lot of potential for future work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can AI Really Help Refine Code?
&lt;/h2&gt;

&lt;p&gt;Absolutely, but with caution. Bolt proved to be genuinely helpful. In short bursts, AI can feel like pair programming with someone who never gets tired. But it’s not bulletproof.&lt;/p&gt;

&lt;p&gt;“Hallucinations” (weird or buggy code suggestions) usually crept in when I asked for large changes without enough tokens left. That led to incomplete functions, broken imports, or inconsistent naming across files.&lt;/p&gt;

&lt;p&gt;The more specific and scoped the prompt, the better the result.&lt;br&gt;
The more vague or overloaded the task, the more likely it would generate something broken or just... strange.&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can you use AI to build a production-ready bot?&lt;br&gt;
Yes, as long as you treat the AI as a tool, not a team.&lt;br&gt;
Always review, test, and fill in the gaps manually.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For me, Bolt was a solid jumpstart engine, but not a hands-free autopilot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts: What I Learned Using Bolt
&lt;/h2&gt;

&lt;p&gt;This hackathon helped me push beyond the “idea stage” - I expanded my Python stack, built my first real Telegram bot, and got hands-on with the Gemini API.&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%2Fdymc58bw44skzm1gkz5r.png" 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%2Fdymc58bw44skzm1gkz5r.png" alt="Bot Menu" width="596" height="702"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would I recommend Bolt to others? Yes, especially for early-stage prototyping, solo projects, or learning AI-assisted workflows. It’s fast, beginner-friendly, and surprisingly capable when given clear instructions.&lt;/p&gt;

&lt;p&gt;That said, for polishing and scaling production-grade tools, I’d probably pair it with another AI or switch to a full IDE. Bolt shines when you want to test, sketch, and explore ideas, not necessarily when debugging edge cases or optimizing architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: Why You Should Try It Too
&lt;/h2&gt;

&lt;p&gt;If you’ve been putting off your “Telegram bot idea” because it sounds like too much work, I get it. But tools like Bolt can get you to a working MVP much faster than you'd expect. In my case, I saved hours of setup, wiring, and boilerplate.&lt;/p&gt;

&lt;p&gt;To be honest, if I had done everything manually with aiogram, it would’ve taken at least twice as long, just to get to the same functional baseline.&lt;br&gt;
Instead, I had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A working bot prototype in under an hour&lt;/li&gt;
&lt;li&gt;Cleanly structured code (with a few edits)&lt;/li&gt;
&lt;li&gt;Gemini integration up and running with minimal friction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The bot is still a work in progress, but it’s live on GitHub if you want to try it, fork it, or improve it:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/pyCrafts/TgPostAI" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m planning to host it soon and turn it into a proper content assistant for Telegram creators.&lt;/p&gt;

&lt;p&gt;If you're exploring something similar or just want to collaborate, I’d love to hear from you.&lt;/p&gt;

&lt;p&gt;This project was built as part of a hackathon by &lt;a class="mentioned-user" href="https://dev.to/oleg_pydev"&gt;@oleg_pydev&lt;/a&gt; and &lt;a class="mentioned-user" href="https://dev.to/valentina_skakun"&gt;@valentina_skakun&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>wlhchallenge</category>
      <category>bolt</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
