<?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: Harish</title>
    <description>The latest articles on DEV Community by Harish (@harishv7).</description>
    <link>https://dev.to/harishv7</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%2F131769%2Ff5b80644-d24f-4271-bb6d-64e92e764c75.JPG</url>
      <title>DEV Community: Harish</title>
      <link>https://dev.to/harishv7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harishv7"/>
    <language>en</language>
    <item>
      <title>How I Created My All-Star React Stack — Supercharge.dev</title>
      <dc:creator>Harish</dc:creator>
      <pubDate>Thu, 29 Apr 2021 14:29:06 +0000</pubDate>
      <link>https://dev.to/harishv7/how-i-created-my-all-star-react-stack-supercharge-dev-42do</link>
      <guid>https://dev.to/harishv7/how-i-created-my-all-star-react-stack-supercharge-dev-42do</guid>
      <description>&lt;p&gt;When it comes to building frontend applications, we as developers, are simply spoilt for choice. From Angular to React to Vue to Svelte, there are just thousands of libraries and frameworks to choose from. I have been a loyal React developer for a long time now. Even then, every time I built a React app, I had to do face the same confusion on what libraries I should be using for the app.&lt;/p&gt;

&lt;p&gt;My typical thoughts as I develop yet again another React app:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Is it going to be Bootstrap or Bulma?”&lt;/p&gt;

&lt;p&gt;“Urgh, I need to setup ESLint again!”&lt;/p&gt;

&lt;p&gt;“I need to setup the same Header, Footer, Layout components AGAIN!”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I really needed to change this and in the process of change I built &lt;a href="https://supercharge.dev/" rel="noopener noreferrer"&gt;Supercharge.dev&lt;/a&gt;! Let me tell you all about it!&lt;/p&gt;

&lt;h3&gt;
  
  
  Building My Own All-Star React Stack
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2A5lxW6-kweZ-kRjOi-enUXg.gif" 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%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2A5lxW6-kweZ-kRjOi-enUXg.gif" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Over time, with experience from the various projects I did, I finally came up with my own All-Star React Stack! If you have not already read it, be sure to check it out here: &lt;a href="https://betterprogramming.pub/my-all-star-react-stack-3c9b853d4c41" rel="noopener noreferrer"&gt;https://betterprogramming.pub/my-all-star-react-stack-3c9b853d4c41&lt;/a&gt;. It has over 8.1k views as of writing this and gathered great comments from fellow developers.&lt;/p&gt;

&lt;p&gt;After speaking to devs in the community, I decided to build an all-in-one React Starter Pack that combines all of the below features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;Bulma&lt;/li&gt;
&lt;li&gt;Every page needed for a typical MVP: Home, About, Contact Us, FAQ, Docs, Dashboard etc.&lt;/li&gt;
&lt;li&gt;Every component you need: Testimonials, Features etc.&lt;/li&gt;
&lt;li&gt;Docker Config&lt;/li&gt;
&lt;li&gt;ESLint + Prettier&lt;/li&gt;
&lt;li&gt;Google Analytics&lt;/li&gt;
&lt;li&gt;Firebase Authentication&lt;/li&gt;
&lt;li&gt;Firestore as Database&lt;/li&gt;
&lt;li&gt;Formspree for Quick Contact Forms&lt;/li&gt;
&lt;li&gt;Reack Hook Form for Advanced/Dynamic Forms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And many others, all supported with the latest Next.js 10 and React 17.&lt;/p&gt;

&lt;p&gt;It took me close to a month of development to get it right and stable. I started off working on the modules in a very generic fashion such that anyone can simplify configure everything from the copy on the pages to the API keys used to make it their own.&lt;/p&gt;

&lt;p&gt;The best part is that &lt;strong&gt;everything is configurable in minutes&lt;/strong&gt; — all through modifying the config files!&lt;/p&gt;

&lt;p&gt;From brand name, to your features, to testimonials, you simply update it in the config and the UI updates in tandem!&lt;/p&gt;

&lt;p&gt;The result is &lt;a href="https://supercharge.dev/" rel="noopener noreferrer"&gt;Supercharge.dev&lt;/a&gt;!&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing Supercharge
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F800%2F0%2AoigDSCTAssSUOBCF" 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%2Fcdn-images-1.medium.com%2Fmax%2F800%2F0%2AoigDSCTAssSUOBCF" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the key reasons for creating Supercharge was to ensure that it support developers and helps them develop fast. To stay in line with the goal, I decided to price Supercharge at an extremely &lt;strong&gt;affordable USD25&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;With competing products which allows for customised starter packs starting anywhere from USD50 to USD99 and above (with some even priced at USD300!!), I felt it was only right to help developers with an affordable option.&lt;/p&gt;

&lt;p&gt;The best part of Supercharge is that it is not the usual annoying subscription based package where you keep paying to use it. It’s a &lt;strong&gt;one-time payment&lt;/strong&gt; for unlimited upgrades to future releases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Providing Support
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F800%2F0%2A8kjEDOnjEcsZIfWX" 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%2Fcdn-images-1.medium.com%2Fmax%2F800%2F0%2A8kjEDOnjEcsZIfWX" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creating a product doesn’t just involve coding and putting it up for sale! When Supercharge launched, it attracted a number of queries and requests through the email support channel.&lt;/p&gt;

&lt;p&gt;To be honest, I did not expect to receive such queries so early on the launch. Some of the feature requests were really unique, whereas some just had a few generic queries on integrating CSS and other libraries.&lt;/p&gt;

&lt;p&gt;The great part of customer support is that I managed to understand Supercharge from the user’s point of view, to exactly feel and empathise with their problems and how Supercharge is helping to solve them.&lt;/p&gt;

&lt;p&gt;With the understanding, I iterated fast, provided feedback and support, not just as a creator of Supercharge, but also as a fellow developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testimonials
&lt;/h3&gt;

&lt;p&gt;I decided to collate some feedback from the early users of Supercharge and I am glad to see the strong recommendations and support they have provided.&lt;/p&gt;

&lt;p&gt;Many of the users found that Supercharge helps them to save a great deal of time! And most of the existing bundled features helped them to kickstart their app in no time at all — some within even 10 mins!&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%2Fcdn-images-1.medium.com%2Fmax%2F2560%2F1%2AEiwCsFx_1E2b6_x6i6aE5w.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%2Fcdn-images-1.medium.com%2Fmax%2F2560%2F1%2AEiwCsFx_1E2b6_x6i6aE5w.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s Next?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://supercharge.dev/" rel="noopener noreferrer"&gt;Supercharge.dev&lt;/a&gt; was created to simplify the lives of developers and to help them focus on the goals of their development instead of worrying about structuring and setting up apps again and again.&lt;/p&gt;

&lt;p&gt;So what’s next for Supercharge?&lt;/p&gt;

&lt;p&gt;In the coming days and weeks, I will be upgrading Supercharge with more features — such as email verification flow. Other possible feature maps include a TailwindCSS version and a Bootstrap version for the frontend UI.&lt;/p&gt;

&lt;p&gt;Do you want certain features you would love to see in Supercharge? Drop me an email at &lt;a href="//mailto:supercharge.dev@gmail.com"&gt;supercharge.dev@gmail.com&lt;/a&gt; or a comment below!&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Supercharged!
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F800%2F0%2AFATUNDZzZMKf2hYX" 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%2Fcdn-images-1.medium.com%2Fmax%2F800%2F0%2AFATUNDZzZMKf2hYX" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are you a React developer who wants to skip all the boilerplate setup and have an end-to-end Minimum Viable Product (MVP) ready in minutes?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then Supercharge is for you — check out &lt;a href="https://supercharge.dev/" rel="noopener noreferrer"&gt;Supercharge.dev&lt;/a&gt; and download now. To get a limited time offer of 20% discount, be sure to use promo code &lt;strong&gt;DEV2021&lt;/strong&gt;!&lt;/p&gt;

</description>
      <category>react</category>
      <category>nextjs</category>
      <category>javascript</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>My All-Star React Stack</title>
      <dc:creator>Harish</dc:creator>
      <pubDate>Sat, 23 Jan 2021 09:46:15 +0000</pubDate>
      <link>https://dev.to/rightfrombasics/my-all-star-react-stack-14lk</link>
      <guid>https://dev.to/rightfrombasics/my-all-star-react-stack-14lk</guid>
      <description>&lt;h4&gt;
  
  
  Everything I use when I set up a new React app
&lt;/h4&gt;

&lt;p&gt;If you are a React developer like me, then you are essentially spoiled for choice when it comes to frameworks, libraries, tools, etc. With React, it is even trickier compared to full-fledged opinionated frameworks like Angular. React calls itself a JavaScript library for building user interfaces (UI).&lt;/p&gt;

&lt;p&gt;With a huge array of options, it is only natural to be confused about what technologies to use for your next React project. Today, I’ll share my favourite libraries and how they make my life so much easier!&lt;/p&gt;

&lt;h3&gt;
  
  
  Kickstarting a Project (The Base)
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2AlzcIeXv9do4T2aBt.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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2AlzcIeXv9do4T2aBt.png" alt="Logo"&gt;&lt;/a&gt;Photo from &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;Next.js&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To kickstart a project, my favourite option is &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;Next.js&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Next.js offers out-of-the-box server-side rendering, file system-based routing, built-in CSS/SCSS support, and so much more. You can literally be up and running in a few seconds with Next.js without having to worry about tooling.&lt;/p&gt;

&lt;h4&gt;
  
  
  Alternatives
&lt;/h4&gt;

&lt;p&gt;The default way to bootstrap a React project will be to use the &lt;a href="https://reactjs.org/docs/create-a-new-react-app.html" rel="noopener noreferrer"&gt;Create React App&lt;/a&gt;. However, trust me: Next.js is just so awesome and more developer-friendly. It allows you to focus on the code instead of the setup.&lt;/p&gt;

&lt;p&gt;Another popular option is &lt;a href="https://www.gatsbyjs.org/" rel="noopener noreferrer"&gt;Gatsby&lt;/a&gt;, which is more SEO-centric. However, Gatsby is more focused on static site generation and I am not comfortable using it for a project that may quickly balloon into a large code base. I prefer Gatsby for projects such as a blog.&lt;/p&gt;

&lt;p&gt;My suggestion is to go with Next.js for projects that may become bigger or even enterprise-grade in the future. Choose Gatsby if you want a more SEO-optimised, public-facing site like a blog or a static informational site.&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS Framework
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2Amq5tJbSsk3mW2cg7.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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2Amq5tJbSsk3mW2cg7.png" alt="img"&gt;&lt;/a&gt;Photo from &lt;a href="https://bulma.io/" rel="noopener noreferrer"&gt;Bulma&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My favourite CSS framework is &lt;a href="https://bulma.io/" rel="noopener noreferrer"&gt;Bulma&lt;/a&gt;. It’s an open source framework based on Flexbox and has gained wide traction with over 200,000 developers using it.&lt;/p&gt;

&lt;p&gt;One of the key reasons I use Bulma is that it’s just simple and beautiful. It comes with several UI components that are really well-designed with a focus on mobile responsiveness.&lt;/p&gt;

&lt;h4&gt;
  
  
  Alternatives
&lt;/h4&gt;

&lt;p&gt;Speaking of CSS frameworks, we cannot overlook the ever-popular &lt;a href="https://getbootstrap.com/" rel="noopener noreferrer"&gt;Bootstrap&lt;/a&gt;. It’s definitely an amazing framework, but truth be told, it has gotten a little boring. With many sites using Bootstrap, the styles and components seem monotonous. Nevertheless, Bootstrap is an awesome choice for those who are already familiar with it and it has a very trusted community of developers to rely on for support too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt; is currently the talk of the town. Tailwind allows you to style everything without leaving your HTML code. There is a CSS class for everything — colors, sizes, fonts, shadows, etc. I am personally not a fan of too many CSS classes in my code. I like segregating and modularising my code based on component-level CSS. That being said, Tailwind CSS could be a great solution for developers who love the freedom offered by the framework.&lt;/p&gt;

&lt;h3&gt;
  
  
  Styling
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AhJjt4LiHa7B9VAQvzDnqGA.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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AhJjt4LiHa7B9VAQvzDnqGA.png" alt="Sass and CSS Modules logos"&gt;&lt;/a&gt;Photo by the author.&lt;/p&gt;

&lt;p&gt;My go-to option for styling is using &lt;a href="https://sass-lang.com/" rel="noopener noreferrer"&gt;Sass&lt;/a&gt; with &lt;a href="https://github.com/css-modules/css-modules" rel="noopener noreferrer"&gt;CSS Modules&lt;/a&gt;. This is supported by default in Next.js, where we separate CSS/Sass files from our code and simply import it into the React file where it is required.&lt;/p&gt;

&lt;p&gt;Sass is much more efficient than using pure CSS, as it helps developers to refactor their code and prevent repetitive styling. Developers can quickly extract, refactor, and reuse their code across the project.&lt;/p&gt;

&lt;h4&gt;
  
  
  Alternatives
&lt;/h4&gt;

&lt;p&gt;One popular option is &lt;a href="https://styled-components.com/" rel="noopener noreferrer"&gt;styled-components&lt;/a&gt;, which allows you to write CSS in JS. While this is easy to write, I hate the idea of combining styling inside my JS code. I prefer a separation of concerns and isolating styling from my JS code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Navigation
&lt;/h3&gt;

&lt;p&gt;If you use Next.js like me, then navigation is absolutely not a concern. With file system-based routing, the hierarchy of your directories becomes the actual file path and routes too!&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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2AK6PBExcT9wT1BCQB" 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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2AK6PBExcT9wT1BCQB" alt="img"&gt;&lt;/a&gt;Photo from &lt;a href="https://reactrouter.com/" rel="noopener noreferrer"&gt;React Router&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are using React, then &lt;a href="https://reactrouter.com/" rel="noopener noreferrer"&gt;React Router&lt;/a&gt; is the best choice. It is solid, well-tested with few bugs, and straightforward to use. Oh, and it has 42.3K stars on &lt;a href="https://github.com/ReactTraining/react-router" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;!&lt;/p&gt;

&lt;h3&gt;
  
  
  Forms
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2AU1_d1N4HE1Vt4XK2.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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2AU1_d1N4HE1Vt4XK2.png" alt="img"&gt;&lt;/a&gt;Photo from &lt;a href="https://react-hook-form.com/" rel="noopener noreferrer"&gt;React Hook Form&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Almost every web application needs a form. To add a form to my application, I use &lt;a href="https://react-hook-form.com/" rel="noopener noreferrer"&gt;React Hook Form&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;React Hook Form adopts React Hooks as the core of the library and is extremely simple and easy to use. In fact, there is a form builder you can use to build your forms and literally copy-paste the code into your React project.&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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2AhlpbtFLkq93h3wh6.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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2AhlpbtFLkq93h3wh6.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Photo from &lt;a href="https://formspree.io/" rel="noopener noreferrer"&gt;Formspree&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If all you need is a static form (e.g. Contact Us), then &lt;a href="https://formspree.io/" rel="noopener noreferrer"&gt;Formspree&lt;/a&gt; might be your choice. It requires zero server code and is an excellent option for simple forms.&lt;/p&gt;

&lt;h4&gt;
  
  
  Alternatives
&lt;/h4&gt;

&lt;p&gt;One popular option here is &lt;a href="https://github.com/formium/formik" rel="noopener noreferrer"&gt;Formik&lt;/a&gt;. Formik is a powerhouse — it contains an amazing number of features and has a wide fanbase of developers with over 25.8K stars on GitHub! However, I feel that Formik can sometimes be overkill. When all you need is a simple, nice form with a few fields, React Hook Form has you covered.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Back End
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2Agvmjse2UwvQB4TTG.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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2Agvmjse2UwvQB4TTG.png" alt="img"&gt;&lt;/a&gt;Photo from &lt;a href="https://firebase.google.com/" rel="noopener noreferrer"&gt;Firebase&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I know this article is about front-end React stacks. Nevertheless, I thought I would add this one in — especially for projects where you wish you had a quick back end to integrate. &lt;a href="http://firebase.google.com/" rel="noopener noreferrer"&gt;Firebase&lt;/a&gt; and &lt;a href="https://firebase.google.com/docs/firestore" rel="noopener noreferrer"&gt;Firestore&lt;/a&gt; are excellent options for this use case. I wouldn’t delve too much into this, as it is an entire topic of its own.&lt;/p&gt;

&lt;h4&gt;
  
  
  Alternatives
&lt;/h4&gt;

&lt;p&gt;If you need a quick back end, then some other options are &lt;a href="https://docs.google.com/spreadsheets/" rel="noopener noreferrer"&gt;Google Sheets&lt;/a&gt; and &lt;a href="https://airtable.com/" rel="noopener noreferrer"&gt;Airtable&lt;/a&gt;! Both are as simple as an Excel sheet yet can become as powerful as a small database when required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;And there you go: Next.js, Bulma, Sass, CSS Modules, React Hook Form, Firebase, and Firestore. This is my typical React stack that fits almost any project I am working on.&lt;/p&gt;

&lt;h4&gt;
  
  
  Surprise
&lt;/h4&gt;

&lt;p&gt;If you're looking for an all-encompassing codebase which can supercharge your next project, look no further! I created exactly what you need - &lt;a href="http://supercharge.dev/" rel="noopener noreferrer"&gt;Supercharge.dev&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://supercharge.dev/" rel="noopener noreferrer"&gt;Supercharge.dev&lt;/a&gt; combines all of the above and even more! With Google Analytics and ready-to-use dashboard with Firebase support, you get everything out-of-the-box! &lt;/p&gt;

&lt;p&gt;Use the code &lt;code&gt;DEV2021&lt;/code&gt; to enjoy a 20% off the &lt;a href="http://supercharge.dev/" rel="noopener noreferrer"&gt;Supercharge&lt;/a&gt; bundle now!&lt;/p&gt;

&lt;p&gt;Thanks for reading! Leave a comment below about your favourite libraries.&lt;/p&gt;

&lt;p&gt;Happy hacking!&lt;/p&gt;

</description>
      <category>react</category>
      <category>nextjs</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Rise of JAMstack 🚀</title>
      <dc:creator>Harish</dc:creator>
      <pubDate>Sun, 17 Jan 2021 10:11:05 +0000</pubDate>
      <link>https://dev.to/rightfrombasics/the-rise-of-jamstack-5dg8</link>
      <guid>https://dev.to/rightfrombasics/the-rise-of-jamstack-5dg8</guid>
      <description>&lt;h3&gt;
  
  
  What is JAMstack?
&lt;/h3&gt;

&lt;p&gt;You may have heard of various “stacks”, which typically refers to a group of technologies used to build an application. Recently, JAMstack has become increasingly trendy and popular.&lt;/p&gt;

&lt;p&gt;Before you wonder what does “JAM” in the JAMstack stands for, it is important to recognise that JAMstack is not a collection of technologies. Rather, it refers to a way of building applications which focuses on delivering better performance, scalability and relatively easier development.&lt;/p&gt;

&lt;p&gt;Now, back to the “JAM” — this stands for &lt;strong&gt;JavaScript&lt;/strong&gt;, &lt;strong&gt;APIs&lt;/strong&gt; and &lt;strong&gt;Markup&lt;/strong&gt;. The term JAMstack was coined by Mathias Biilmann, the CEO of Netlify who refers to it as&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“A modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Traditional Applications
&lt;/h3&gt;

&lt;p&gt;Before we dive into the JAMstack and benefits, let’s understand traditional applications. A traditional app has 3 main components: the frontend app, the backend server and a database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gK0x3-vk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2Am7_vD_yKJ-qNx7WqfVPblA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gK0x3-vk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2Am7_vD_yKJ-qNx7WqfVPblA.png" alt="img"&gt;&lt;/a&gt;Traditional Application Architecture&lt;/p&gt;

&lt;p&gt;The problem with this approach is complexity. As your app evolves, there is just too many things to take care of. Applications slow down with complex logic and scaling for thousands of users or even more becomes just too hard.&lt;/p&gt;

&lt;p&gt;Security concerns increase with the size of applications too.&lt;/p&gt;

&lt;p&gt;JAMstack has a great way to solve for these issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  JAM
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9Xslrv5m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2AFf4D4p-mu9pePZiOduduuA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9Xslrv5m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2AFf4D4p-mu9pePZiOduduuA.png" alt="img"&gt;&lt;/a&gt;JAM in JAMstack&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;JavaScript&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Features that are dynamic are managed by JavaScript. This can be achieved with any JavaScript library which does the job.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;APIs&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Server side methods become APIs which is handled by JavaScript functions.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Markup&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;The entire application is served as a static site — a collection of HTML files. A popular example is to use &lt;a href="https://www.wikiwand.com/en/Markdown"&gt;Markdown&lt;/a&gt; which a markup language. Eventually a Static Site Generator like &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; or &lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; can render the static files.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does it work?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qg81NKPh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2AFcQIHY80O6BbM-2szcfiCw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qg81NKPh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2AFcQIHY80O6BbM-2szcfiCw.png" alt="img"&gt;&lt;/a&gt;JAMstack Architecture&lt;/p&gt;

&lt;p&gt;JAMstack applications are served over a &lt;a href="https://en.wikipedia.org/wiki/Content_delivery_network"&gt;Content Delivery Network (CDN)&lt;/a&gt;. Before deploying to a CDN, JAMstack apps are compiled and pre-built into highly optimised static pages and assets.&lt;/p&gt;

&lt;p&gt;The apps are still able to communicate to other backend services or servers through JavaScript and APIs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why use JAMstack?
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Speed
&lt;/h4&gt;

&lt;p&gt;With pre-built and highly optimised sites, it allows for fast rendering of your apps for users.&lt;/p&gt;

&lt;h4&gt;
  
  
  Security
&lt;/h4&gt;

&lt;p&gt;Without a server or database, naturally, there are fewer areas of vulnerabilities.&lt;/p&gt;

&lt;h4&gt;
  
  
  Scalability
&lt;/h4&gt;

&lt;p&gt;We can easily scale our sites without complex logic. The CDN takes care of reaching a global audience.&lt;/p&gt;

&lt;h4&gt;
  
  
  Simplicity
&lt;/h4&gt;

&lt;p&gt;With the simplicity of JAMstack, developers can now focus on the core of the application without worrying too much about DevOps or deployments or scalability. Happy developers = better products = happy users!&lt;/p&gt;

&lt;h3&gt;
  
  
  Technologies based on JAMstack
&lt;/h3&gt;

&lt;p&gt;I enjoy using JAMstack to build my blogs and websites. Use the below technologies to see how you can create your own in no time!&lt;/p&gt;

&lt;h4&gt;
  
  
  Static Blog and Website Generators
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; — Blazing fast static site generator built with Go&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; — Markdown-based static site generator built with Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hexo.io/"&gt;Hexo&lt;/a&gt; — Blog framework powered by Node.js&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Frontend Frameworks
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.gatsbyjs.org/"&gt;Gatsby&lt;/a&gt; — Modern site generator for React&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/"&gt;Next.js&lt;/a&gt; — React framework optimised for Server-Side Rendering (SSR)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nuxtjs.org/"&gt;Nuxt&lt;/a&gt; — Vue.js framework&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Find more at&lt;/em&gt; &lt;a href="https://www.staticgen.com/"&gt;&lt;em&gt;https://www.staticgen.com/&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Deployment Solutions for JAMstack Apps
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt; — All-in-one platform for automating web projects&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vercel.com/"&gt;Vercel (previously Zeit)&lt;/a&gt; — Easiest way to host, deploy and manage websites&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pages.github.com/"&gt;Github Pages&lt;/a&gt; — Host static websites directly from your Git repository&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Headless Content Management Systems (CMS)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.netlifycms.org/"&gt;Netlify CMS&lt;/a&gt; — Open source CMS for Git workflow&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.contentful.com/"&gt;Contentful&lt;/a&gt; — API-first content platform&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ghost.org/"&gt;Ghost&lt;/a&gt; — Headless CMS based on Node.js&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Find more at&lt;/em&gt; &lt;a href="https://headlesscms.org/"&gt;&lt;em&gt;https://headlesscms.org/&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  e-Commerce solutions for JAMstack Apps
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://snipcart.com/"&gt;Snipcart&lt;/a&gt; — Shopping cart for any website&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.bigcommerce.com/"&gt;BigCommerce&lt;/a&gt; — Powerful e-commerce&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://commercelayer.io/"&gt;Commerce Layer&lt;/a&gt; — Enterprise e-commerce on JAMstack&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Sites I’ve built with JAMstack
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Supercharge.dev
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I6_MmeoJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/SW13XEX.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I6_MmeoJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/SW13XEX.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Supercharge.dev is the quickest way to jump into your next Next.js project with everything from frontend framework (Bulma) to Firebase Authentication, Google Analytics etc. all combined!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get a massive 20% off right now with code &lt;code&gt;DEV2021&lt;/code&gt;!&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Right From Basics
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SetAFpJ9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2AisfSTXUCOCSpw0As2y0RrA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SetAFpJ9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2AisfSTXUCOCSpw0As2y0RrA.png" alt="img"&gt;&lt;/a&gt;Right From Basics Homepage&lt;/p&gt;

&lt;p&gt;Right From Basics is a tech blog to learn new technologies and to prepare for your next technical interview. This is built entirely using &lt;strong&gt;Hugo&lt;/strong&gt; and uses &lt;strong&gt;Netlify&lt;/strong&gt; for deployment.&lt;/p&gt;

&lt;p&gt;Check it out here: &lt;a href="https://rightfrombasics.com/"&gt;Right From Basics&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  harishv.me
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dTFwxmUw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2A3XhG9CEY6t_EueNxlJDLOw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dTFwxmUw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2A3XhG9CEY6t_EueNxlJDLOw.png" alt="img"&gt;&lt;/a&gt;harishv.me Homepage&lt;/p&gt;

&lt;p&gt;This is my personal site. I have used &lt;strong&gt;Gatsby&lt;/strong&gt; to build this and &lt;strong&gt;Netlify&lt;/strong&gt; for deployment.&lt;/p&gt;

&lt;p&gt;Check it out here: &lt;a href="https://harishv.me/"&gt;Harish V&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://rightfrombasics.com/posts/rise-of-the-jamstack/"&gt;&lt;em&gt;https://rightfrombasics.com/posts/rise-of-the-jamstack/&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jamstack</category>
      <category>nextjs</category>
      <category>react</category>
      <category>programming</category>
    </item>
    <item>
      <title>HTTPS – What’s the Big Deal?</title>
      <dc:creator>Harish</dc:creator>
      <pubDate>Sun, 09 Jun 2019 04:40:27 +0000</pubDate>
      <link>https://dev.to/rightfrombasics/https-what-s-the-big-deal-2dj3</link>
      <guid>https://dev.to/rightfrombasics/https-what-s-the-big-deal-2dj3</guid>
      <description>&lt;h3&gt;
  
  
  What is HTTP?
&lt;/h3&gt;

&lt;p&gt;HTTP stands for Hypertext Transfer Protocol. It is the protocol used by the World Wide Web and it forms the basis for how data is transmitted over the Internet and how servers and browsers respond to various requests. Essentially, it the "procedure" which helps define how data or messages should be exchanged by different parties on the Internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem with HTTP
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7n0KElTk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://imgur.com/Bsb0pyL.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7n0KElTk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://imgur.com/Bsb0pyL.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The problem with HTTP is that it does not provide for &lt;strong&gt;Integrity, Authentication and Privacy&lt;/strong&gt;. That means data transmitted over HTTP alone is easy to intercept and makes you susceptible to a whole range of attacks which can compromise the 3 factors mentioned above (which you would ideally want when you surf the web).&lt;/p&gt;

&lt;h3&gt;
  
  
  How about HTTPS?
&lt;/h3&gt;

&lt;p&gt;HTTPS is essentially HTTP running over Secure Socket Layer (SSL). HTTPS works by encrypting the HTTP message before the exchange and when received on the other side, it decrypts the message.&lt;/p&gt;

&lt;p&gt;In comparison, if HTTP is used, sensitive information which may be credit card information, your identity numbers, login credentials such as passwords etc. will be transmitted over the server as plaintext. This leaves the exchange vulnerable to "eavesdropping" which means an attacker can intercept the message and use it for harmful purposes.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do SSL Certificates work?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;When a browser/server tries to connect to a webpage secured with SSL, it first requests the web server to identify itself. &lt;/li&gt;
&lt;li&gt;The web server then sends the client or server its SSL certificate.&lt;/li&gt;
&lt;li&gt;The browser checks the SSL certificate to know if it can trust it. If it is able to trust the SSL certificate, it sends a message to the web server acknowledge this.&lt;/li&gt;
&lt;li&gt;The web server is now ready to establish an SSL encyrpted session with the client/server and sends a digital acknowledgement back.&lt;/li&gt;
&lt;li&gt;Now when messages or data is transferred between these 2 entities, they will be encrypted based on a mutually agreed ciphersuite.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The above process where the browser and web sever initiate a secure session is called an SSL Handshake.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; Anyone can create a SSL certificate, but it must be digitally signed by a trusted &lt;a href="https://en.wikipedia.org/wiki/Certificate_authority"&gt;Certification Authority (CA)&lt;/a&gt;. Most computers come with a pre-installed list of CAs they can trust and when the browser checks the SSL certificate, it verifies the digital signature against this list.&lt;/p&gt;

&lt;h3&gt;
  
  
  Public and Private Keys
&lt;/h3&gt;

&lt;p&gt;You would have probably heard about &lt;a href="https://en.wikipedia.org/wiki/Public-key_cryptography"&gt;asymmetric cryptography&lt;/a&gt;, also known as, public-key cryptography. In this type of asymmetric encryption, two types of keys are involved: public key and private key. The names speak for themselves. Public keys are made public, that is anyone is able to know them. Private keys are private, which means no one other than yourself will be able to access this private key.&lt;/p&gt;

&lt;p&gt;Now when someone wants to send me some document, they will simply encrypt the document with my public key (which is accessible by anyone and everyone). Then, they send me this document. Now, I just need to use my private key (which is only known to me) to decrypt this. This ensures that only the &lt;em&gt;intended&lt;/em&gt; receipient of the message will be able to decrypt and hence, access the message.&lt;/p&gt;

&lt;p&gt;Similarly, if I am sending someone my document, I will encrypt the document with my private key. The receipient of the document will now use my public key to decrypt it and access the document. This helps to identify that the document &lt;em&gt;truly&lt;/em&gt; came from me.&lt;/p&gt;

&lt;h3&gt;
  
  
  SSL Transaction
&lt;/h3&gt;

&lt;p&gt;To set up the SSL session, we need 3 keys: public key, private key and session key. As disucussed above the public and private keys are effective in ensuring that the data is reliable and authentic. However, this requires considerable amount of processing power. Hence, we use the session key to encrypt any transmitted data &lt;em&gt;following&lt;/em&gt; the SSL handshake.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding SSL to your website
&lt;/h3&gt;

&lt;p&gt;To add SSL, you will have to first purchase a SSL certificate, activate it, install the certificate and finally configure your site to use the certificate. There are tons of tutorials online on how to do that.&lt;/p&gt;

&lt;p&gt;You can also get free SSL protection with Cloudflare. To know how you can add free SSL to your website, check &lt;a href="//%7B%7Bsite.baseurl%7D%7D/Adding-SSL-to-Your-Site-for-Free"&gt;this&lt;/a&gt; post out!&lt;/p&gt;

&lt;h3&gt;
  
  
  Looking for Hosting?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If you want the best Wordpress hosting, I highly recommend &lt;a href="https://www.bluehost.com/track/harishv/"&gt;Bluehost&lt;/a&gt;. Get a great discount when you &lt;a href="https://www.bluehost.com/track/harishv/"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Also, get a massive discount with &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;Hostinger&lt;/a&gt; when you &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both services offer great uptime and customer service. Oh did I mention - you get a free domain name with both Bluehost and Hostinger!&lt;/p&gt;

</description>
      <category>hosting</category>
      <category>domain</category>
      <category>https</category>
      <category>ssl</category>
    </item>
    <item>
      <title>Adding SSL to Your Site (Free!)</title>
      <dc:creator>Harish</dc:creator>
      <pubDate>Sun, 09 Jun 2019 04:36:20 +0000</pubDate>
      <link>https://dev.to/rightfrombasics/adding-ssl-to-your-site-free-1fa7</link>
      <guid>https://dev.to/rightfrombasics/adding-ssl-to-your-site-free-1fa7</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z_CtsFti--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://imgur.com/ReIvK0H.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z_CtsFti--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://imgur.com/ReIvK0H.png" alt="SSL Error Message"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Seen the error image before?&lt;/p&gt;

&lt;p&gt;This happens when you visit my personal website, &lt;a href="https://harishv.me"&gt;harishv.me&lt;/a&gt;, with a &lt;code&gt;www&lt;/code&gt; in front. This redirects to &lt;a href="https://harishv.me"&gt;https://harishv.me&lt;/a&gt; and all you will see is this &lt;code&gt;ERR_SSL_PROTOCOL_ERROR&lt;/code&gt; as the site is unable to provide a secure connection. &lt;/p&gt;

&lt;p&gt;If you are using a normal GitHub Pages site, which means it has a domain that has &lt;code&gt;.github.io&lt;/code&gt;, you can simply go to the GitHub repository you are using, click settings, go all the way down till you see &lt;code&gt;Enforce HTTPS&lt;/code&gt;. Clicking this will mean that your site will always be served over HTTPS.&lt;/p&gt;

&lt;p&gt;When researching free SSL options to add onto my website, I found that you can actually use &lt;a href="https://www.cloudflare.com/"&gt;Cloudflare’s&lt;/a&gt; name servers under their free plan to obtain a SSL certificate for your website.&lt;/p&gt;

&lt;p&gt;Simply,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a &lt;a href="https://www.cloudflare.com/"&gt;Cloudflare&lt;/a&gt; account&lt;/li&gt;
&lt;li&gt;Allow Cloudflare to scan your website records&lt;/li&gt;
&lt;li&gt;Check and verify that the automatically generated records by Cloudflare matches with those on your registrar’s page (in my case, this is &lt;a href="http://namecheap.com/"&gt;Namecheap.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Cloudflare will now give you 2 nameservers to add into your account&lt;/li&gt;
&lt;li&gt;Login to Namecheap&lt;/li&gt;
&lt;li&gt;Click on Domains List&lt;/li&gt;
&lt;li&gt;Select the domain you want to add SSL for and click on &lt;code&gt;Manage&lt;/code&gt; at the right side&lt;/li&gt;
&lt;li&gt;Under nameservers, copy and paste the 2 nameservers Cloudflare gave you&lt;/li&gt;
&lt;li&gt;Once done, on Cloudflare’s Overview tab, click on &lt;code&gt;Recheck Nameservers&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cloudflare also offers up to three page rules in the free plan. With this, we can always enforce a `https on our website. To do that,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click on the Page Rule tab at the top in Cloudflare&lt;/li&gt;
&lt;li&gt;Enter this: &lt;code&gt;http://*&amp;lt;your-domain-name&amp;gt;.com/*&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Add the settings to be &lt;code&gt;Always Use HTTPS&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click on &lt;code&gt;Save and Deploy&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The asterisks are like wildcard patterns which means any URLs entered in that format will be enforced to utilise HTTPS connection. For example, &lt;a href="//www.harishv.me"&gt;www.harishv.me&lt;/a&gt; or &lt;a href="http://harishv.me/blog"&gt;http://harishv.me/blog&lt;/a&gt; will all now be enforced with HTTPS.&lt;/p&gt;

&lt;p&gt;That’s all folks. Get your free SSL certificate with Cloudflare now! &lt;/p&gt;

&lt;p&gt;P.S. If you’re wondering why is HTTPS that big of a deal, wait a few days for my next article on HTTPS - What’s the Big Deal?.&lt;/p&gt;




&lt;h3&gt;
  
  
  Looking for Hosting?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If you want the best Wordpress hosting, I highly recommend &lt;a href="https://www.bluehost.com/track/harishv/"&gt;Bluehost&lt;/a&gt;. Get a great discount when you &lt;a href="https://www.bluehost.com/track/harishv/"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Also, get a massive discount with &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;Hostinger&lt;/a&gt; when you &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both services offer great uptime and customer service. Oh did I mention - you get a free domain name with both Bluehost and Hostinger!&lt;/p&gt;

</description>
      <category>hosting</category>
      <category>domain</category>
      <category>github</category>
      <category>ssl</category>
    </item>
    <item>
      <title>Connecting Namecheap Domain with GitHub Pages</title>
      <dc:creator>Harish</dc:creator>
      <pubDate>Sun, 09 Jun 2019 04:34:40 +0000</pubDate>
      <link>https://dev.to/rightfrombasics/connecting-namecheap-domain-with-github-pages-3nn6</link>
      <guid>https://dev.to/rightfrombasics/connecting-namecheap-domain-with-github-pages-3nn6</guid>
      <description>&lt;p&gt;A basic tutorial for those who are looking to connect their custom domain to GitHub Pages. This post assumes you will be getting your domain with Namecheap. But, it should mostly apply to any domain providers.&lt;/p&gt;

&lt;p&gt;I first used Namecheap because they offered students free domains. Yup, if you are a student you can get a free Namecheap domain ending with `.me’ free for a year. Check their offer &lt;a href="https://nc.me/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Register on Namecheap
&lt;/h4&gt;

&lt;p&gt;Simply go to the &lt;a href="https://www.namecheap.com/"&gt;Namecheap homepage&lt;/a&gt; and register for an account.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Select a cool domain
&lt;/h4&gt;

&lt;p&gt;Try to get a &lt;code&gt;.com&lt;/code&gt; domain. It is the most general and commonly used domain. But with a ton of websites floating online, you may not be able to find your ideal domain available under &lt;code&gt;.com&lt;/code&gt;. If thats the case check out &lt;code&gt;.me&lt;/code&gt; domains for a personal website (like mine), the trendy &lt;code&gt;.io&lt;/code&gt; for a startup/business, &lt;code&gt;.net&lt;/code&gt;. Namecheap offers a wide range of domains to choose from. Some of them are &lt;code&gt;.life&lt;/code&gt;, &lt;code&gt;.co&lt;/code&gt;, &lt;code&gt;.tech&lt;/code&gt; etc.&lt;/p&gt;

&lt;p&gt;Choose the domain carefully as you will be sticking with it for some considerable time.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Get a GitHub Repository
&lt;/h4&gt;

&lt;p&gt;If you have not yet created a repository, go to GitHub to create one. Name it &lt;code&gt;&amp;lt;your-github-username&amp;gt;.github.io&lt;/code&gt; and ensure you have a master branch where you can push your HTML files. I assume you have your HTML, CSS, JavaScript files ready. Push them to this repository on the master branch.&lt;/p&gt;

&lt;p&gt;Visit the website &lt;code&gt;&amp;lt;your-github-username&amp;gt;.github.io&lt;/code&gt; should allow you to view the expected website.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Create a CNAME record in your Repository
&lt;/h4&gt;

&lt;p&gt;Create a file titled CNAME with your domain name. That’s it. For example my CNAME file contains this:&lt;br&gt;
&lt;code&gt;harishv.me&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Go to Namecheap’s Dashboard
&lt;/h4&gt;

&lt;p&gt;Under the Advanced DNS section, add in the following records. The CNAME record's value  follows the GitHub URL you made in step 3. The A records are used to point the domain name to the IP address of the hosting server, which in your case will be GitHub’s.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8crL04S9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/rightfrombasics.com/wp-content/uploads/2018/12/Screenshot-2018-12-08-at-11.31.42-AM.png%3Fw%3D1896%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8crL04S9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/rightfrombasics.com/wp-content/uploads/2018/12/Screenshot-2018-12-08-at-11.31.42-AM.png%3Fw%3D1896%26ssl%3D1" alt="Namecheap Records"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s all folks. Give it a few minutes (or hours) and your site will be live at your newly registered domain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Looking for Hosting?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If you want the best Wordpress hosting, I highly recommend &lt;a href="https://www.bluehost.com/track/harishv/"&gt;Bluehost&lt;/a&gt;. Get a great discount when you &lt;a href="https://www.bluehost.com/track/harishv/"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Also, get a massive discount with &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;Hostinger&lt;/a&gt; when you &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both services offer great uptime and customer service. Oh did I mention - you get a free domain name with both Bluehost and Hostinger!&lt;/p&gt;

</description>
      <category>hosting</category>
      <category>github</category>
      <category>domain</category>
      <category>website</category>
    </item>
    <item>
      <title>Hosting with GitHub Pages</title>
      <dc:creator>Harish</dc:creator>
      <pubDate>Sun, 09 Jun 2019 04:25:56 +0000</pubDate>
      <link>https://dev.to/rightfrombasics/hosting-with-github-pages-1cc1</link>
      <guid>https://dev.to/rightfrombasics/hosting-with-github-pages-1cc1</guid>
      <description>&lt;p&gt;Did you know you can host websites with GitHub Pages? In fact, so far, all my websites have been hosted with GitHub Pages. See my &lt;a href="http://harishv7.github.io/projects"&gt;Projects&lt;/a&gt;. All the websites there under the domain &lt;a href="http://harishv.me"&gt;harishv.me&lt;/a&gt; are hosted under GitHub Pages. Let's see why is it so awesome.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Great Stuff
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. It’s free!
&lt;/h4&gt;

&lt;p&gt;GitHub Pages offers free hosting of your websites/apps etc. That’s right, its totally free. (There’s a catch though, check the limitations below). &lt;/p&gt;

&lt;h4&gt;
  
  
  2. Connected to your Git repository
&lt;/h4&gt;

&lt;p&gt;Version control is crucial for any project you do. GitHub Pages is connected with your GitHub repository, which means once any changes are pushed, your website is automatically rebuilt and deployed for you. The individual sub-pages that see - &lt;a href="http://harishv.me/blog/"&gt;my blog&lt;/a&gt;, &lt;a href="http://harishv.me/projects/"&gt;my projects&lt;/a&gt;, &lt;a href="http://harishv.me/photography/"&gt;my photography page&lt;/a&gt; are all individual GitHub repositories. The main page is a GitHub repository named &lt;code&gt;&amp;lt;your-github-username&amp;gt;.github.io&lt;/code&gt; on the &lt;code&gt;master&lt;/code&gt; branch. To deploy other repositories under your GitHub Pages domain, you simply push your changes to a &lt;code&gt;gh-pages&lt;/code&gt; branch.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Custom domain names
&lt;/h4&gt;

&lt;p&gt;By default GitHub Pages offers the domain &lt;code&gt;http://&amp;lt;your-github-username&amp;gt;.github.io&lt;/code&gt;. This is good enough for many hobbyists to try deploying their local projects on the web. But if you want a custom domain, you can do that too. Simply register for a domain name on sites like &lt;a href="http://namecheap.com/"&gt;Namecheap&lt;/a&gt; or &lt;a href="http://godaddy.com/"&gt;GoDaddy&lt;/a&gt; and connect them to GitHub pages. My site domain &lt;a href="http://harishv.me"&gt;harishv.me&lt;/a&gt; is registered on Namecheap and connected to my GitHub repositories.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Jekyll blogging support
&lt;/h4&gt;

&lt;p&gt;GitHub Pages supports Jekyll, which means you can create blogs and deploy them. Jekyll is a powerful &lt;a href="https://en.wikipedia.org/wiki/Markdown"&gt;Markdown&lt;/a&gt;-based blogging tool. All you need to do is run a few Jekyll commands after writing your posts and Jekyll builds static sites which you can easily push to GitHub. My &lt;a href="http://harishv.me/blog/"&gt;blog&lt;/a&gt; is built with Jekyll as well. It’s a great way for people who prefer pure code-style of blogging. Also, all your posts can be easily backed up as they are all in a text-based Markdown format. &lt;/p&gt;

&lt;h4&gt;
  
  
  5. Great Uptime
&lt;/h4&gt;

&lt;p&gt;GitHub is almost always up with some rare cases of downtime. This means that it provides reliable service in ensuring your webpages are live 99% of the time. That’s one huge bonus for a free service. You can check on the GitHub system status &lt;a href="https://status.github.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Limitations
&lt;/h3&gt;

&lt;p&gt;This is a rather short section since there aren’t many disadvantages I can think of. There are rather limitations with GitHub Pages.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Only Hosts Static Sites
&lt;/h4&gt;

&lt;p&gt;While its true that GitHub Pages offers free hosting, it does not support full-fledged dynamic sites. Rather you can only host static sites which means they are in pure HTML, CSS and JavaScript. Essentially, there is no server-side support where you can for example do database-related operations etc. Nevertheless, this alone is powerful enough for some projects. All my pure front-end based projects are hosted with GitHub Pages. I have made many of those with the combination of HTML, CSS, JavaScript, libraries such as ReactJS and jQuery, and frameworks such as Bootstrap or Foundation.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Only supports GitHub repositories
&lt;/h4&gt;

&lt;p&gt;Of course, GitHub only supports repositories from itself. If you use another platform like &lt;a href="https://bitbucket.org/"&gt;Atlassian BitBucket&lt;/a&gt; for version control then you will not be able to utilise GitHub Pages. If you are using BitBucket, you are in luck since they too offer support for hosting static sites.  Check this &lt;a href="https://confluence.atlassian.com/bitbucket/publishing-a-website-on-bitbucket-cloud-221449776.html"&gt;FAQ section&lt;/a&gt; for more information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Looking for Hosting?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If you want the best Wordpress hosting, I highly recommend &lt;a href="https://www.bluehost.com/track/harishv/"&gt;Bluehost&lt;/a&gt;. Get a great discount when you &lt;a href="https://www.bluehost.com/track/harishv/"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Also, get a massive discount with &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;Hostinger&lt;/a&gt; when you &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both services offer great uptime and customer service. Oh did I mention - you get a free domain name with both Bluehost and Hostinger!&lt;/p&gt;

</description>
      <category>hosting</category>
      <category>github</category>
      <category>domain</category>
      <category>website</category>
    </item>
    <item>
      <title>Getting a Free Domain For Students</title>
      <dc:creator>Harish</dc:creator>
      <pubDate>Sun, 09 Jun 2019 03:52:24 +0000</pubDate>
      <link>https://dev.to/rightfrombasics/getting-a-free-domain-for-students-on7</link>
      <guid>https://dev.to/rightfrombasics/getting-a-free-domain-for-students-on7</guid>
      <description>&lt;p&gt;If you are student and you are looking to get a domain, then you're in luck! You can get one for free with Namecheap. Namecheap provides services such as domain name registration and web hosting services.&lt;/p&gt;

&lt;p&gt;If you want a free domain, check out their student offer &lt;a href="https://nc.me/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvj588x6ykt6uotl7gyen.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvj588x6ykt6uotl7gyen.png" alt="Namecheap Student Deal" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a small catch though. You will only be able to get the &lt;code&gt;.me&lt;/code&gt; domain for free. &lt;code&gt;.me&lt;/code&gt; domains are usually used for personal sites and blogs (like mine). &lt;/p&gt;

&lt;p&gt;If you're looking for &lt;code&gt;.com&lt;/code&gt;, &lt;code&gt;.net&lt;/code&gt;, &lt;code&gt;.io&lt;/code&gt; and other domains, then this offer will not apply - you won't get the domain for free, but rather under a discounted rate. Despite that, Namecheap's domain hosting is extremely affordable and comes in at only a couple of dollars per &lt;em&gt;year&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Looking for Hosting?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If you want the best Wordpress hosting, I highly recommend &lt;a href="https://www.bluehost.com/track/harishv/"&gt;Bluehost&lt;/a&gt;. Get a great discount when you &lt;a href="https://www.bluehost.com/track/harishv/"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Also, get a massive discount with &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;Hostinger&lt;/a&gt; when you &lt;a href="https://www.hostg.xyz/aff_c?offer_id=6&amp;amp;aff_id=2883"&gt;apply through this link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both services offer great uptime and customer service. Oh did I mention - you get a &lt;strong&gt;free domain name&lt;/strong&gt; with both Bluehost and Hostinger!&lt;/p&gt;

</description>
      <category>hosting</category>
      <category>domain</category>
      <category>namecheap</category>
      <category>students</category>
    </item>
  </channel>
</rss>
