<?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: Jesus Ramirez</title>
    <description>The latest articles on DEV Community by Jesus Ramirez (@jesusrmz19).</description>
    <link>https://dev.to/jesusrmz19</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%2F457863%2F326684cf-ec8d-4655-a389-97e6d4a62654.jpg</url>
      <title>DEV Community: Jesus Ramirez</title>
      <link>https://dev.to/jesusrmz19</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jesusrmz19"/>
    <language>en</language>
    <item>
      <title>From development to production with Sanity, Next JS, and Netlify</title>
      <dc:creator>Jesus Ramirez</dc:creator>
      <pubDate>Wed, 06 Oct 2021 20:27:48 +0000</pubDate>
      <link>https://dev.to/jesusrmz19/from-development-to-production-with-sanity-next-js-and-netlify-1g9i</link>
      <guid>https://dev.to/jesusrmz19/from-development-to-production-with-sanity-next-js-and-netlify-1g9i</guid>
      <description>&lt;p&gt;So far I've implemented two projects using the self-hosted Sanity Studio for content management, Next JS hosted in Netlify for the frontend portion and I can say I've learned a few things on how to make them work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting Point and Netlify
&lt;/h2&gt;

&lt;p&gt;I'm going to assume that you have used them all, Sanity, Next, and Netlify. So you probably already know that Netlify deploys Next without issue by building and exporting everything before deployment.&lt;/p&gt;

&lt;p&gt;The easiest way to use Netlify with your application is to use Continuous Deployment, which will connect to your favorite Git provider so when you push to it, your page will deploy and update automatically. You can also add a file called netlify.toml, that you can add to the root of your folder to indicate Netlify during deployment the commands you need to run your Next.js application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[build]
command = "npm run build &amp;amp;&amp;amp; npm run export"
publish = "out"

[[plugins]]
package = "netlify-plugin-cache-nextjs"

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

&lt;/div&gt;


&lt;p&gt;The problem with that is that in order to see a change in the project you would need to actually make a push so that Netlify redeploys the whole site every time and that's not what we want, we want the page to receive updates and create new content without deploying the whole site.&lt;/p&gt;

&lt;p&gt;For that, we can start by changing our netlify.toml file to only build the app but not export it. The Next export command is not intended for scenarios like the one we want, where we could update data after deployment so we have to remove it.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[build]
command = "npm run build"

[[plugins]]
package = "netlify-plugin-cache-nextjs"

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

&lt;/div&gt;

&lt;h2&gt;
  
  
  Data Fetching, and Incremental Static Regeneration
&lt;/h2&gt;

&lt;p&gt;If you have used Next.js before, you will be familiar with the two Next's unique functions to fetch data while generating your site statically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;getStaticProps&lt;/li&gt;
&lt;li&gt;getStaticPaths&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both of these functions work perfectly when fetching data at build time, as in our case with Netlify while deployment the props and paths help you generate the pages so that everything seems faster on the client-side.&lt;/p&gt;

&lt;p&gt;The real problem is that in our case we have a content manager, so our goal is to update the website after it was deployed. If we didn't change anything in our files and kept the props, paths, and Netlify configuration as it was, this wouldn't be possible without pushing again via Git and rebuild the entire website from scratch.&lt;/p&gt;

&lt;p&gt;To solve this, Next.js has something called Incremental Static Regeneration, which allows you to create or update the static pages after you've built the site. You can enable ISR on a per-page basis, making everything even more efficient by retaining the benefits of static generation while adding new content.&lt;/p&gt;
&lt;h3&gt;
  
  
  getStaticProps
&lt;/h3&gt;

&lt;p&gt;Let's see the code below for a better understanding. You have your basic getStaticProps function that will run a function called getAllBlogs and await the response from the Sanity Client, after returning the information will go to props as usual, but now we have an extra line called revalidate. This property will enable ISR and indicate Next.js that it needs to attempt to re-generate the page every n amount of seconds, in our case, every 5 seconds.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getStaticProps&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="nx"&gt;allBlogPosts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;getAllBlogs&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="na"&gt;props&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;allBlogPosts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;revalidate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&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;p&gt;The trick is, that if the page was pre-rendered at build time, like in our case, Next.js will initially show the cached page. After the 5-second window, all new requests will trigger the regeneration in the background and wait until it's finished to invalidate the cache and show the updated page. In case the new regeneration fails, Next is smart enough to show the old page instead of showing an error.&lt;/p&gt;
&lt;h3&gt;
  
  
  getStaticPaths
&lt;/h3&gt;

&lt;p&gt;But what about creating new paths? For that, we can update the fallback key from false to blocking. Initially false indicated that any paths that were not returned by the function will result in a 404 page but with blocking, the new paths not returned by the function will wait for the HTML to be generated and then cached it in any future requests.&lt;/p&gt;

&lt;p&gt;Now our getStaticPaths functions look like this:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getStaticPaths&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="nx"&gt;allId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sanityClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s2"&gt;`*[_type == "post"]{
            title,
            slug,
        }`&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;paths&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;allId&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;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="na"&gt;params&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&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;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;// This will server-render pages on-demand &lt;/span&gt;
    &lt;span class="c1"&gt;// If the path doesn't exists&lt;/span&gt;
    &lt;span class="na"&gt;fallback&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;blocking&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Conclusions
&lt;/h2&gt;

&lt;p&gt;The combo of Next.js, Sanity, and Netlify is extremely powerful for freelance creators like me. Their free tier is a great hook for new and upcoming clients, as they normally don't want to invest a lot of money in server space that they won't need or use. So I truly appreciate how easy and simple the interaction between these technologies is.&lt;/p&gt;

&lt;p&gt;If you want to see what I showed here implemented, you can visit the repo of my personal website &lt;a href="https://github.com/jesusrmz19/jesusrmz" rel="noopener noreferrer"&gt;here&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://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jesusrmz19" rel="noopener noreferrer"&gt;
        jesusrmz19
      &lt;/a&gt; / &lt;a href="https://github.com/jesusrmz19/jesusrmz" rel="noopener noreferrer"&gt;
        jesusrmz
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Personal portfolio build with Next JS and Sanity CMS
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;jesusrmz website&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;This is a repo for my updated 2021 personal website.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Update&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;I'm learning how to integrate Sanity CMS for the content management of the project&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Why a new one?&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;I'm making the website a little bit more dynamic this time. It will be made with NextJS and it will host all customer projects, some side projects and experiments, as well as my blog. For which, I will implement Sanity CMS in order to create and publicate new posts&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Links&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;You can see how the project advances in this &lt;a href="https://goofy-leakey-a1eb0b.netlify.app/" rel="nofollow noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jesusrmz19/jesusrmz" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>netlify</category>
      <category>github</category>
    </item>
    <item>
      <title>Parcel Template Project</title>
      <dc:creator>Jesus Ramirez</dc:creator>
      <pubDate>Tue, 31 Aug 2021 22:36:03 +0000</pubDate>
      <link>https://dev.to/jesusrmz19/parcel-template-project-3a67</link>
      <guid>https://dev.to/jesusrmz19/parcel-template-project-3a67</guid>
      <description>&lt;p&gt;By now, I have initialized more than 10 different projects with Parcel, some with just regular CSS, some with SCSS included but all using the same file and folder structure so I guess is about time I create a start up template that I can clone from Github to my local machine and just get everything up and running.&lt;/p&gt;

&lt;p&gt;Parcel, as you may know by now, maybe, is a simple web application bundler that doesn't require a config file. The tool bundles all individual files as modules into one big-ass file that will be executed by the browser. Parcel works with a lot of different file types: HTML, CSS, SCSS, LESS, Stylus, JavaScript, TypeScript, etc. but I've only used it with either HTML + CSS + JS or HTML + SCSS + JS, and I love it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Files &amp;amp; Folder Structure
&lt;/h2&gt;

&lt;p&gt;I'm sure that the way I structure my files and folders is nothing extrordinary as I'm almost 100% sure that this is how EVERYBODY structures their own projects. Basically you have one root folder with the main index.html file and two subfolders: dist &amp;amp; src.&lt;/p&gt;

&lt;p&gt;The distribution or dist folder is where the project that the browser see lives, this is the folder that will have all your production ready files, the map.css file, the bundle js file, the optimized images, etc. It is important to tell that even if you don't create this folder, Parcel will create this for you during the development process or production build.&lt;/p&gt;

&lt;p&gt;The source or src folder is where all the diferent modules and files live, Parcel will look into the folders within the src folder and bundle the files.&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%2Fmwvv845hjn3nplzsbp7f.jpg" 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%2Fmwvv845hjn3nplzsbp7f.jpg" alt="Folder Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NPM Init
&lt;/h2&gt;

&lt;p&gt;Now that we have the structure, lets install Parcel, for that we are going to use the always reliable and always ready node package manager (NPM) and it's basic npm init command. I know there are different terminals but I'm a simple guy that uses VS CODE, which means I always use the VSCODE terminal. &lt;/p&gt;

&lt;p&gt;So go ahead an open your prefered terminal, just make sure that you're inside the root folder of your project and then type the command below:&lt;/p&gt;

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

npm init


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

&lt;/div&gt;
&lt;p&gt;After typing that you will see a lot of basic questions like name, description, version, etc. you can fill those now or later, there's no difference. I always hit the return key until they're all done and then modify the information in the package.json file&lt;/p&gt;

&lt;p&gt;Now, you will see a new file in your root folder: package.json, and it should look something like this:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"parcelproject_template"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"main"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"index.js"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"test"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"echo &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Error: no test specified&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; &amp;amp;&amp;amp; exit 1"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"license"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ISC"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;


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

&lt;/div&gt;
&lt;h2&gt;
  
  
  Install Parcel
&lt;/h2&gt;

&lt;p&gt;Now we install Parcel by running the command below in your terminal:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm install parcel --save-dev


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

&lt;/div&gt;
&lt;p&gt;We installed it as a dev dependency because we don't really need it for production, it's a tool that we will use to bundle and deploy the site but the code that actually does all this is not needed in the browser, as all this is done behind the curtain&lt;/p&gt;

&lt;p&gt;In the past, and by past I mean two or three months ago, there was something going on with Parcel 2.0 that it was causing me to delete the cache folder and running the program over and over again to see the changes I've made to either HTML or CSS, but the last time I used it, it worked fine.&lt;/p&gt;

&lt;p&gt;So just in case this happens to you I'm goign to tell you how I fixed it. To start I had to uninstall Parcel 2.0 by putting the command below in the terminal&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm uninstall parcel


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

&lt;/div&gt;
&lt;p&gt;Then, I just installed a known stable version of Parcel by putting the below command&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm install parcel@1.12.3 --save-dev


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

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;EDITOR'S NOTE:&lt;/strong&gt; I wrote this post in a three day period and on the third day something happened to Parcel 2.0 that stopped working so I had to uninstalled and installed the 1.12.3 version and it's working perfectly.&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;
Not completely sure this is the best approach and maybe there's something wrong on my side, but this seems to fix my problem everytime. Ok, now that we have Parcel installed, our package.json file should look something like this:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"parcelproject_template"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"main"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"index.js"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"test"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"echo &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Error: no test specified&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; &amp;amp;&amp;amp; exit 1"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"license"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ISC"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"devDependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"parcel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.0.0-rc.0"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;


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

&lt;/div&gt;
&lt;p&gt;What we will do next is to write the scripts that will launch Parcel during development and the build command that will bundle and optimize everything for production. In the block below you will be able see the changes that we made to our package.json.&lt;/p&gt;

&lt;p&gt;We removed the main direction in order to direct Parcel with the command build where to actually create the bundle files. And then we typed in two extra scripts, start, which initialize Parcel and deploys a local host for you to check your site, and build, for production, which would create or replace the files inside the dist folder with new ones all bundle up.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"parcelproject_template"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"start"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"parcel index.html"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"build"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"parcel build index.html --dist-dir ./dist"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"license"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ISC"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"devDependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"parcel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.0.0-rc.0"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;


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

&lt;/div&gt;
&lt;h2&gt;
  
  
  How to check if it worked?
&lt;/h2&gt;

&lt;p&gt;At this moment I have a bunch of empty folders and an empty index.html file but in order to test that Parcel is actually working and doing what it needs to do we create basic HTML, CSS, JS files.&lt;/p&gt;

&lt;p&gt;Go ahead and add the below code to your files:&lt;/p&gt;

&lt;p&gt;Inside index.html you can see that I already put the reference to the main css and the script js files&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;

&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;"X-UA-Compatible"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"IE=edge"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/src/css/main.css"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;defer&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"src/js/script.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Placeholder&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello World&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;


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

&lt;/div&gt;
&lt;p&gt;Create the main.css file inside the css folder that's inside the src folder. Because the intention behind this is create a template you can add whatever CSS you like, I always put the box-sizing at the top and create a main.css file that eventually will have all the imports files&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="o"&gt;*,&lt;/span&gt;
&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nd"&gt;::after&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;box-sizing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;border-box&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100vh&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#fff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;uppercase&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;'Gill Sans'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;'Gill Sans MT'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Calibri&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;'Trebuchet MS'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;letter-spacing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&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;And last but not least, the simple and always efficient console log test&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&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;1, 2, 3... Testing Parcel 📦&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;Now if you go ahead an open up the terminal and put the command&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;

&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;run&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt;


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

&lt;/div&gt;
&lt;p&gt;You should see something like the image below, and the message you put in your script.js file in the browser's dev tools&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%2Frar3hbt9o9p2ykgjrkp1.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%2Frar3hbt9o9p2ykgjrkp1.png" alt="Hello World in white with Black Background"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  GitHub Repo and Use
&lt;/h2&gt;

&lt;p&gt;Now that we have the folder, we can create a repo, initiate git in our root folder and commit all the files we have, just remember to create a .gitignore file to include things like the node_modules folder or the Parcel cache folder.&lt;/p&gt;

&lt;p&gt;Congratz! Now you have an easy template that you can clone and push to a new repo! If you want to see how to clone and change the URL, go and read the instructiosn in the README file of my &lt;a href="https://github.com/jesusrmz19/Parcel_Template" rel="noopener noreferrer"&gt;Parcel_Template&lt;/a&gt; repo.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&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%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jesusrmz19" rel="noopener noreferrer"&gt;
        jesusrmz19
      &lt;/a&gt; / &lt;a href="https://github.com/jesusrmz19/Parcel_Template" rel="noopener noreferrer"&gt;
        Parcel_Template
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Template with ParcelJS as bundler and vanilla CSS 
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Project Template&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;This is an empty repo that is ready to be cloned anywhere and start coding with Parcel as bundler.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of contents&lt;/h2&gt;
&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/jesusrmz19/Parcel_Template#instructions" rel="noopener noreferrer"&gt;Instructions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jesusrmz19/Parcel_Template#author" rel="noopener noreferrer"&gt;Author&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Instructions&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;Want to use it? Just clone it! Follow these simple steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new folder in your computer&lt;/li&gt;
&lt;li&gt;In the command line, make sure you're in that folder&lt;/li&gt;
&lt;li&gt;Type the following to clone this repo:&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;git clone https://github.com/jesusrmz19/Parcel_Template.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Now your new folder will download a folder called Parcel_Template&lt;/li&gt;
&lt;li&gt;Change to the Parcel_Template folder:&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;cd Parcel_Template
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ol start="6"&gt;
&lt;li&gt;Make a new repo, in this case, the new one is called example&lt;/li&gt;
&lt;li&gt;Type the following in the command line&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;git remote set-url origin https://github.com/user/example.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;That's it! The command above will change the origin of your repo and now the next change you make will commit all the files to the new repo you just created.&lt;/p&gt;
&lt;p&gt;NOTE: Remember to run npm install in your machine after changing the…&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/jesusrmz19/Parcel_Template" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>codenewbie</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Parcel is better than Gulp, for me at least</title>
      <dc:creator>Jesus Ramirez</dc:creator>
      <pubDate>Wed, 02 Jun 2021 16:35:58 +0000</pubDate>
      <link>https://dev.to/jesusrmz19/parcel-is-better-than-gulp-for-me-at-least-3kli</link>
      <guid>https://dev.to/jesusrmz19/parcel-is-better-than-gulp-for-me-at-least-3kli</guid>
      <description>&lt;h3&gt;
  
  
  But first, what is Parcel?
&lt;/h3&gt;

&lt;p&gt;Parcel is a simple no-configuration web application bundler, it's a tool used to bundle individual modules into a single file that can be executed by the browser. Parcel supports different languages and file types like HTML, CSS, and JavaScript.&lt;/p&gt;

&lt;p&gt;Parcel sells itself as a "blazing fast, zero-configuration" bundler, and it works, because as you may know, their main competitor is not very easy to get into, as the learning curve for Webpack can be steep.&lt;/p&gt;

&lt;p&gt;And for somebody like myself that has to handle a 9 to 5 while trying to learn new things in the always-changing web development world, a simple, low-configuration bundler it's just what I needed for my client and personal projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  What about Gulp?
&lt;/h3&gt;

&lt;p&gt;Before Parcel I used Gulp, and even though Gulp and Parcel are not strictly under the same category because Gulp is a task manager and Parcel is a bundler, I used Gulp in the same way that I use Parcel.&lt;/p&gt;

&lt;p&gt;I can't remember how or when I was introduced to Gulp but at first, I thought it was the best thing, you could use browser-sync, scss, and even optimize your images for production. You only had to create a config file in the root folder, but once you got the hang of it, it was no issue, besides, you can always just copy-paste things if you have the same folder structure.&lt;/p&gt;

&lt;p&gt;Here's what my file looked like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const browserSync = require('browser-sync').create();

function watch() {
  browserSync.init({
    server: {
      baseDir: 'src',
    },
  });
  gulp.watch('src/assets/css/**/*.css').on('change', browserSync.reload);
  gulp.watch('src/*html').on('change', browserSync.reload);
  gulp.watch('src/assets/js/**/*.js').on('change', browserSync.reload);
}

exports.watch = watch;

const gulp = require('gulp');
const imagemin = require('gulp-imagemin');
const concat = require('gulp-concat');
const terser = require('gulp-terser');
const sourcemaps = require('gulp-sourcemaps');
const postcss = require('gulp-postcss');
const cssnano = require('cssnano');
const { src, parallel, dest } = require('gulp');

const jsPath = 'src/assets/js/**/*.js';
const cssPath = 'src/assets/css/**/*.css';

function buildHTML() {
  return src('src/*.html').pipe(gulp.dest('dist'));
}

function exportDocs() {
  return src('src/assets/docs/*').pipe(gulp.dest('dist/assets/docs'));
}

function jsTask() {
  return src(jsPath)
    .pipe(sourcemaps.init())
    .pipe(concat('main.js'))
    .pipe(terser())
    .pipe(sourcemaps.write('.'))
    .pipe(dest('dist/assets/js'));
}

function cssTask() {
  return src(cssPath)
    .pipe(sourcemaps.init())
    .pipe(concat('main.css'))
    .pipe(postcss([cssnano()]))
    .pipe(sourcemaps.write('.'))
    .pipe(dest('dist/assets/css'));
}

function fontsTask() {
  return src('src/assets/fonts/**/*').pipe(gulp.dest('dist/assets/fonts'));
}

function imgTask() {
  return src('src/images/*').pipe(imagemin()).pipe(gulp.dest('dist/images'));
}

exports.exportDocs = exportDocs;
exports.cssTask = cssTask;
exports.jsTask = jsTask;
exports.fontsTask = fontsTask;
exports.imgTask = imgTask;

exports.build = parallel(
  buildHTML,
  cssTask,
  jsTask,
  exportDocs,
  fontsTask,
  imgTask
);

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  If it worked, why change?
&lt;/h3&gt;

&lt;p&gt;I didn't look for an alternative, I was introduced to it during a JavaScript course and it was so easy to implement and use that just went for it. Only one npm install, write a couple of scripts and that was it, no more configuration.&lt;/p&gt;

&lt;p&gt;It did the same thing I was doing with Gulp, except for the images "optimization", and I put that in quotes because I realized after a couple of uses that Gulp was not optimizing anything, I know it's highly likely that I wasn't doing something right but who has time to find out if I can always optimize all my images with a CDN or manually with a converter. &lt;/p&gt;

&lt;h3&gt;
  
  
  So how do you use Parcel?
&lt;/h3&gt;

&lt;p&gt;I normally install Parcel in all my local projects. After the npm init and getting my package.json file you go to the CLI and write:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install parcel --save-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The only thing that remains after this is creating your scripts to run and build your project. So go ahead and add the scripts below to your package.json:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
    "dev": "parcel index.html",
    "build": "parcel build index.html --dist-dir ./dist"
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now Parcel should be up and running, you can even add SCSS to it if you want to, I do it all the time as I prefer the SCSS approach to projects but hey, it's up to you at the end.&lt;/p&gt;

&lt;p&gt;In the end, if you already use Gulp or Parcel, that's great too. I would like to know how are you using them, what kind of tasks are you delegating Gulp? could be fun to know, as I only did simple things but I'm sure that's just the surface of the tool.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>productivity</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Deploy your Next JS app to Netlify</title>
      <dc:creator>Jesus Ramirez</dc:creator>
      <pubDate>Fri, 14 May 2021 18:37:19 +0000</pubDate>
      <link>https://dev.to/jesusrmz19/deploy-your-next-js-app-to-netlify-4iap</link>
      <guid>https://dev.to/jesusrmz19/deploy-your-next-js-app-to-netlify-4iap</guid>
      <description>&lt;p&gt;As you may know, Netlify has something called continuous deployment, which lets you connect a Git repository to a Netlify site so when you make any changes in the repo your site gets updated automatically.&lt;/p&gt;

&lt;p&gt;There are two ways to connect your git repo to Netlify: using the command line, or using the app UI. In this quick tutorial, I'm going to use the UI to show you how to deploy a Next JS repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get into Netlify
&lt;/h2&gt;

&lt;p&gt;First, you have to visit &lt;a href="https://app.netlify.com/start" rel="noopener noreferrer"&gt;https://app.netlify.com/start&lt;/a&gt;, after you are logged in you will see something like this:&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%2F54iluok1lgpvixsiqzuz.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%2F54iluok1lgpvixsiqzuz.png" alt="deploy-1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Select your Git provider and repo
&lt;/h2&gt;

&lt;p&gt;Then after selecting your git provider, and getting the proper authorization, you will be able to select the repo you want. In my case, I had one called "personalblog".&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%2Fd3f2yd7y76cdv0y8ci6t.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%2Fd3f2yd7y76cdv0y8ci6t.png" alt="deploy-2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Put in your build commands
&lt;/h2&gt;

&lt;p&gt;In the next page you could select the team, branch or even change the build command if necessary. But in my case, there's was no need, as the npm run build was my default build command and I left the rest as they were.&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%2Fxfzt1grfsb8he7xara79.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%2Fxfzt1grfsb8he7xara79.png" alt="deploy-3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Update your domain!
&lt;/h2&gt;

&lt;p&gt;And that's it! By default, Netlify will create a random domain for you to access your site but you can always change it in the Site Settings once the deployment is finished. You could also add your own domain to the site you just deployed. For example, I already had my personal site hosted on Netlify, so I only had to add a subdomain from it and Netlify made the verification for it.&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%2Fhxffoy3orjc2jtho1j9c.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%2Fhxffoy3orjc2jtho1j9c.png" alt="deploy-4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to see the final result, go visit my &lt;a href="https://blog.jesusrmz.com/" rel="noopener noreferrer"&gt;Blog!.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>netlify</category>
      <category>nextjs</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How do you guys do it?</title>
      <dc:creator>Jesus Ramirez</dc:creator>
      <pubDate>Mon, 01 Mar 2021 18:27:15 +0000</pubDate>
      <link>https://dev.to/jesusrmz19/how-do-you-guys-do-it-1j4d</link>
      <guid>https://dev.to/jesusrmz19/how-do-you-guys-do-it-1j4d</guid>
      <description>&lt;p&gt;How do you guys do it?&lt;/p&gt;

&lt;p&gt;How do you don’t compare yourself with others?&lt;/p&gt;

&lt;p&gt;How do you open Twitter every day and not feel overwhelmed with the amount of success?&lt;/p&gt;

&lt;p&gt;How do you see everybody talking around, making connections, and don’t feel left out?&lt;/p&gt;

&lt;p&gt;How do you see all these nice desktop setups and don’t feel the shame of yours? &lt;/p&gt;

&lt;p&gt;How do you overcome this idea in your head that says you don’t know shit? &lt;/p&gt;

&lt;p&gt;How do you master all these different languages and technologies in your spare time?&lt;/p&gt;

&lt;p&gt;How do you get from nothing to a job offer within a year and with a 9-to-5? &lt;/p&gt;

&lt;p&gt;How do you release all these incredible websites and apps every week? &lt;/p&gt;

&lt;p&gt;How do you come up with innovative ideas? &lt;/p&gt;

&lt;p&gt;How do you get over the typical “Unfortunately, we will not be moving forward with your application”?&lt;/p&gt;

&lt;p&gt;How do you jump over the first barrier, when you are self-taught? &lt;/p&gt;

&lt;p&gt;How do you know when you know enough? &lt;/p&gt;

&lt;p&gt;How do you prove them wrong? &lt;/p&gt;

&lt;p&gt;How?&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>career</category>
      <category>motivation</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to use Netlify's contact forms?</title>
      <dc:creator>Jesus Ramirez</dc:creator>
      <pubDate>Tue, 16 Feb 2021 17:46:38 +0000</pubDate>
      <link>https://dev.to/jesusrmz19/how-to-use-netlify-s-contact-forms-42g</link>
      <guid>https://dev.to/jesusrmz19/how-to-use-netlify-s-contact-forms-42g</guid>
      <description>&lt;p&gt;Ok, here me out and be patient this is my first post explaining something. &lt;/p&gt;

&lt;p&gt;My name is Jesus Ramirez and I'm a self-taught web developer based in Guadalajara, Mexico. You can find more information about me and my journey in &lt;a href="https://dev.to/jesusrmz19/who-am-i-e5o"&gt;this&lt;/a&gt; blog post. &lt;/p&gt;

&lt;p&gt;I discovered Netlify a while ago, thanks to Wes and Scott of &lt;a href="https://syntax.fm/"&gt;Syntax FM&lt;/a&gt; (great podcast, go check them out!). They have been sponsored by Netlify several times and they always talk about how easy is to use, host and deploy websites. So with my latest customer, I decided to go for it and take advantage of the free hosting because I knew it would be an automatic yes from the customer because of it. It was just a one-page website with classic about, services, and clients sections but in the contact portion, the customer wanted a form 🙄. So being new to Netlify I decided to investigate how would it work, hoping it would be easy, only to find out that they have the BEST SOLUTION EVER! Why? Because Netlify has a built-in form handling that is enabled by default, and in this post, I'm going to show you how to implement it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Form Creation
&lt;/h2&gt;

&lt;p&gt;First, we create a simple form with some HTML and CSS. &lt;/p&gt;

&lt;p&gt;You can see it live &lt;a href="https://netlifyformtest.netlify.app"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;form id="myForm" class="form" name="form"&amp;gt;
  &amp;lt;label&amp;gt;Name:&amp;lt;/label&amp;gt;
  &amp;lt;input type="text" id="name" name="name" placeholder="your name"&amp;gt;
  &amp;lt;label&amp;gt;Email:&amp;lt;/label&amp;gt;
  &amp;lt;input type="text" id="name" name="email" placeholder="your email"&amp;gt;
  &amp;lt;label&amp;gt;Message:&amp;lt;/label&amp;gt;
  &amp;lt;textarea type="text" name="message" placeholder="message"&amp;gt;&amp;lt;/textarea&amp;gt;
  &amp;lt;button id="submit" type="submit"&amp;gt;Submit&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Once you have the basic HTML and CSS, normally you would have to connect to a server, maybe use some PHP, an external plug-in, or even pay a third party for the service. But with Netlify, the only thing you need to do is add the &lt;code&gt;data-netlify: true&lt;/code&gt; attribute to the &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; tag. And that's it.&lt;/p&gt;

&lt;p&gt;You could even have more than one form on your page if you wanted to, as long as you have a different &lt;code&gt;name&lt;/code&gt; attribute for each because that's how Netlify will identify them in the site admin panel. &lt;/p&gt;

&lt;h2&gt;
  
  
  Success Message
&lt;/h2&gt;

&lt;p&gt;But that's not it! By default, Netlify has a generic styled success message page with a link back to the original form page that you can personalize by adding an &lt;code&gt;action&lt;/code&gt; attribute to the &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; tag and putting the personalized path to the page as long as it's relative to the site root, starting with a &lt;code&gt;/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;So easy, right? Now, our form would look like the one below, with those simple attributes added, and it would work beautifully. The information from the contact can be retrieved via the admin panel or in my case, sent via email to the customer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;form id="myForm" class="form" name="forma" method="POST" data-netlify="true" action="/success"&amp;gt;
  &amp;lt;label&amp;gt;Name:&amp;lt;/label&amp;gt;
  &amp;lt;input type="text" id="name" name="name" placeholder="your name"&amp;gt;
  &amp;lt;label&amp;gt;Email:&amp;lt;/label&amp;gt;
  &amp;lt;input type="text" id="name" name="email" placeholder="your email"&amp;gt;
  &amp;lt;label&amp;gt;Message:&amp;lt;/label&amp;gt;
  &amp;lt;textarea type="text" name="message" placeholder="message"&amp;gt;&amp;lt;/textarea&amp;gt;
  &amp;lt;button id="submit" type="submit"&amp;gt;Submit&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  But there's more!
&lt;/h2&gt;

&lt;p&gt;When I presented the form functionality to the client they didn't like that after clicking submission the end-user was moved to a different page where they needed to jump back by clicking another button. So at first, I suggested an automatic return but the main issue was not the button but the second page. I almost lost hope in the Netlify form because there's no information about another type of success message in their documentation. But while looking through the Netlify Support Community for answers I found that somebody was able to use the action to just refresh and return to the main page to show a success message. &lt;/p&gt;

&lt;p&gt;After digging more I found that there's a &lt;code&gt;meta&lt;/code&gt; tag that can refresh and even return a page after a certain amount of time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;meta http-equiv="refresh" content="0;URL='https://netlifyformtest.netlify.app#success'" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With that implemented, I just had to create the success message element on my form page, and display it after finding the #success in the URL with a little JavaScript&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="container--success"&amp;gt;
  &amp;lt;p&amp;gt;Your message was sent succesfully!&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script type="text/javascript"&amp;gt;
   let url = window.location.href;
   if (url.search('success') &amp;gt; 0) {
       document.querySelector('.container--success').classList.add('sent');
   } else {
       document.querySelector('.container--success').classList.remove('sentd');
   }
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AAAAAAAND THAT'S IT! Isn't it so simple? In the end, the customer was happy and I was able to implement another easy and secure solution thanks to Netlify. &lt;/p&gt;

&lt;p&gt;If you want to see the final result, send a note on the form &lt;a href="https://netlifyformtest.netlify.app"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>netlify</category>
      <category>javascript</category>
      <category>functional</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Who am I?</title>
      <dc:creator>Jesus Ramirez</dc:creator>
      <pubDate>Tue, 22 Dec 2020 19:49:15 +0000</pubDate>
      <link>https://dev.to/jesusrmz19/who-am-i-e5o</link>
      <guid>https://dev.to/jesusrmz19/who-am-i-e5o</guid>
      <description>&lt;p&gt;¡Hola 👋🏼!&lt;br&gt;
My name is Jesús Ramirez, I’m a self-taught, freelancer, front-end developer, and here’s a little bit more about my journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;I was born in 1990, in a small city in Mexico, called Cd. Madero. I moved to Guadalajara back in 2008 for college, where I got my undergrad degree in Electronic Engineering, and this is where I had my first introductions to programming. I had classes where we use Java, C, and C++. But as college classes normally are, these introductions were bad and didn’t inspire me to pursue any type of programming life, even though, a lot of my classmates ended up working as software engineers, software was not my University's strongest focus in the EE program. &lt;/p&gt;

&lt;p&gt;A year before graduation, I got an intern job as a Junior Field Applications Engineer for a Rep company (for those of you who don't know, Rep Companies in the electronics business, are companies that represent electronic component's manufacturers and serve as the first point of contact in a specific territory, basically, a local sales office), anyway, eight years later, I'm still here but now as one of the senior FAEs, mainly focused in Automotive Design and Automotive customers.&lt;/p&gt;

&lt;h2&gt;
  
  
  So... how did I get here?
&lt;/h2&gt;

&lt;p&gt;Well, it's not a long and/or inspiring story, that's for sure. It all began in 2017 when I sort of had an existential crisis, after doing the same type of work for four years. I started to feel that something was missing because I've always considered myself a creative person, somebody that likes to explore that side, and even after trying, I was not able to fulfill that part in my 9 to 5, so I had to look outside. &lt;/p&gt;

&lt;p&gt;I bought an entry-level DSRL camera, just for the fun of it, looking for a creative hobby, for something that could fill that little void. Obviously, I started following nice photography accounts on Instagram until one day, scrolling in the explore tab I found the &lt;a href="https://www.instagram.com/madeawkward/"&gt;Made Awkward&lt;/a&gt; account, with its nice office pictures, computers with code in them, and after a bunch of likes, more and more desk set-ups and screens with more code began to appear, until this post came along: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/p/BTyS63mDHlY/"&gt;https://www.instagram.com/p/BTyS63mDHlY/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After falling into an Instagram rabbit hole of images like that, I decided to investigate a little bit more, how could I do these things? was it easy? how did it work? It looked like something that could be entertaining, something where I could create things out of nothing, something where I could use the logic side of my brain, and bring that creative side that I was missing. &lt;/p&gt;

&lt;p&gt;So, I began to look for free classes and videos, until I found Free Code Camp, and everything changed. Of course, I haven't finished all the modules there, and I've done a lot of other courses, I think I even sold my first ugly web page after just a couple of months. But FreeCodeCamp, CodePen, and all the Instagram/Twitter community helped path the way to where I am at the moment. &lt;/p&gt;

&lt;h2&gt;
  
  
  And, now what?
&lt;/h2&gt;

&lt;p&gt;After almost three and a half years, I'm still learning something new every day, still enjoying the journey. I've designed and developed several web pages for small business, I've done a lot of different courses and challenges, everything with the purpose of keep growing and keep learning. &lt;/p&gt;

&lt;p&gt;You can see a portion of my portfolio &lt;a href="https://jesusrmz.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'm currently learning React, just finished Wes Bos's beginner course and I'm developing my first React App, a &lt;a href="https://starwarsspa.netlify.app/#/"&gt;Star Wars SPA&lt;/a&gt;. After this, I'm hoping Wes Bos finishes his advanced React course, so I can jump back in to learn hooks, a little bit more of the backend to develop a full online store, I see a lot of potential for that in Mexico, a lot of companies lack that part, and I would love to keep adding my grain of salt.&lt;/p&gt;

&lt;p&gt;My ultimate goal would be to get a job as a frontend engineer, hopefully somewhere outside of Mexico, so I can get myself and my family a better life.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>portfolio</category>
      <category>react</category>
    </item>
  </channel>
</rss>
