<?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>Forem: Rohan Salunkhe</title>
    <description>The latest articles on Forem by Rohan Salunkhe (@amrohan).</description>
    <link>https://forem.com/amrohan</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%2F667369%2Ffe75b7a9-21c4-40d8-a1d4-ccc3797d84fb.jpeg</url>
      <title>Forem: Rohan Salunkhe</title>
      <link>https://forem.com/amrohan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/amrohan"/>
    <language>en</language>
    <item>
      <title>Meet Termix — Beautiful Terminal based file navigator</title>
      <dc:creator>Rohan Salunkhe</dc:creator>
      <pubDate>Fri, 15 Aug 2025 15:21:14 +0000</pubDate>
      <link>https://forem.com/amrohan/meet-termix-beautiful-terminal-based-file-navigator-54mo</link>
      <guid>https://forem.com/amrohan/meet-termix-beautiful-terminal-based-file-navigator-54mo</guid>
      <description>&lt;p&gt;Tired of endlessly scrolling through file trees in your terminal? &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Termix&lt;/strong&gt; is a modern, high-performance file navigator that transforms your terminal into a sleek, two-pane explorer featuring:&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%2Frpn346i5snt2iji0h001.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%2Frpn346i5snt2iji0h001.png" alt="Layout termix" width="800" height="475"&gt;&lt;/a&gt;&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%2Feuv64qwf83wo3r05cbni.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%2Feuv64qwf83wo3r05cbni.png" alt="Progress Image" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Instant recursive search &amp;amp; filtering&lt;/strong&gt; as you type&lt;/li&gt;
&lt;li&gt;Smooth, flicker-free UI with double-buffered rendering&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vim-style navigation&lt;/strong&gt; (J/K + arrows)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart file operations&lt;/strong&gt;: create, copy, move, delete with progress feedback&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Syntax-highlighted previews&lt;/strong&gt; for code, configs, and images&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GIT-friendly&lt;/strong&gt; defaults (.gitignore support &amp;amp; filter presets)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-platform&lt;/strong&gt;: works beautifully on Windows, macOS, and Linux&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ⚡ Quick Start
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Option 1 — Install via Bash Script &lt;em&gt;(No extra tools needed)&lt;/em&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install or update to latest&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/amrohan/termix/main/install.sh | bash

&lt;span class="c"&gt;# Install specific version&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/amrohan/termix/main/install.sh | bash &lt;span class="nt"&gt;-s&lt;/span&gt; v2.0.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Option 2 — Install via .NET Global Tool
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dotnet tool &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--global&lt;/span&gt; termix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Launch it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;termix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hit &lt;code&gt;S&lt;/code&gt; to search/files, &lt;code&gt;Enter&lt;/code&gt; to open, &lt;code&gt;A/R/X/C/D/P&lt;/code&gt; for file operations, &lt;code&gt;J/K/H/L&lt;/code&gt; or arrows to navigate.&lt;br&gt;
Preview pane scrolls with &lt;code&gt;Alt + Arrows&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  ❤️ Why You’ll Love It
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Speed &amp;amp; fluidity&lt;/strong&gt; – no more lag while scanning directories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual feedback&lt;/strong&gt; – icons, colors, progress bars &amp;amp; syntax highlighting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Efficient workflows&lt;/strong&gt; – ideal for scripting and power users&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🤝 Want to Contribute?
&lt;/h3&gt;

&lt;p&gt;Termix is fully open-source under MIT.&lt;br&gt;
Check out the repo for features, bug fixes, or adding support for file types &amp;amp; themes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/amrohan/termix" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://termix.pages.dev/guide/installation.html" rel="noopener noreferrer"&gt;&lt;strong&gt;Termix Installation Guide&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Try it out and let me know how you use it in your terminal workflows!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>dotent</category>
      <category>cli</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The Only News Bot for your all Daily News</title>
      <dc:creator>Rohan Salunkhe</dc:creator>
      <pubDate>Tue, 17 May 2022 07:47:17 +0000</pubDate>
      <link>https://forem.com/amrohan/the-only-news-bot-for-your-all-daily-news-4n37</link>
      <guid>https://forem.com/amrohan/the-only-news-bot-for-your-all-daily-news-4n37</guid>
      <description>&lt;p&gt;It's preferable to read the news as a tech fan to keep up with what's new in the world of technology.&lt;/p&gt;

&lt;p&gt;Also difficult to keep up with websites and news; visiting each page only to see what's new takes time. It's also difficult to keep track of tech news websites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Isn't it more convenient to have all of those news websites and articles in one place?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;As a result of this, I developed a &lt;strong&gt;&lt;a href="https://t.me/DevBudbot" rel="noopener noreferrer"&gt;DevBudBot&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Check out live Bot here &lt;a href="https://t.me/DevBudbot" rel="noopener noreferrer"&gt;DevBudBot&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  So, what exactly is this and what does it do?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://t.me/DevBudbot" rel="noopener noreferrer"&gt;DevBudBot&lt;/a&gt; is a Telegram bot that collects data from a variety of websites and provides article titles with embedded urls.&lt;/p&gt;

&lt;p&gt;All of the website urls are in the command, and all you have to do is click on your preferred site name in the command to obtain the news.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supported websites till now :
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.theverge.com/" rel="noopener noreferrer"&gt;The Verge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/"&gt;Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.producthunt.com/" rel="noopener noreferrer"&gt;Product hunt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thenextweb.com/" rel="noopener noreferrer"&gt;The next web&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sidebar.io/" rel="noopener noreferrer"&gt;Sidebar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.echojs.com/" rel="noopener noreferrer"&gt;Echojs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techcrunch.com/" rel="noopener noreferrer"&gt;Tech Crunch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.ycombinator.com/" rel="noopener noreferrer"&gt;Hacker News&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tldr.tech/" rel="noopener noreferrer"&gt;Tldr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-tricks.com/" rel="noopener noreferrer"&gt;Css-tricks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.wired.com/" rel="noopener noreferrer"&gt;Wired&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;You can find the project on &lt;a href="https://github.com/amrohan/Dev-News-Bot" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>devnewsbot</category>
      <category>programming</category>
      <category>news</category>
    </item>
    <item>
      <title>The easiest way to create authentication in 2 min with NextJs &amp; Auth0</title>
      <dc:creator>Rohan Salunkhe</dc:creator>
      <pubDate>Thu, 27 Jan 2022 10:27:20 +0000</pubDate>
      <link>https://forem.com/amrohan/the-easiest-way-to-create-authentication-in-2-min-with-nextjs-auth0-4c45</link>
      <guid>https://forem.com/amrohan/the-easiest-way-to-create-authentication-in-2-min-with-nextjs-auth0-4c45</guid>
      <description>&lt;p&gt;Aren't you sick of having to authenticate users with long codes and dirty back-end work?&lt;/p&gt;

&lt;p&gt;Here's the quickest way to do it in under 2 minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo :
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://auth0.amrohan.com" rel="noopener noreferrer"&gt;Live Preview&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;a href="https://auth0.com/" rel="noopener noreferrer"&gt;Go to Auth0 SignUp or Login&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  2. Click on Applications
&lt;/h3&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%2Fzxfgh8d1hlkrubummsk3.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%2Fzxfgh8d1hlkrubummsk3.jpg" alt="Step 2 screenshot" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Click on Applications
&lt;/h3&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%2Fexa5r1de3gdil7s5b0g0.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%2Fexa5r1de3gdil7s5b0g0.jpg" alt="Step 3 screenshot" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Click on Create Application
&lt;/h3&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%2F7jekkysc6xillr7fd6gb.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%2F7jekkysc6xillr7fd6gb.jpg" alt="Step 4 screenshot" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Paste name of the app into input
&lt;/h3&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%2F1iifw18wf89ps9s7o4aa.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%2F1iifw18wf89ps9s7o4aa.jpg" alt="Step 5 screenshot" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Click on Regular app
&lt;/h3&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%2F6dc6vvzltf9rlcqqtpm4.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%2F6dc6vvzltf9rlcqqtpm4.png" alt="Step 6 screenshot" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Click on Create
&lt;/h3&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%2Fjv7u115jcvxbtld3enca.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%2Fjv7u115jcvxbtld3enca.jpg" alt="Step 7 screenshot" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Click on Settings
&lt;/h3&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%2Fytmnui4vqkwgcq8agye7.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%2Fytmnui4vqkwgcq8agye7.jpg" alt="Step 8 screenshot" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Type &lt;code&gt;http://localhost:3000/api/auth/callback&lt;/code&gt;
&lt;/h3&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%2F9chfjmn7hkeaqlyx42ko.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%2F9chfjmn7hkeaqlyx42ko.png" alt="Step 9 screenshot" width="750" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Type &lt;code&gt;http://localhost:3000&lt;/code&gt;
&lt;/h3&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%2Fd63u3uqouzf6m2uzd0or.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%2Fd63u3uqouzf6m2uzd0or.jpg" alt="Step 10 screenshot" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note when you will deploy this app you should change the url to&lt;br&gt;
&lt;code&gt;http://locahost:3000/api/auth/callback&lt;/code&gt; to &lt;code&gt;http://yourdomain.com/api/auth/callback&lt;/code&gt;&lt;br&gt;
Same for &lt;strong&gt;Logout URL's&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  11. Click on Save Changes
&lt;/h3&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%2Fs0a142w8iwkublbtd73k.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%2Fs0a142w8iwkublbtd73k.jpg" alt="Step 11 screenshot" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  12. Scroll up take note of your &lt;code&gt;domain&lt;/code&gt; , &lt;code&gt;client id&lt;/code&gt; and &lt;code&gt;client secret&lt;/code&gt;
&lt;/h3&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%2Fycnbv0ns87vql7idkxnw.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%2Fycnbv0ns87vql7idkxnw.png" alt="client" width="800" height="341"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Now create a Nextjs App
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1 . &lt;code&gt;yarn create next-app&lt;/code&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  2 . Create &lt;strong&gt;&lt;code&gt;.env.local&lt;/code&gt;&lt;/strong&gt; and paste your secrets here
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# A long, secret value used to encrypt the session cookie use any random 32 character string
AUTH0_SECRET = 'LONG_RANDOM_VALUE'

# The base url of your application
AUTH0_BASE_URL= 'http://localhost:3000'

# The url of your Auth0 tenant domain
AUTH0_ISSUER_BASE_URL = 'https://YOUR_AUTH0_DOMAIN.auth0.com'

# Your Auth0 application's Client ID
AUTH0_CLIENT_ID = 'YOUR_AUTH0_CLIENT_ID'

# Your Auth0 application's Client Secret
 AUTH0_CLIENT_SECRET = 'YOUR_AUTH0_CLIENT_SECRET'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3 . Install &lt;strong&gt;@auth0/nextjs-auth0&lt;/strong&gt;  SDK
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @auth0/nextjs-auth0
&lt;span class="c"&gt;# Or&lt;/span&gt;
yarn add @auth0/nextjs-auth0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4 . Get your environment variables
&lt;/h3&gt;

&lt;h3&gt;
  
  
  5 . Step copy your secrets to &lt;code&gt;.env.local&lt;/code&gt;
&lt;/h3&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%2Ftmfgdtr4c97p094egqug.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%2Ftmfgdtr4c97p094egqug.png" alt="Client Secrets" width="713" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6 . Go to &lt;code&gt;pages/api/&lt;/code&gt; create a new file &lt;code&gt;auth/[...auth0].js&lt;/code&gt; this will create folder &lt;code&gt;auth&lt;/code&gt; and file &lt;code&gt;[...auth0].js&lt;/code&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;[...auth0]js&lt;/code&gt; to catch all slug so we can use same route for login and logout&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now paste the following code in your &lt;code&gt;auth/[...auth0].js&lt;/code&gt; file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;handleAuth&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@auth0/nextjs-auth0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nf"&gt;handleAuth&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  7. Wrap your &lt;code&gt;pages/_app.js&lt;/code&gt; component with the UserProvider component.
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// pages/_app.js&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;../styles/globals.css&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;UserProvider&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@auth0/nextjs-auth0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pageProps&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;UserProvider&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Component&lt;/span&gt; &lt;span class="p"&gt;{...&lt;/span&gt;&lt;span class="nx"&gt;pageProps&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/UserProvider&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  8 . Now lets implement this inside our &lt;code&gt;pages/index.js&lt;/code&gt; page
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// pages/index.js&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useUser&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@auth0/nextjs-auth0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Index&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useUser&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nx"&gt;Welcome&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/auth/logout&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Logout&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/auth/login&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Login&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  9 . Now Run your nextjs app via
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;span class="c"&gt;#Or&lt;/span&gt;
yarn dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  10 . Now you can login to your app and also be able to logout
&lt;/h3&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%2Fres.cloudinary.com%2Famrohan%2Fimage%2Fupload%2Fv1643274460%2FImages%2Fbyh471jkezkslj75vcca.gif" 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%2Fres.cloudinary.com%2Famrohan%2Fimage%2Fupload%2Fv1643274460%2FImages%2Fbyh471jkezkslj75vcca.gif" alt="gif" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Walla your authentication is done 🎊🔥 .&lt;/p&gt;




&lt;h2&gt;
  
  
  So you can see it in action, I've put some design to it.
&lt;/h2&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%2Fres.cloudinary.com%2Famrohan%2Fimage%2Fupload%2Fv1643275854%2FImages%2Fvirrwhulx38zuq5edsro.gif" 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%2Fres.cloudinary.com%2Famrohan%2Fimage%2Fupload%2Fv1643275854%2FImages%2Fvirrwhulx38zuq5edsro.gif" alt="design" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check out the &lt;a href="https://github.com/amrohan/nextjs-auth0" rel="noopener noreferrer"&gt;Github Repo&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Live Demo :
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://auth0.amrohan.com" rel="noopener noreferrer"&gt;Auth0-Nextjs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Additional features, such as page protection and others, can be added.&lt;br&gt;
Check out the official SDK repo for further information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/auth0/nextjs-auth0" rel="noopener noreferrer"&gt;Official SDK repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>nextjs</category>
      <category>auth0</category>
    </item>
    <item>
      <title>A Telegram Chat-Bot using Python</title>
      <dc:creator>Rohan Salunkhe</dc:creator>
      <pubDate>Sat, 14 Aug 2021 09:59:19 +0000</pubDate>
      <link>https://forem.com/amrohan/a-telegram-chat-bot-using-python-1clg</link>
      <guid>https://forem.com/amrohan/a-telegram-chat-bot-using-python-1clg</guid>
      <description>&lt;h2&gt;
  
  
  Telegram Chat-Bot
&lt;/h2&gt;

&lt;p&gt;A is a simple Telegram bot that responds to users automatically when they communicate with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Latest Update (v0.1.0)
&lt;/h2&gt;

&lt;p&gt;26/04/2022&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Click on badge to run it on repl.it 👉🚀&lt;br&gt;
&lt;a href="https://repl.it/github/amrohan/ChatBot" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frepl.it%2Fbadge%2Fgithub%2Famrohan%2FChatBot" alt="Run on Repl.it" width="134" height="36"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Changes to the bot now allow you to host fully on Replit.com without having to configure anything. Simply replace the scretes.&lt;/p&gt;

&lt;p&gt;Also added new commands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;/tldr - Get a tldr news&lt;/li&gt;
&lt;li&gt;/devto - Get a dev.to top 5 posts of the day&lt;/li&gt;
&lt;li&gt;/quotes - Get a random quote&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Test the bot here 👉 &lt;a href="https://t.me/amrohan_bot" rel="noopener noreferrer"&gt;Chat-Bot&lt;/a&gt;&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%2F4nb1wue48t9fqknh598m.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%2F4nb1wue48t9fqknh598m.jpg" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/luocata9aopbnrfspp2v.jpg" width="800" height="1697"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Create Bot
&lt;/h2&gt;

&lt;p&gt;The first thing you need to do is tell Telegram that you want to create a bot. For this, you’ll need a Telegram account – install their app on your phone, and get it set up.&lt;/p&gt;

&lt;p&gt;Next, start a conversation with the “&lt;a href="https://t.me/BotFather" rel="noopener noreferrer"&gt;BotFather&lt;/a&gt;”. This is a bot that Telegram themselves run, and it controls the creation and registration of bots on their platform. On the Android version of their app, here’s what you do (other platforms are similar)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To start a new chat, tap the start conversation button in the bottom right corner.&lt;/li&gt;
&lt;li&gt;Tap the magnifying glass “Search” icon near the top right.&lt;/li&gt;
&lt;li&gt;Type “botfather”. or click on &lt;a href="https://t.me/BotFather" rel="noopener noreferrer"&gt;@botfather&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Tap on the “&lt;a class="mentioned-user" href="https://dev.to/botfather"&gt;@botfather&lt;/a&gt;” that appears. Make sure it has a blue checkmark next to it.&lt;/li&gt;
&lt;li&gt;It will show a greeting message.&lt;/li&gt;
&lt;li&gt;Click the “Start” button.&lt;/li&gt;
&lt;li&gt;Send it a message “/newbot”&lt;/li&gt;
&lt;li&gt;It will prompt you to give your bot a name. I'm going to title mine "amrohanbot," but you should come up with something original.&lt;/li&gt;
&lt;li&gt;It will then ask for a username, which I will use as "amrohanbot."&lt;/li&gt;
&lt;li&gt;If everything goes well, it will print a message stating that the bot has been created. There's one crucial piece of information in there that you'll need later: the HTTP API access token. It'll be a long string of alphanumeric characters, possibly including a colon. I copied the message to my phone and then emailed it to myself to save it for later — not super-secure, but probably safe enough if you're not going to put anything sensitive into your bot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, even if your bot isn't very vocal right now, let's double-check that it's been made. Start a conversation with it by following the same steps that you did with the BotFather. Hopefully, you'll be able to find it and start a chat, but nothing happens when you hit the "Start" button.&lt;/p&gt;

&lt;p&gt;No big surprise there. Let’s make it do something.&lt;/p&gt;

&lt;p&gt;Begin the installation process after the bot has been created.&lt;/p&gt;
&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;The steps to execute this on your local machine are as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the given repo :
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  git clone https://github.com/amrohan/ChatBot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;After that install requirement.txt
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install install requirement.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;OR &lt;/p&gt;

&lt;p&gt;You can manually install packages by using the commands listed below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install python-telegram-bot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because with dot env installed, we can save and import our telegram bot api key.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install python-dotenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create .env file in the root folder of your cloned GitHub repo and add your botfather telegram bot token.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;API_KEY = {Telegram Bot Token}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now just run the &lt;code&gt;main.py&lt;/code&gt; in terminal.&lt;/p&gt;

&lt;p&gt;Now that your python bot is fully functional, simply modify the file in responses.py to add responses, and in main.py, you'll notice def functions that are used in the telegram bot. Simply build the function and add it to the command handeler.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying bot on Heroku :
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;If you don't already have one, create one on Heroku &lt;a href="https://id.heroku.com/login" rel="noopener noreferrer"&gt;Login&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Now just create new app on Heroku.&lt;/li&gt;
&lt;li&gt;Connect your GitHub repository, which is where you have uploaded your code.&lt;/li&gt;
&lt;li&gt;After connecting it just click on deployed&lt;/li&gt;
&lt;li&gt;Simply go to settings and add config variables while it's being deployed. Add API Key and your Telegram bot token in value by clicking on it.&lt;/li&gt;
&lt;li&gt;Go to dyno and turn it on; your bot will now be fully functional. &lt;/li&gt;
&lt;li&gt;Now all you have to do is go to Telegram and start using it.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Deploying tutorial :
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://youtu.be/XnoZ9zxwnCQ" rel="noopener noreferrer"&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%2Fe9ulxbrvuyt1xblp741l.jpg" alt="Python Telegram Bot Video" width="667" height="500"&gt;&lt;/a&gt;&lt;br&gt;
That's how you got your Telegram bot up and running on Heroku.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contact
&lt;/h3&gt;

&lt;p&gt;If you have any questions or don't understand any of the instructions, please let me know. 👉&lt;a href="mailto:hello@rohan.ml"&gt;hello@rohan.ml&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>heroku</category>
    </item>
    <item>
      <title>How to Make a LinkTree of Your Own Code</title>
      <dc:creator>Rohan Salunkhe</dc:creator>
      <pubDate>Thu, 15 Jul 2021 04:32:25 +0000</pubDate>
      <link>https://forem.com/amrohan/how-to-make-a-linktree-of-your-own-code-ife</link>
      <guid>https://forem.com/amrohan/how-to-make-a-linktree-of-your-own-code-ife</guid>
      <description>&lt;h2&gt;
  
  
  What is linktree ?
&lt;/h2&gt;

&lt;p&gt;Linktree works by creating a landing page on their site, which features multiple links to your site. You simply copy and paste your Linktree landing page URL into your Instagram bio to raise awareness of other parts of your site.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why should you make your own LinkTree, though?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No watermark.&lt;/li&gt;
&lt;li&gt;Also why should you pay when you can make it by yourself.&lt;/li&gt;
&lt;li&gt;It's easy to make one.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Make one like this
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Live &lt;a href="https://amrohan.ml" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;
&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%2Fpdv7l0g6ue4049d16cr5.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%2Fpdv7l0g6ue4049d16cr5.png" alt="Screenshot" width="800" height="1732"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before we begin, you should be familiar with the fundamentals of HTML and CSS.&lt;/p&gt;

&lt;h4&gt;
  
  
  So question is how you do it?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Simply use html and CSS to make things simple. Although it won't be as dynamic as the original linktree, you may make it so by using a framework like react or nextjs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Steps to create
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;You can create a whole from scratch or you can use my source code &lt;a href="https://github.com/amrohan/LinkTree-Alternative" rel="noopener noreferrer"&gt;here.&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Now that you've downloaded the code, all you have to do is alter it to your liking.&lt;/li&gt;
&lt;li&gt;Simply upload the code to your preferred static hosting platform, such as &lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;netlify&lt;/a&gt;, &lt;a href="https://vercel.com/" rel="noopener noreferrer"&gt;vercel&lt;/a&gt;, &lt;a href="https://pages.github.com" rel="noopener noreferrer"&gt;github pages&lt;/a&gt;, or &lt;a href="https://pages.cloudflare.com/" rel="noopener noreferrer"&gt;cloudflare pages&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;✨ Please do not hesitate to contact me with any questions &lt;a href="https://t.me/amrohan" rel="noopener noreferrer"&gt;Here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
