<?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: Daniil Pankov</title>
    <description>The latest articles on DEV Community by Daniil Pankov (@tdamer).</description>
    <link>https://dev.to/tdamer</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%2F672518%2F2c5b0b61-9493-435a-aac7-17c0e9e7ca0b.png</url>
      <title>DEV Community: Daniil Pankov</title>
      <link>https://dev.to/tdamer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tdamer"/>
    <language>en</language>
    <item>
      <title>Scroll shadow above the content with pure CSS</title>
      <dc:creator>Daniil Pankov</dc:creator>
      <pubDate>Wed, 27 Jul 2022 09:49:22 +0000</pubDate>
      <link>https://dev.to/tdamer/scroll-shadow-above-the-content-with-pure-css-41a3</link>
      <guid>https://dev.to/tdamer/scroll-shadow-above-the-content-with-pure-css-41a3</guid>
      <description>&lt;ol&gt;
&lt;li&gt;You tried using different libraries (&lt;a href="https://www.npmjs.com/package/react-shadow-scroll"&gt;react-scroll-shadow&lt;/a&gt;, &lt;a href="https://www.npmjs.com/package/scroll-shadow-element"&gt;scroll-shadow-element&lt;/a&gt;, &lt;a href="https://www.npmjs.com/package/use-scroll-shadow"&gt;use-scroll-shadow&lt;/a&gt;), but they didn't work for you?&lt;/li&gt;
&lt;li&gt;You even tried to write your own solution using &lt;a href="https://css-scroll-shadows.vercel.app/"&gt;background-attachment&lt;/a&gt;, but that didn't work too, the shadow displayed behind the elements (of course, because it's background, not foreground)&lt;/li&gt;
&lt;li&gt;JS seems cool, but too heavy, and you are tired of catching bugs with &lt;a href="https://css-tricks.com/scroll-shadows-with-javascript/#:~:text=Scroll%20shadows%20are%20when%20you,t%20work%20on%20iOS%20Safari."&gt;this solution&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hello there, I know what else you can do:&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Try using &lt;code&gt;sticky&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This thing saved me a lot when I was developing scrollable content&lt;/p&gt;

&lt;p&gt;Take a look here:&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://player.vimeo.com/video/733927202" width="710" height="399"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  How to do this?
&lt;/h3&gt;

&lt;p&gt;It's pretty simple, you should structure your scrollable block like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;/* Wrapper styles, sometimes you might need overflow-x-hidden */
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;{{position:&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;relative&lt;/span&gt;&lt;span class="err"&gt;',&lt;/span&gt; &lt;span class="na"&gt;overflow:&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;overflow-y-auto&lt;/span&gt;&lt;span class="err"&gt;'}}&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
 /* Upper shadow block */
 &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;{{position:&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;sticky&lt;/span&gt;&lt;span class="err"&gt;',&lt;/span&gt; &lt;span class="na"&gt;zIndex:&lt;/span&gt; &lt;span class="err"&gt;'10',&lt;/span&gt; &lt;span class="na"&gt;top:&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;-1px&lt;/span&gt;&lt;span class="err"&gt;',&lt;/span&gt; 
 &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;linear-gradinet&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;to&lt;/span&gt; &lt;span class="na"&gt;bottom&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;#00000000&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;#fff&lt;/span&gt;&lt;span class="err"&gt;')'}}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Bunch of your content here&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

 /* Bottom shadow block */
 &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;{{position:&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;sticky&lt;/span&gt;&lt;span class="err"&gt;',&lt;/span&gt; &lt;span class="na"&gt;zIndex:&lt;/span&gt; &lt;span class="err"&gt;'10',&lt;/span&gt; &lt;span class="na"&gt;bottom:&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;-1px&lt;/span&gt;&lt;span class="err"&gt;',&lt;/span&gt; 
 &lt;span class="na"&gt;backgroundImage:&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;linear-gradinet&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;to&lt;/span&gt; &lt;span class="na"&gt;bottom&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;#fff&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt; 
 &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="na"&gt;#00000000&lt;/span&gt;&lt;span class="err"&gt;')'}}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Phew, hope I didn't mess up the styling part, I don't want to include the &lt;code&gt;.css&lt;/code&gt; file, because you'll understand the code better in one plate&lt;/p&gt;

&lt;h2&gt;
  
  
  Good luck doing great layouts :)
&lt;/h2&gt;

</description>
      <category>css</category>
      <category>tutorial</category>
      <category>html</category>
      <category>design</category>
    </item>
    <item>
      <title>Mailspring/email client inverts colors in dark mode</title>
      <dc:creator>Daniil Pankov</dc:creator>
      <pubDate>Wed, 13 Jul 2022 17:47:44 +0000</pubDate>
      <link>https://dev.to/tdamer/mailspringemail-client-inverts-colors-in-dark-mode-1h4j</link>
      <guid>https://dev.to/tdamer/mailspringemail-client-inverts-colors-in-dark-mode-1h4j</guid>
      <description>&lt;p&gt;Hey, Mailspring / other mail client team, I found out your little secret, thanks for spending my time solving mystery on why the heck my dark email becomes white and shiny?!&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;p&gt;In your &lt;code&gt;body&lt;/code&gt; tag or in your &lt;code&gt;.css&lt;/code&gt; add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;  &lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt; &lt;span class="cp"&gt;!important&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;p&gt;Next time your email client will do this shit, please take a look into the source code (Ctrl + Shift + I) and search for &lt;code&gt;filter&lt;/code&gt; or something like that, usually &lt;code&gt;inline&lt;/code&gt; styles will overlap any other styles and thing will work&lt;/p&gt;

&lt;h2&gt;
  
  
  ENJOY!
&lt;/h2&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>email</category>
      <category>css</category>
    </item>
    <item>
      <title>Material Search Bar</title>
      <dc:creator>Daniil Pankov</dc:creator>
      <pubDate>Thu, 06 Jan 2022 19:53:27 +0000</pubDate>
      <link>https://dev.to/tdamer/material-search-bar-2l45</link>
      <guid>https://dev.to/tdamer/material-search-bar-2l45</guid>
      <description>&lt;p&gt;Expanding search bar, try it :)&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/t-damer/embed/jOGpWdb?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>css</category>
      <category>nojs</category>
      <category>purecss</category>
      <category>csseffect</category>
    </item>
    <item>
      <title>Pure CSS Loader Life is Strange</title>
      <dc:creator>Daniil Pankov</dc:creator>
      <pubDate>Tue, 14 Sep 2021 09:43:04 +0000</pubDate>
      <link>https://dev.to/tdamer/pure-css-loader-life-is-strange-1bod</link>
      <guid>https://dev.to/tdamer/pure-css-loader-life-is-strange-1bod</guid>
      <description>&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/t-damer/embed/zYzdMaG?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
    </item>
    <item>
      <title>Deploy telegram bot to heroku for free</title>
      <dc:creator>Daniil Pankov</dc:creator>
      <pubDate>Sat, 21 Aug 2021 13:42:36 +0000</pubDate>
      <link>https://dev.to/tdamer/deploy-telegram-bot-to-heroku-for-free-h67</link>
      <guid>https://dev.to/tdamer/deploy-telegram-bot-to-heroku-for-free-h67</guid>
      <description>&lt;h2&gt;
  
  
  I used telegraf, but you can use any other framework and language
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Hello there, you created your telegram bot and want to deploy it somewhere? Let me help you, I already done this before:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;▶ Bot itself - &lt;a href="https://t.me/WishBasket_bot" rel="noopener noreferrer"&gt;https://t.me/WishBasket_bot&lt;/a&gt;&lt;br&gt;
▶ Source code - &lt;a href="https://github.com/T-Damer/wishBasket-bot" rel="noopener noreferrer"&gt;https://github.com/T-Damer/wishBasket-bot&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  First steps
&lt;/h2&gt;

&lt;p&gt;Create repository on github and upload your bot to &lt;code&gt;main&lt;/code&gt; branch, like &lt;a href="https://github.com/T-Damer/wishBasket-bot" rel="noopener noreferrer"&gt;I did&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Allright, now let's go to &lt;a href="https://dashboard.heroku.com/" rel="noopener noreferrer"&gt;Heroku Dashboard&lt;/a&gt;. Create app, if you still haven't done so:&lt;br&gt;
&lt;a href="https://media.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%2Fl4xschcmxcvuuzbkafe9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fl4xschcmxcvuuzbkafe9.png" alt="chrome_IyMPGdilzQ"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Give it a name, choose location you prefer, then scroll down and choose GitHub and Repo with your bot: &lt;a href="https://media.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%2Fwn04nybu8tcgcjx5h7ao.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fwn04nybu8tcgcjx5h7ao.png" alt="chrome_ZMN6JLPu0u"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also recommend checking auto-deploy, so when you upload new changes to your repo, it will deploy them automatically&lt;/p&gt;

&lt;p&gt;🎉 Nice, you completed step one 🎉&lt;/p&gt;
&lt;h2&gt;
  
  
  Easy, but...
&lt;/h2&gt;

&lt;p&gt;Okay, your bot will work for a while, or maybe not... You may see errors over there:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F4cpl6drcvx6kqsvunp8i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F4cpl6drcvx6kqsvunp8i.png" alt="4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's go straight through the problems you will face&lt;/p&gt;
&lt;h3&gt;
  
  
  Can't get '/' : &lt;code&gt;code=H10 desc="App crashed"&lt;/code&gt; and &lt;code&gt;Can not get '/'&lt;/code&gt; and &lt;code&gt;Can not get 'favicon.ico'&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This error happens, because Heroku don't know, that you're deploying a bot, Heroku thinks, that you want to make a web-page. &lt;br&gt;
To awoid &lt;code&gt;Can not get '/'&lt;/code&gt;, simply add express (or any other server-app) to your &lt;code&gt;App.js&lt;/code&gt; or &lt;code&gt;App.ts&lt;/code&gt; like this:&lt;/p&gt;

&lt;p&gt;(Yes, I use TypeScript, no worries, you can do this with JS 🙂)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// ===Your bot logic here &lt;/span&gt;

&lt;span class="c1"&gt;// Start app for Heroku&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;express&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;static&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;public&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;h1&amp;gt;Hello There! You found &amp;lt;a href='https://t.me/wishbasket_bot'&amp;gt;@WishBasket_bot&amp;lt;/a&amp;gt; backend&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="c1"&gt;// Start server&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Server is running...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⚠ Use &lt;code&gt;process.env.PORT || 3000&lt;/code&gt;, because Heroku uses it's own PORT, which will be taken from it's environment ⚠&lt;/p&gt;

&lt;p&gt;Congratulations, you have successfully avoided first error 🎉&lt;/p&gt;

&lt;h3&gt;
  
  
  Heroku started idling
&lt;/h3&gt;

&lt;p&gt;Everything were good, but after 30 minutes heroku turned my bot off, it is not responding to any commands 💢 &lt;/p&gt;

&lt;p&gt;Chill, will fix it in a minute 🍦&lt;/p&gt;

&lt;p&gt;Consider &lt;a href="https://devcenter.heroku.com/articles/free-dyno-hours" rel="noopener noreferrer"&gt;looking here&lt;/a&gt; before avoiding this, you must know limitations&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Quick answer&lt;/em&gt;: add your bot express url (mine was - &lt;a href="https://wishbasket-bot.herokuapp.com/" rel="noopener noreferrer"&gt;https://wishbasket-bot.herokuapp.com/&lt;/a&gt;, click &lt;code&gt;Open App&lt;/code&gt; on Heroku Dashboard) to &lt;a href="http://kaffeine.herokuapp.com/" rel="noopener noreferrer"&gt;kaffeine.heroku&lt;/a&gt;, remember to setup badtime (time format is GTM!) It will ping your online page every 30 minutes, so your bot will never fall asleep ☕&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Long answer(s)&lt;/em&gt;: well, better read &lt;a href="https://stackoverflow.com/questions/5480337/easy-way-to-prevent-heroku-idling" rel="noopener noreferrer"&gt;answers here&lt;/a&gt;. You can use &lt;a href="https://elements.heroku.com/addons/newrelic" rel="noopener noreferrer"&gt;this NewRelic extension&lt;/a&gt;, but I personally recommend you using caffeine, because if you want to add extensions on Heroku, you must enter your credit card (which I could not do, although the data is correct, thanks Heroku 🤦‍♂️)&lt;/p&gt;

&lt;p&gt;Congratulations on your bypassing restrictions 🍾&lt;/p&gt;




&lt;h2&gt;
  
  
  Bonus. How to add secrets?
&lt;/h2&gt;

&lt;p&gt;Well, I personally used &lt;a href="https://www.mongodb.com/cloud/atlas" rel="noopener noreferrer"&gt;MongoDB Cluster&lt;/a&gt; to manage database, I had special link with login and password to my database, hidden in &lt;code&gt;.env.local&lt;/code&gt; file, and used &lt;code&gt;.dotenv&lt;/code&gt; to use this file (never publish such a thing to the internet!)&lt;/p&gt;

&lt;p&gt;So, I nedded to use this link in my bot, but it wasn't in my repo, what should I do?&lt;/p&gt;

&lt;h3&gt;
  
  
  Easy, watch me
&lt;/h3&gt;

&lt;p&gt;Open your app setting: &lt;br&gt;
&lt;a href="https://media.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%2Fc61r0yzi4wvepnedtmv7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fc61r0yzi4wvepnedtmv7.png" alt="5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scroll to config vars: &lt;br&gt;
&lt;a href="https://media.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%2Fehhjmecuitrfha8kjmfe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fehhjmecuitrfha8kjmfe.png" alt="6"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Add your variable, it should have same name, as inside your app:&lt;br&gt;
&lt;a href="https://media.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%2Fnf8fcnxaoe8abnfd522r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fnf8fcnxaoe8abnfd522r.png" alt="7"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thanks for reading 💛 &lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>heroku</category>
      <category>telegraf</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Neo Button</title>
      <dc:creator>Daniil Pankov</dc:creator>
      <pubDate>Wed, 18 Aug 2021 06:54:07 +0000</pubDate>
      <link>https://dev.to/tdamer/super-neo-button-4k74</link>
      <guid>https://dev.to/tdamer/super-neo-button-4k74</guid>
      <description>&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/t-damer/embed/MWmRQYv?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>neomorphism</category>
      <category>purecss</category>
    </item>
    <item>
      <title>Language Switcher HTML+CSS</title>
      <dc:creator>Daniil Pankov</dc:creator>
      <pubDate>Sat, 14 Aug 2021 14:41:42 +0000</pubDate>
      <link>https://dev.to/tdamer/language-switcher-html-css-4flg</link>
      <guid>https://dev.to/tdamer/language-switcher-html-css-4flg</guid>
      <description>&lt;p&gt;Switch language of your web-site only with HTML and CSS, using &lt;code&gt;display: none&lt;/code&gt; or &lt;code&gt;display: block&lt;/code&gt;, easy-peasy :)&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/t-damer/embed/jOmRqXz?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
    </item>
  </channel>
</rss>
