<?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: Shikhar</title>
    <description>The latest articles on DEV Community by Shikhar (@ceoshikhar).</description>
    <link>https://dev.to/ceoshikhar</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%2F553120%2Fde9d6c88-457c-4bdd-9ec8-4fcf212a68a0.jpeg</url>
      <title>DEV Community: Shikhar</title>
      <link>https://dev.to/ceoshikhar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ceoshikhar"/>
    <language>en</language>
    <item>
      <title>I finally released the app I was working on for over a month! It's called Twester.</title>
      <dc:creator>Shikhar</dc:creator>
      <pubDate>Wed, 22 Sep 2021 17:34:40 +0000</pubDate>
      <link>https://dev.to/ceoshikhar/i-finally-released-the-app-i-was-working-on-for-over-a-month-it-s-called-twester-4j5p</link>
      <guid>https://dev.to/ceoshikhar/i-finally-released-the-app-i-was-working-on-for-over-a-month-it-s-called-twester-4j5p</guid>
      <description>&lt;p&gt;TLDR - Twester is a free and open source desktop app built with React, Electron and Node.js that will watch &lt;a href="https://www.twitch.tv/" rel="noopener noreferrer"&gt;Twitch&lt;/a&gt; livestreams for the list of streamers you provide and harvest channel points.&lt;/p&gt;

&lt;p&gt;Download for Windows, Linux or macOS from &lt;a href="https://twester.co/" rel="noopener noreferrer"&gt;twester.co&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/twesterapp/twester" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;, a star 🌟 is really appreciated 😀&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/twesterapp" rel="noopener noreferrer"&gt;
        twesterapp
      &lt;/a&gt; / &lt;a href="https://github.com/twesterapp/twester" rel="noopener noreferrer"&gt;
        twester
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Twitch channel points without watching Twitch.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/twesterapp/twester/main/images/twester_readme_banner.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Ftwesterapp%2Ftwester%2Fmain%2Fimages%2Ftwester_readme_banner.png" alt="readme banner"&gt;&lt;/a&gt;
  &lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Twester&lt;/h1&gt;
&lt;/div&gt;
  &lt;p&gt;Twitch channel points without watching Twitch!&lt;/p&gt;
  &lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;
    &lt;a href="https://github.com/twesterapp/twester#download" rel="noopener noreferrer"&gt;Download&lt;/a&gt;
    &lt;span&gt; | &lt;/span&gt;
    &lt;a href="https://github.com/twesterapp/twester#features" rel="noopener noreferrer"&gt;Features&lt;/a&gt;
    &lt;span&gt; | &lt;/span&gt;
    &lt;a href="https://github.com/twesterapp/twester#screenshots" rel="noopener noreferrer"&gt;Screenshots&lt;/a&gt;
    &lt;span&gt; | &lt;/span&gt;
    &lt;a href="https://github.com/twesterapp/twester#how-it-works" rel="noopener noreferrer"&gt;How it works?&lt;/a&gt;
    &lt;span&gt; | &lt;/span&gt;
    &lt;a href="https://github.com/twesterapp/twester#support" rel="noopener noreferrer"&gt;Support&lt;/a&gt;
    &lt;span&gt; | &lt;/span&gt;
    &lt;a href="https://github.com/twesterapp/twester#credits" rel="noopener noreferrer"&gt;Credits&lt;/a&gt;
  &lt;/h4&gt;
&lt;/div&gt;
  &lt;br&gt;
    &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/508ce3da50c21f53a33cf7bb0af165c44773228b9a242cfdb5060b4d81f7601a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f747765737465726170702f747765737465723f636f6c6f723d303041384538266c6162656c3d253230267374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/508ce3da50c21f53a33cf7bb0af165c44773228b9a242cfdb5060b4d81f7601a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f747765737465726170702f747765737465723f636f6c6f723d303041384538266c6162656c3d253230267374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
    &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/91f408148ec86a1e2b85058eab1f027b1f79a61b26f4c2dc6a88eb9773205bfa/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f747765737465726170702f747765737465722f746f74616c3f636f6c6f723d303041384538267374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/91f408148ec86a1e2b85058eab1f027b1f79a61b26f4c2dc6a88eb9773205bfa/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f747765737465726170702f747765737465722f746f74616c3f636f6c6f723d303041384538267374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Download&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;You can download from &lt;a href="https://github.com/twesterapp/twester/releases" rel="noopener noreferrer"&gt;GitHub Releases&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What is this app all about?&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Twester is a free and open source desktop app that will watch Twitch livestreams for the list of streamers you provide and harvest channel points.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We all love to use channel points in our favorite Twitch streamer's chat, especially doing some &lt;em&gt;gamba&lt;/em&gt; in the hope of more channel points. Sometimes, the &lt;em&gt;gamba&lt;/em&gt; screws you and you go broke and start from 0. Well, no more! Now you can earn channel points without having to watch Twitch's livestream.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Minimal and Intuitive UI&lt;/strong&gt;. Start and pause Twester will a click of a button.&lt;/li&gt;
&lt;li&gt;Add &lt;strong&gt;unlimited streamers&lt;/strong&gt; to streamer's list and Twester will watch them* and harvest channel points for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamers tab&lt;/strong&gt; to manage streamer's list…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/twesterapp/twester" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Motivation
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You do some prediction in chat and go all in with your channel points and lose all of them. Now you have to start from 0 and earn channel points from watching the streamer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The streamers you watch are from different time zones and it's really hard to catch them online. So you can barely earn channel points.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Minimal and Intuitive UI&lt;/strong&gt;. Start and pause Twester will a click of a button.&lt;/li&gt;
&lt;li&gt;  Add &lt;strong&gt;unlimited streamers&lt;/strong&gt; to streamer's list and Twester will watch them* and harvest channel points for you.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Streamers tab&lt;/strong&gt; to manage streamer's list and check their stats (time watched, points harvested, is online/offline, twester watching).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Event logs&lt;/strong&gt; about all the things you need to know. Example, when a streamer goes offline or online, when channel points are earned, when Twester starts or stops watching a livestream and more.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;* Twitch allows max 2 livestreams to be watched at a time. Twester will pick the highest priority streamers to be watched.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Features to come in future
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Predictions&lt;/strong&gt; - Twester will make predictions based on your preferences.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Analytics&lt;/strong&gt; - Visual representation of channel points earned for a streamer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How does it look?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Home tab&lt;/strong&gt; - Twester is &lt;em&gt;watching&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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%2Flalp0o2qqe49bn62r2z4.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%2Flalp0o2qqe49bn62r2z4.png" alt="Twester home tab" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Streamers tab&lt;/strong&gt; - Twester is &lt;em&gt;watching&lt;/em&gt; &lt;strong&gt;xQcOW&lt;/strong&gt; and &lt;strong&gt;jamiepinelive&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&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%2Fowwx7b7w4q3wxw8n5qih.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%2Fowwx7b7w4q3wxw8n5qih.png" alt="Twester streamers tab" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Twitch rewards channel points for a lot of &lt;a href="https://help.twitch.tv/s/article/channel-points-guide?language=en_US#viewers" rel="noopener noreferrer"&gt;reasons&lt;/a&gt;. Twester earns channel points by mainly “watching” a streamer.&lt;/li&gt;
&lt;li&gt;  Twester earns channel points for the following

&lt;ul&gt;
&lt;li&gt;  Watching&lt;/li&gt;
&lt;li&gt;  Active watching (bonus redeemed by click)&lt;/li&gt;
&lt;li&gt;  Watch streaks&lt;/li&gt;
&lt;li&gt;  Participating in a Raid&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Twitch allows users to watch and get channel points for maximum of 2 streamers at a time. That’s why Twester asks you to keep the streamers on Streamers tab sorted(top to bottom) based on priority. Twester picks the 2 streamers from the list with highest priority that are online and “watches” their livestream.&lt;/li&gt;

&lt;li&gt;  To “watch” a livestream, Twester sends a “minute watched event” request to Twitch’s API for that livestream. Twitch uses that request to know which user has watched a livestream for a minute. After several of these requests, Twitch rewards the user with channel points.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Thank you for reading ♥&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Published my first browser extension!</title>
      <dc:creator>Shikhar</dc:creator>
      <pubDate>Thu, 01 Apr 2021 12:43:57 +0000</pubDate>
      <link>https://dev.to/ceoshikhar/published-my-first-browser-extension-eon</link>
      <guid>https://dev.to/ceoshikhar/published-my-first-browser-extension-eon</guid>
      <description>&lt;p&gt;TL;DR - I created &lt;code&gt;Better GitHub&lt;/code&gt; for Chrome initially and made a post about it &lt;a href="https://dev.to/ceoshikhar/enhance-your-code-reading-experience-on-github-with-this-chrome-extension-24ei"&gt;here&lt;/a&gt; few days ago. It got a really good response from the other developers out here and many of them wanted this extension to support Firefox as well. One even mentioned that publishing on Firefox is free unlike Chrome web store. So I made changes to support Firefox and even published it!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/bettergithub" rel="noopener noreferrer"&gt;Download it for Firefox&lt;/a&gt;, leave a rating if you download it. I would really appreciate it.&lt;br&gt;
&lt;a href="https://github.com/ceoshikhar/better-github" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;, a star is really appreciated 😀&lt;/p&gt;

&lt;h1&gt;
  
  
  Demo
&lt;/h1&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%2Fgithub.com%2Fceoshikhar%2Fbetter-github%2Fblob%2Fmain%2Fassets%2Fdemo.gif%3Fraw%3Dtrue" 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%2Fgithub.com%2Fceoshikhar%2Fbetter-github%2Fblob%2Fmain%2Fassets%2Fdemo.gif%3Fraw%3Dtrue" width="1024" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Intro
&lt;/h1&gt;

&lt;p&gt;As mentioned in the earlier post, this extension was purely just to solve my niche problem. The response on that post was very unexpected. Everyone was so motivating and supportive. The fact that some of them even asked for it to be available for Firefox was unbelievable. This meant that someone out there, wanted to get their hands on Better GitHub, something that I created. That feeling is just something else. I am sure a lot of open source developers can relate to this. &lt;/p&gt;

&lt;h1&gt;
  
  
  First thing first
&lt;/h1&gt;

&lt;p&gt;So I decided that I &lt;strong&gt;had&lt;/strong&gt; to get this extension to support Firefox. That was my initial goal, just support Firefox. So I went to my &lt;a href="https://www.google.com/" rel="noopener noreferrer"&gt;friend&lt;/a&gt; and asked for his help on how I can port my Chrome extension to Firefox. &lt;/p&gt;

&lt;p&gt;The answer was not something I was expecting. I was expecting that I will have to refactor most of the logic to &lt;code&gt;core&lt;/code&gt; and then have specific implementation for Chrome API and Firefox API. But instead, I learned that Firefox Addons(extension) support almost most of the API provided by &lt;code&gt;chrome&lt;/code&gt; API. That meant, I didn't have to change almost anything to the logic implementation of the extension&lt;a href="https://github.com/ceoshikhar/better-github/blob/main/better-github.js" rel="noopener noreferrer"&gt;(better-github.js)&lt;/a&gt;. Except a very minor issue which was just a one line change.&lt;/p&gt;

&lt;p&gt;The major thing needed to be done to "port" the extension from Chrome to Firefox was the change to be done to &lt;code&gt;manifest.json&lt;/code&gt;. For Firefox, an addition property was needed: "applications" to provide little extra details for the addon like the addon ID.&lt;/p&gt;

&lt;h1&gt;
  
  
  The manifest.json dilemma
&lt;/h1&gt;

&lt;p&gt;As mentioned above, Firefox manifest requires an extra property. That means, I have to keep two separate &lt;code&gt;manifest.json&lt;/code&gt; but with the same name. Hmmm, weird. Also, to publish the addon to Firefox or even test it locally, I had to package the extension as a &lt;code&gt;.zip&lt;/code&gt; and then load it, with off course the right &lt;code&gt;manifest.json&lt;/code&gt;. Doing it manually was very painful. Edit the &lt;code&gt;manifest.json&lt;/code&gt;, select all the required files( including assets ) and  package it to &lt;code&gt;zip&lt;/code&gt; every time I made a small change to the code. &lt;/p&gt;

&lt;p&gt;So as a developer, I wanted to automate this shit, and I did. I wrote &lt;a href="https://github.com/ceoshikhar/better-github/blob/main/script.js" rel="noopener noreferrer"&gt;script.js&lt;/a&gt; to automate the process to generate the correct &lt;code&gt;manifest.json&lt;/code&gt; for Chrome / Firefox and package the extension files to &lt;code&gt;better-github.zip&lt;/code&gt; with the correct manifest.&lt;/p&gt;

&lt;p&gt;Now all I have to do is run &lt;code&gt;yarn firefox:package&lt;/code&gt; and it generate the manifest for it, package everything to zip, delete the manifest as it's not required anymore. The stuff that took me 30s to do now takes less than 0.5s. Although it took me just over 3 hours to write the script. But hey, it's always worth it to automate shit, right? &lt;em&gt;wink wink&lt;/em&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%2Fi0pyud628hqswia56ovy.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%2Fi0pyud628hqswia56ovy.png" alt="image" width="471" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>javascript</category>
      <category>github</category>
    </item>
    <item>
      <title>Enhance your code reading experience on GitHub</title>
      <dc:creator>Shikhar</dc:creator>
      <pubDate>Mon, 29 Mar 2021 08:29:38 +0000</pubDate>
      <link>https://dev.to/ceoshikhar/enhance-your-code-reading-experience-on-github-with-this-chrome-extension-24ei</link>
      <guid>https://dev.to/ceoshikhar/enhance-your-code-reading-experience-on-github-with-this-chrome-extension-24ei</guid>
      <description>&lt;p&gt;TL;DR - I created a chrome extension to modify font styles of code text on GitHub to make my life a bit easier. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ceoshikhar/better-github" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;, a star is really appreciated 😀&lt;/p&gt;

&lt;h1&gt;
  
  
  Demo
&lt;/h1&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%2Fgithub.com%2Fceoshikhar%2Fbetter-github%2Fblob%2Fmain%2Fassets%2Fdemo.gif%3Fraw%3Dtrue" 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%2Fgithub.com%2Fceoshikhar%2Fbetter-github%2Fblob%2Fmain%2Fassets%2Fdemo.gif%3Fraw%3Dtrue" width="1024" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Motivation
&lt;/h1&gt;

&lt;p&gt;As almost everyone out there, I love to spend a good amount of time on GitHub to manage my personal and professional projects but I also love to just explore other people's projects as well. It's fun to learn how other great developers do their magic.&lt;/p&gt;

&lt;p&gt;So I end up spending a lot of my time reading code on GitHub, SPOILER ALERT! But I had one very specific problem which was kind of annoying me. The font styles of code text on GitHub. I had two problems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The font size was very small. I had to pay real close attention to read the code. I know I can just increase the zoom but it makes rest of the app out of proportion. I just wanted to increase the &lt;code&gt;font-size&lt;/code&gt; of the code text.&lt;/li&gt;
&lt;li&gt;Kind of very specific to me but as a lover of aesthetic, I wanted my GitHub font of code text to match my code editor font. &lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  How I did it
&lt;/h1&gt;

&lt;p&gt;As everyone, first I started to look on the internet to find something that would solve my above problems. After a few hit and trials with the existing solutions, nothing really actually solved it. &lt;/p&gt;

&lt;p&gt;So I decided, fuck it, let me do it myself. I had no idea how chrome extensions are built, the chrome API, etc. All I knew was, I had a problem, I knew what the solution I wanted and luckily I have been programming in JS/TS for the past few months and this is the language needed to make the extension. &lt;/p&gt;

&lt;p&gt;Initially the extension was very specific to my need. It had no UI interface. Although, it did solve my problem. It would change the &lt;code&gt;font-family&lt;/code&gt; and &lt;code&gt;font-size&lt;/code&gt; of the code text elements on the DOM to whatever font name and font size I provided. It was hard coded, so If I needed to alter it, I had to change the source code, reload the extension, refresh the GitHub page for it to update. &lt;/p&gt;

&lt;p&gt;It was uhh..., okay for me, but then I decided to take it to a next level. A UI interface( browser action popup ) which opens when you click on the extension icon. It let's you enter font name and font size and apply them instantly to all the GitHub tabs open. Again, I did this to save my time when I wanted to make changes to my custom font styles. &lt;/p&gt;

&lt;p&gt;So finally, today, I am releasing this extension to public as I think its decent enough. Check out the &lt;a href="https://github.com/ceoshikhar/better-github" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt; on how you can install the extension, currently it's not published on the chrome store.&lt;/p&gt;

</description>
      <category>github</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
