<?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: Sébastien Beaury</title>
    <description>The latest articles on Forem by Sébastien Beaury (@sbeaury).</description>
    <link>https://forem.com/sbeaury</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%2F330458%2F68d6f5e8-e192-468c-8d42-6821f468c734.png</url>
      <title>Forem: Sébastien Beaury</title>
      <link>https://forem.com/sbeaury</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sbeaury"/>
    <language>en</language>
    <item>
      <title>Introducing Dev Chapters. Find the best web dev ebooks out there 📚</title>
      <dc:creator>Sébastien Beaury</dc:creator>
      <pubDate>Thu, 04 Jun 2020 23:54:42 +0000</pubDate>
      <link>https://forem.com/sbeaury/introducing-dev-chapters-find-the-best-web-dev-ebooks-out-there-4clc</link>
      <guid>https://forem.com/sbeaury/introducing-dev-chapters-find-the-best-web-dev-ebooks-out-there-4clc</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cJnSaJcl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/c3sx1xprdda2dnjrp85c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cJnSaJcl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/c3sx1xprdda2dnjrp85c.png" alt="post body picture" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this website?
&lt;/h2&gt;

&lt;p&gt;Some learn best through online video tutorials, others through reading an ebook. I do prefer the second method. As an example, &lt;a href="https://www.roadtoreact.com/"&gt;the Road to React&lt;/a&gt; is a great resource for every beginner looking for learning from the bottom up. &lt;/p&gt;

&lt;p&gt;I also wanted to give Vue a try so I went ahead and decided to design a single web page displaying the best ebooks available for web developers. The website is built with Vue CLI and Bulma.&lt;/p&gt;

&lt;p&gt;This is also to give back to the community and allow beginners to create their first pull request so everyone can can contribute to the project. The repo is tagged &lt;a href="https://www.firsttimersonly.com/"&gt;first-timers-only friendly&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.firsttimersonly.com/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7OecFdZt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://img.shields.io/badge/first--timers--only-friendly-blue.svg%3Fstyle%3Dflat-square" alt="first-timers-only" width="150" height="20"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Check it out
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev-chapters.netlify.app/"&gt;Website&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/sbeaury"&gt;
        sbeaury
      &lt;/a&gt; / &lt;a href="https://github.com/sbeaury/dev-chapters"&gt;
        dev-chapters
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Find the best web dev ebooks out there 📚
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
  &lt;br&gt;
  &lt;a href="https://github.com/sbeaury/dev-chapters"&gt;
  &lt;br&gt;
 Dev Chapters
  &lt;br&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;div&gt;
&lt;p&gt;&lt;a href="https://app.netlify.com/sites/dev-chapters/deploys" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/1c216605645104ca6e1421ed4f44f9b3de108cf451c3d80f3faa1f4d1c1ef9f0/68747470733a2f2f6170692e6e65746c6966792e636f6d2f6170692f76312f6261646765732f39316463643466652d323466342d343035312d623161322d3565323739356165366163612f6465706c6f792d737461747573" alt="Netlify Status"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.firsttimersonly.com/" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/4f1aa93f83483fac54f8448ff160b506a76ea60d7cb4456d1d9efdc1d81889bb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f66697273742d2d74696d6572732d2d6f6e6c792d667269656e646c792d626c75652e7376673f7374796c653d666c61742d737175617265" alt="first-timers-only"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h4&gt;
 📚 Find the best web dev ebooks out there. 📚
  &lt;br&gt;&lt;br&gt;
  Made with Vue and Bulma
&lt;/h4&gt;
&lt;br&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/sbeaury/dev-chapters/demo-images/demo-screenshot-1.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4h7xXN0m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/sbeaury/dev-chapters/demo-images/demo-screenshot-1.png" alt="Demo preview"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;h2&gt;
Prerequisite&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;It is required to have Node.js with version 8.5.0 or higher. To see what version of Node.js is installed on your machine type the following command in the terminal:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;node -v
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;If you do not have installed Node.js in your machine then go to &lt;a href="https://nodejs.org/en/download/" rel="nofollow"&gt;this link&lt;/a&gt; in order to install node.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
How to contribute (and add more books to the shelf)&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Fork it (&lt;a href="https://github.com/sbeaury/dev-chapters/fork"&gt;https://github.com/sbeaury/dev-chapters/fork&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create your feature branch (&lt;code&gt;git checkout -b feature/fooBar&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edit the book database in &lt;code&gt;data/books.yaml&lt;/code&gt; by adding an url, an image url, an alt attribute and tag (technology or stack).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Commit your changes (&lt;code&gt;git commit -am 'Add some fooBar'&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push to the branch (&lt;code&gt;git push origin feature/fooBar&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a new Pull Request&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;br&gt;
&lt;h2&gt;
Credits&lt;/h2&gt;
&lt;p&gt;This project uses several open source packages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://cli.vuejs.org/" rel="nofollow"&gt;Vue&lt;/a&gt;…&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/sbeaury/dev-chapters"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Want to contribute (and add more books to the shelf)?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;If you do not have installed Node.js in your machine then go to &lt;a href="https://nodejs.org/en/download/"&gt;this link&lt;/a&gt; in order to install node.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fork it (&lt;a href="https://github.com/sbeaury/dev-chapters/fork"&gt;https://github.com/sbeaury/dev-chapters/fork&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create your feature branch (&lt;code&gt;git checkout -b feature/fooBar&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Edit the book database in &lt;code&gt;data/books.yaml&lt;/code&gt; by adding an url, an image url, an alt attribute and a tag (technology or stack).&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# books.yaml&lt;/span&gt;

&lt;span class="c1"&gt;# others books sit here&lt;/span&gt;
&lt;span class="c1"&gt;# ...&lt;/span&gt;

&lt;span class="c1"&gt;# inserting new book&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;linkUrl&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://www.yourbook.com"&lt;/span&gt;
  &lt;span class="na"&gt;imgUrl&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://www.yourimageurl.com"&lt;/span&gt;
  &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;you&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;don't&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;know&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Javascript&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;image"&lt;/span&gt;
  &lt;span class="na"&gt;tag&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Javascript"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Commit your changes (&lt;code&gt;git commit -am 'Add some fooBar'&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Push to the branch (&lt;code&gt;git push origin feature/fooBar&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a new Pull Request and I will review it&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thanks for reading! The Dev community is awesome!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/sbeaury"&gt;Follow me&lt;/a&gt; if you like to follow my next adventures&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>beginners</category>
      <category>books</category>
      <category>contributorswanted</category>
    </item>
    <item>
      <title>How I built my first Chrome extension with React</title>
      <dc:creator>Sébastien Beaury</dc:creator>
      <pubDate>Wed, 01 Apr 2020 17:16:30 +0000</pubDate>
      <link>https://forem.com/sbeaury/how-i-built-my-first-chrome-extension-with-react-4f6b</link>
      <guid>https://forem.com/sbeaury/how-i-built-my-first-chrome-extension-with-react-4f6b</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sPcbLkKE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/p6q4ucu5p5wqdlvotmjy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sPcbLkKE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/p6q4ucu5p5wqdlvotmjy.png" alt="post body picture" width="384" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is my first post on Dev.to so please give me any feedback after reading this post! 🙏🙏&lt;/p&gt;

&lt;h2&gt;
  
  
  How I came up with the idea?
&lt;/h2&gt;

&lt;p&gt;The idea was to add another app to my portfolio and solve a daily life problem: user would be to save their whole YouTube watch history on one page and resume watching any paused video by clicking on a video thumbnail. &lt;/p&gt;

&lt;h2&gt;
  
  
  How I built this? 🧱
&lt;/h2&gt;

&lt;p&gt;Special thanks to &lt;a href="https://dev.to/satendra02"&gt;satendra02&lt;/a&gt; for this &lt;a href="https://dev.to/satendra02/reactjs-chrome-extension-boilerplate-447o"&gt;ReactJs Chrome Extension Boilerplate&lt;/a&gt; that help me getting started.&lt;/p&gt;

&lt;p&gt;Finally my &lt;code&gt;manifest.json&lt;/code&gt; and  &lt;code&gt;app.js&lt;/code&gt; files look like this:&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="c1"&gt;// manifest.json&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;manifest_version&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Youtube Resume&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;author&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Sebastien Beaury&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;version&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1.0.0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;description&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Resume your videos on Youtube.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;chrome_url_overrides&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;newtab&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;index.html&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="cm"&gt;/* triggered when opening a new tab */&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="c1"&gt;// set up all the chrome permissions &lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;permissions&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tabs&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*://www.youtube.com/*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;storage&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="c1"&gt;// define the custom action buttons&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;browser_action&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;default_icon&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;youtube-play.png&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;default_title&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Youtube Resume&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;content_security_policy&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;script-src 'self' https://www.youtube.com/iframe_api https://s.ytimg.com/yts/jsbin/www-widgetapi-vflEtXIPQ/www-widgetapi.js https://img.icons8.com/dusk/2x/youtube-play.png 'sha256-bYa5+qTPCwiUjcorwLU5xL8hkt2cfxlYzC1xEaFW6VA='; object-src 'self'&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="cm"&gt;/* declarative injection for content scripts, runs automatically on specified pages */&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;content_scripts&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="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;matches&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;all_urls&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;js&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/static/js/index.js&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="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// app.js&lt;/span&gt;
&lt;span class="cm"&gt;/* global chrome */&lt;/span&gt;  &lt;span class="cm"&gt;/*this gives us access to Chrome browser methods*/&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&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="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&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="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;App&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="p"&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;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Check the repo
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/sbeaury"&gt;
        sbeaury
      &lt;/a&gt; / &lt;a href="https://github.com/sbeaury/youtube-resume"&gt;
        youtube-resume
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Youtube Resume  Chrome Extension
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Youtube Resume Chrome Extension&lt;/h1&gt;
&lt;p&gt;Don't let your YouTube browsing history fade away. YouTube Resume Tab replace the default browser new tab screen with your previous YouTube videos paused. Just click on the video to resume watching.&lt;/p&gt;
&lt;p&gt;Built with React.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/sbeaury/youtube-resume./images/screenshot_1.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KXVT_10F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/sbeaury/youtube-resume./images/screenshot_1.png" alt="screenshot"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/sbeaury/youtube-resume./images/screenshot_2.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3OZ4P1OD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/sbeaury/youtube-resume./images/screenshot_2.png" alt="screenshot"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;h3&gt;
Install through Chrome Web Store&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/youtube-resume/fkpmbbdgedgcpolfhedngemgnenfokid" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GewJZps3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/tulios/json-viewer/master/tryitnow.png" alt="https://chrome.google.com/webstore/detail/youtube-resume/fkpmbbdgedgcpolfhedngemgnenfokid"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
Install through Developer Mode&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Make sure you have latest &lt;strong&gt;NodeJs&lt;/strong&gt; version installed&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Clone repo&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;git clone git@github.com:sbeaury/youtube-resume.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Go to &lt;code&gt;youtube-resume&lt;/code&gt; directory and run&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;yarn install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now build the extension using&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;yarn build
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You will see a &lt;code&gt;build&lt;/code&gt; folder generated inside the project directory named &lt;code&gt;youtube-resume&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
Adding React app extension to Chrome&lt;/h2&gt;
&lt;p&gt;In Chrome browser, go to chrome://extensions page and switch on developer mode. This enables the ability to locally install a Chrome extension.&lt;/p&gt;
&lt;p&gt;Now click on the &lt;code&gt;LOAD UNPACKED&lt;/code&gt; and browse to &lt;code&gt;[PROJECT_HOME]\build&lt;/code&gt;. This will install the React app as a Chrome extension.&lt;/p&gt;
&lt;p&gt;When opening a new tab, extension will be triggered.&lt;/p&gt;
&lt;h2&gt;
Feedback&lt;/h2&gt;
&lt;p&gt;Just…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/sbeaury/youtube-resume"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J_uD2Rdk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/sbeaury/youtube-resume/raw/master/images/screenshot_1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J_uD2Rdk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/sbeaury/youtube-resume/raw/master/images/screenshot_1.png" alt="Youtube Resume Screenshot 1" width="800" height="390"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mAqXe2GI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/sbeaury/youtube-resume/raw/master/images/screenshot_2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mAqXe2GI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/sbeaury/youtube-resume/raw/master/images/screenshot_2.png" alt="Youtube Resume Screenshot 2" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Get it installed through Chrome Web Store
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/youtube-resume/fkpmbbdgedgcpolfhedngemgnenfokid"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GewJZps3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/tulios/json-viewer/master/tryitnow.png" alt="https://chrome.google.com/webstore/detail/youtube-resume/fkpmbbdgedgcpolfhedngemgnenfokid" width="432" height="116"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Just play with it 🔧
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Build the app
&lt;/h3&gt;

&lt;p&gt;Clone repo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone git@github.com:sbeaury/youtube-resume.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Go to &lt;code&gt;youtube-resume&lt;/code&gt; directory and run&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Now build the extension using&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will see a &lt;code&gt;build&lt;/code&gt; folder generated inside the project directory named &lt;code&gt;youtube-resume&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding React app extension to Chrome
&lt;/h3&gt;

&lt;p&gt;In Chrome browser, go to chrome://extensions page and switch on developer mode. This enables the ability to locally install a Chrome extension.&lt;/p&gt;

&lt;p&gt;Now click on &lt;code&gt;Load unpacked&lt;/code&gt; and browse to &lt;code&gt;youtube-resume/build&lt;/code&gt;. This will install the React app as a Chrome extension.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SmYrkDrU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/z8b5hmmxozqi81d4hxwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SmYrkDrU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/z8b5hmmxozqi81d4hxwg.png" alt="Chrome extension page" width="800" height="61"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When opening a new tab, the extension will be triggered. For now, the extension doesn't allow to save the YouTube history by clicking on the toolbar action button.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give me your feedback 👏
&lt;/h2&gt;

&lt;p&gt;3 ways to help me improve (as a Junior Dev):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Write a comment about what you liked / disliked&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Like this post (only if you liked it)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/sbeaury"&gt;Follow me&lt;/a&gt; if you like to follow my next adventures&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>firstpost</category>
      <category>beginners</category>
      <category>react</category>
      <category>chrome</category>
    </item>
  </channel>
</rss>
