<?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: 7assan Osama</title>
    <description>The latest articles on DEV Community by 7assan Osama (@7assanosama).</description>
    <link>https://dev.to/7assanosama</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%2F3822791%2Fe0881fb1-6a99-4155-8cf4-c54ad959ba03.jpeg</url>
      <title>DEV Community: 7assan Osama</title>
      <link>https://dev.to/7assanosama</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/7assanosama"/>
    <language>en</language>
    <item>
      <title>Build a Telegram Bot to Track Website Changes in Real-Time (Python Guide)</title>
      <dc:creator>7assan Osama</dc:creator>
      <pubDate>Mon, 27 Apr 2026 13:11:04 +0000</pubDate>
      <link>https://dev.to/7assanosama/build-a-telegram-bot-to-track-website-changes-in-real-time-python-guide-4kj6</link>
      <guid>https://dev.to/7assanosama/build-a-telegram-bot-to-track-website-changes-in-real-time-python-guide-4kj6</guid>
      <description>&lt;h1&gt;
  
  
  Build a Telegram Bot to Track Website Changes in Real-Time (Python Guide)
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;Learn how to create a Telegram bot using Python to monitor website changes, detect updates, and send instant alerts automatically.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What This Bot Does
&lt;/h2&gt;

&lt;p&gt;This bot allows users to submit any URL. It then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fetches the page content&lt;/li&gt;
&lt;li&gt;Stores a snapshot of the page&lt;/li&gt;
&lt;li&gt;Periodically checks for updates&lt;/li&gt;
&lt;li&gt;Sends a notification if a change is detected&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tracking product prices&lt;/li&gt;
&lt;li&gt;Monitoring availability&lt;/li&gt;
&lt;li&gt;Following competitor updates&lt;/li&gt;
&lt;li&gt;Detecting content changes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Live Demo
&lt;/h2&gt;

&lt;p&gt;You can try the bot here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://t.me/trackly2027_bot" rel="noopener noreferrer"&gt;https://t.me/trackly2027_bot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Start the bot, send a link, and it will begin monitoring automatically.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;python-telegram-bot&lt;/li&gt;
&lt;li&gt;SQLite or PostgreSQL&lt;/li&gt;
&lt;li&gt;Requests / BeautifulSoup&lt;/li&gt;
&lt;li&gt;Threading or async processing&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  System Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Telegram Bot Layer
&lt;/h3&gt;

&lt;p&gt;Handles user interaction:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Receiving links&lt;/li&gt;
&lt;li&gt;Sending responses&lt;/li&gt;
&lt;li&gt;Managing commands&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. Database Layer
&lt;/h3&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User IDs&lt;/li&gt;
&lt;li&gt;URLs&lt;/li&gt;
&lt;li&gt;Last known content or hash&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. Fetching Engine
&lt;/h3&gt;

&lt;p&gt;Responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sending HTTP requests&lt;/li&gt;
&lt;li&gt;Extracting relevant content&lt;/li&gt;
&lt;li&gt;Preparing data for comparison&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. Monitoring Worker
&lt;/h3&gt;

&lt;p&gt;Runs in the background:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Iterates through stored links&lt;/li&gt;
&lt;li&gt;Detects changes&lt;/li&gt;
&lt;li&gt;Sends alerts&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Change Detection Strategy
&lt;/h2&gt;

&lt;p&gt;Instead of comparing raw HTML, a more efficient method is hashing the content.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;hashlib&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;hashlib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;md5&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;hexdigest&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the hash changes, the page content has changed.&lt;/p&gt;

&lt;p&gt;Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster comparisons&lt;/li&gt;
&lt;li&gt;Lower memory usage&lt;/li&gt;
&lt;li&gt;Reduced false positives&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Background Processing
&lt;/h2&gt;

&lt;p&gt;Running everything synchronously will not scale. Use background workers.&lt;/p&gt;

&lt;p&gt;Example using threading:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;threading&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;monitor_links&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;check_all_links&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;threading&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Thread&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;monitor_links&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For production systems, consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Async frameworks&lt;/li&gt;
&lt;li&gt;Task queues&lt;/li&gt;
&lt;li&gt;Scheduled jobs&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Common Challenges
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Websites Blocking Bots
&lt;/h3&gt;

&lt;p&gt;Some websites restrict automated requests.&lt;/p&gt;

&lt;p&gt;Solutions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add request headers&lt;/li&gt;
&lt;li&gt;Use sessions&lt;/li&gt;
&lt;li&gt;Respect rate limits&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. False Positives
&lt;/h3&gt;

&lt;p&gt;Dynamic content like ads or timestamps may trigger unnecessary alerts.&lt;/p&gt;

&lt;p&gt;Solutions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extract only meaningful content&lt;/li&gt;
&lt;li&gt;Clean HTML before processing&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. Scalability
&lt;/h3&gt;

&lt;p&gt;Monitoring many links requires efficient handling.&lt;/p&gt;

&lt;p&gt;Solutions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Queue systems&lt;/li&gt;
&lt;li&gt;Adjustable intervals&lt;/li&gt;
&lt;li&gt;Distributed workers&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Deployment Options
&lt;/h2&gt;

&lt;p&gt;You can deploy this bot using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Railway&lt;/li&gt;
&lt;li&gt;VPS&lt;/li&gt;
&lt;li&gt;Amazon Web Services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make sure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The bot runs continuously&lt;/li&gt;
&lt;li&gt;Your database is persistent&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  SEO Keywords Targeted
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Telegram bot Python&lt;/li&gt;
&lt;li&gt;Website change detection bot&lt;/li&gt;
&lt;li&gt;Monitor website changes Python&lt;/li&gt;
&lt;li&gt;Python automation bot&lt;/li&gt;
&lt;li&gt;Track website updates automatically&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Tags (for Dev.to)
&lt;/h2&gt;

&lt;p&gt;telegram, python, webscraping, automation, bots, backend, programming, opensource&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Building a Telegram bot for monitoring website changes is a practical project that combines automation, backend engineering, and real-world usability.&lt;/p&gt;

&lt;p&gt;Publishing a live version, like this bot, adds real value to your project and increases its impact and visibility.&lt;/p&gt;




</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>python</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Is Free Hosting Really Free?</title>
      <dc:creator>7assan Osama</dc:creator>
      <pubDate>Thu, 19 Mar 2026 21:29:13 +0000</pubDate>
      <link>https://dev.to/7assanosama/is-free-hosting-really-free-d70</link>
      <guid>https://dev.to/7assanosama/is-free-hosting-really-free-d70</guid>
      <description>&lt;p&gt;&lt;strong&gt;Is Free Hosting Really Free?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You’ve probably heard about free hosting before…&lt;br&gt;
And maybe you even considered using it to save some money.&lt;/p&gt;

&lt;p&gt;But here’s the real question:&lt;/p&gt;

&lt;p&gt;Is free hosting actually free?&lt;br&gt;
Or are there things companies don’t tell you?&lt;/p&gt;

&lt;p&gt;In this article, I’ll walk you through the full truth about free hosting—&lt;br&gt;
when it makes sense to use it…&lt;br&gt;
and when it might be the worst decision you can make for your website.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;What is Free Hosting?&lt;/p&gt;

&lt;p&gt;Simply put…&lt;/p&gt;

&lt;p&gt;Free hosting is a service that allows you to publish your website online&lt;br&gt;
without paying a single dollar.&lt;/p&gt;

&lt;p&gt;But in reality…&lt;/p&gt;

&lt;p&gt;Most providers offer it as a shared server.&lt;/p&gt;

&lt;p&gt;That means a single server hosts dozens, hundreds,&lt;br&gt;
or even thousands of websites at the same time.&lt;/p&gt;

&lt;p&gt;And that’s the first reason why free hosting comes with so many issues.&lt;/p&gt;

&lt;p&gt;Let’s start with one of the most annoying ones…&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Ads&lt;/p&gt;

&lt;p&gt;Most free hosting providers place ads on your website.&lt;/p&gt;

&lt;p&gt;So when a visitor opens your site…&lt;br&gt;
they’ll also see ads from the hosting company.&lt;/p&gt;

&lt;p&gt;In many cases,&lt;br&gt;
there’s even a visible banner saying that your site is hosted on a free plan.&lt;/p&gt;

&lt;p&gt;This reduces user trust… significantly.&lt;/p&gt;

&lt;p&gt;And that’s not a small issue.&lt;/p&gt;

&lt;p&gt;It’s a deal breaker.&lt;/p&gt;

&lt;p&gt;On top of that, ads make your website look completely unprofessional.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Performance &amp;amp; Speed&lt;/p&gt;

&lt;p&gt;Let’s be honest.&lt;/p&gt;

&lt;p&gt;Since the server hosts many websites…&lt;/p&gt;

&lt;p&gt;Resources are shared between all of them.&lt;/p&gt;

&lt;p&gt;So if other websites on the same server&lt;br&gt;
are consuming a lot of resources…&lt;/p&gt;

&lt;p&gt;your website will be directly affected.&lt;/p&gt;

&lt;p&gt;And don’t forget—&lt;br&gt;
those resources are already limited.&lt;/p&gt;

&lt;p&gt;In most cases, you’ll notice that your website is very slow.&lt;/p&gt;

&lt;p&gt;If your site is built using modern technologies,&lt;br&gt;
there’s a high chance it won’t even run properly.&lt;/p&gt;

&lt;p&gt;Even worse—&lt;br&gt;
if your site gets a small spike in traffic…&lt;/p&gt;

&lt;p&gt;it might crash completely.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Security&lt;/p&gt;

&lt;p&gt;Security in free hosting is usually weak.&lt;/p&gt;

&lt;p&gt;Because these companies don’t invest much in protection.&lt;/p&gt;

&lt;p&gt;This means you could:&lt;br&gt;
    • Get hacked&lt;br&gt;
    • Lose your website files&lt;br&gt;
    • Or even find your website suddenly gone&lt;/p&gt;

&lt;p&gt;And it gets worse…&lt;/p&gt;

&lt;p&gt;Technical support is often limited—or nonexistent.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Domain&lt;/p&gt;

&lt;p&gt;When using free hosting…&lt;/p&gt;

&lt;p&gt;You usually don’t get a professional domain like:&lt;/p&gt;

&lt;p&gt;mysite.com&lt;/p&gt;

&lt;p&gt;Instead, you get something like:&lt;/p&gt;

&lt;p&gt;mysite.freehostingcompany.com&lt;/p&gt;

&lt;p&gt;This looks unprofessional and also:&lt;br&gt;
    • Makes marketing harder&lt;br&gt;
    • Reduces user trust&lt;/p&gt;

&lt;p&gt;And don’t say:&lt;br&gt;
“I’ll just buy a domain and save on hosting” 😹&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The Marketing Trap&lt;/p&gt;

&lt;p&gt;Many free hosting companies use this as a marketing strategy.&lt;/p&gt;

&lt;p&gt;Here’s how it works:&lt;/p&gt;

&lt;p&gt;You start with the free plan…&lt;/p&gt;

&lt;p&gt;Then later, you need essential features like:&lt;br&gt;
    • A custom domain&lt;br&gt;
    • Better performance&lt;br&gt;
    • More storage&lt;/p&gt;

&lt;p&gt;At that point, they tell you:&lt;/p&gt;

&lt;p&gt;Upgrade to a paid plan.&lt;/p&gt;

&lt;p&gt;And over time…&lt;/p&gt;

&lt;p&gt;You get too comfortable (or lazy) to migrate your site elsewhere,&lt;br&gt;
so you end up paying them anyway.&lt;/p&gt;

&lt;p&gt;In the process,&lt;br&gt;
you might miss out on better and cheaper alternatives—&lt;br&gt;
just because staying feels easier.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;So… Is It Ever Useful?&lt;/p&gt;

&lt;p&gt;Actually—yes.&lt;/p&gt;

&lt;p&gt;Free hosting can be useful if you:&lt;br&gt;
    • Are learning to code&lt;br&gt;
    • Want to test something quickly&lt;br&gt;
    • Build small practice projects&lt;br&gt;
    • Create a quick prototype&lt;/p&gt;

&lt;p&gt;But it’s not suitable for a real project or production website.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Free hosting can be helpful…&lt;/p&gt;

&lt;p&gt;But only within limits.&lt;/p&gt;

&lt;p&gt;If you’re learning or experimenting,&lt;br&gt;
it’s a good option.&lt;/p&gt;

&lt;p&gt;But if you’re building a real website or business…&lt;/p&gt;

&lt;p&gt;Paid hosting is almost always the better choice.&lt;/p&gt;

&lt;p&gt;Because you’re not just paying for a server—&lt;br&gt;
you’re paying for:&lt;br&gt;
    • Speed&lt;br&gt;
    • Security&lt;br&gt;
    • Support&lt;br&gt;
    • Professionalism&lt;br&gt;
    • And most importantly… user trust&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Your Turn&lt;/p&gt;

&lt;p&gt;Have you ever tried free hosting before?&lt;br&gt;
What was the biggest problem you faced? 👇&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>linux</category>
      <category>devops</category>
    </item>
    <item>
      <title>Forget retyping! 🐧 If a Linux command fails due to missing permissions, just type:
sudo !!
The "Bang Bang" shortcut re-runs your last command with root access. Save time and stay in the flow! 🔥 #Linux #Terminal #DevTips</title>
      <dc:creator>7assan Osama</dc:creator>
      <pubDate>Sun, 15 Mar 2026 23:49:38 +0000</pubDate>
      <link>https://dev.to/7assanosama/forget-retyping-if-a-linux-command-fails-due-to-missing-permissions-just-type-sudo-the-1o7n</link>
      <guid>https://dev.to/7assanosama/forget-retyping-if-a-linux-command-fails-due-to-missing-permissions-just-type-sudo-the-1o7n</guid>
      <description></description>
      <category>beginners</category>
      <category>cli</category>
      <category>linux</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
