<?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: Tosin Adewale</title>
    <description>The latest articles on DEV Community by Tosin Adewale (@tosyn).</description>
    <link>https://dev.to/tosyn</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%2F820047%2Fceb93631-a98e-4cc8-9da9-0fbd619cf3cd.jpg</url>
      <title>DEV Community: Tosin Adewale</title>
      <link>https://dev.to/tosyn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tosyn"/>
    <language>en</language>
    <item>
      <title>Learning Markdown: yeah, that Dev.to Editor Syntax</title>
      <dc:creator>Tosin Adewale</dc:creator>
      <pubDate>Tue, 28 Jun 2022 13:43:24 +0000</pubDate>
      <link>https://dev.to/tosyn/learning-markdown-yeah-that-devto-editor-syntax-3o1m</link>
      <guid>https://dev.to/tosyn/learning-markdown-yeah-that-devto-editor-syntax-3o1m</guid>
      <description>&lt;p&gt;If you have been writing on Dev.to recently or even for awhile, you must have certainly come across the symbols (#,* etc)  in the in-built text editor. For instance, to make a text or word bold, you just need to add 2 asterisk at the beginning and end of the word, just like this &lt;strong&gt;BOLD&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KeGOYB16--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wuotjmd9jymh0jfq4luj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KeGOYB16--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wuotjmd9jymh0jfq4luj.png" alt="Markdown" width="832" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LQTZImfs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b6ovnx1gv1ary028z7s9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LQTZImfs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b6ovnx1gv1ary028z7s9.png" alt="Markdown" width="770" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are as curious as me, you must have at some point felt like this is different from all of the regular word processor (like Microsoft Word) used locally on computer systems. And if just like me, you have also written on Medium, Hashnode, or even Github Documentation, you must noticed the same type of syntax. Which begs the question, what are these signs and symbols all about. Well, I looked and found the culprit - &lt;strong&gt;MARKDOWN&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4 Basic Facts About Markdown
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Markdown is a lightweight and easy-to-use syntax for styling all forms of writing on code storage or blogging platforms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Markdown was created by John Gruber in 2004, and since then it is now one of the world's most popular markup languages on the internet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Creating a Markdown file is as simple as using a text editor or a dedicated Markdown application to create a text file and save the file with a .md or .markdown extension. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can style texts in Markdown as well as add images, links, tables, lists and even emojis with ease. Which makes it viable for creating presentation slides.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why Do People Use Markdown instead of Popular Word Processors.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Markdown is extremely lightweight. The files occupy less disk space compared to .docx, .pptx or .doc file extensions.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Markdown files do not require specialized software to open them. Compared to other files types (.docx, .pptx or .doc etc) that can only be opened by proprietary software, Markdown is portable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The fact that Markdown files do not required specialized software to open them also makes them taotally platform independent. They can be opened with a simple text editor, and all platform regardless of the maker comes along with a text editor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Again, since Markdown files do not required specialized software to open them you do not have to worry if the application you are using suddenly stops working, there will always be other text editors that can similarly open the Markdown file. Imagine your MS Word software crashes, accessing contents of a .docx or .doc file is impossible on your computer locally, but with a .md or .markdown file extension, you can open with other text editors - Notepad, Notepad++, Atom, Sublime Text, VS Code, the options are endless.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What Is Markdown Used For?
&lt;/h2&gt;

&lt;p&gt;Using Markdown for basic writing seems plausible, until you start asking yourself why should you use it instead of your normal word processor with buttons and clicks.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;WEB - Markdown was designed for the web in the first place , so it shouldn't come as a surprise that most of these online editors and static site generators use Markdown. The reason being that it is easier to update website content using Markdown instead of users having to go deep into the HTML or CSS source code to make a text bold
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;p&gt;or add a link using&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;a href&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some of the static site generators like Jekyll, Hugo use Markdown to update contents they are not built to connect to a database for CRUD Operation, so the best method is to have users use Markdown to manually create and update contents on the website.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;DOCUMENT- By using a Markdown document authoring application, you can create and export Markdown-formatted documents to PDF or HTML files. &lt;br&gt;
Below are some Markdown document authoring applications:&lt;br&gt;
Windows: Ghostwriter, Markdown Monster&lt;br&gt;
iOS/ Android: iA Writer&lt;br&gt;
Web: Dillinger or Stack Edit&lt;br&gt;
Linux: ReText, Ghostwriter&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DOCUMENTATION - Companies like Github use a flavoured version of Markdown to host documentations. If you have been using Github for awhile , you must have noticed the numerous "README.md" files which mostly contain technical documentation regarding a repo or one's profile summary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;COLLABORATION - For some popular collaboration and team messaging applications like like Slack and Discord, they support some features of Markdown, thus bolding or italicising text on such platforms can be done easily with Markdown.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;In the course of this article, we have learnt &lt;u&gt;4 Basic Facts About Markdown, 4 Reasons Why People Use Markdown and 4 Areas Where We Can Use Markdown.&lt;br&gt;
&lt;/u&gt;&lt;br&gt;
In the upcoming articles, we are going to learn how static site generators like Jekyll and Hugo use Markdown to update site contents. &lt;/p&gt;

&lt;p&gt;I hope you have learnt something new today. Do not forget to try out Markdown to write documentations too. See you next time.&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Vercel vs Cloudfare Pages: Choose One</title>
      <dc:creator>Tosin Adewale</dc:creator>
      <pubDate>Thu, 23 Jun 2022 20:20:38 +0000</pubDate>
      <link>https://dev.to/tosyn/vercel-vs-cloudfare-pages-choose-one-26e</link>
      <guid>https://dev.to/tosyn/vercel-vs-cloudfare-pages-choose-one-26e</guid>
      <description>&lt;p&gt;Cloudfare Pages and Vercel are one of the best platforms for freely hosting Front-end apps. Making a decision between the two can be quite confusing.&lt;br&gt;
Today, we are going to compare the two platforms based on 3 criterion:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Ease of Use&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The designers at Cloudfare Pages and Vercel has done an exceptional work in simplifying the user workflow. Although, Vercel happens to further make it easier to deploy any type of project by grouping out the technologies in tiles, this way you get to know beforehand which technology is supported.&lt;/p&gt;

&lt;p&gt;An added advantage is that templates are available on Vercel for you to deploy fast and then edit later to include your custom code. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n9vBZJD5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/20iryjzo9x39v4whelex.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n9vBZJD5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/20iryjzo9x39v4whelex.png" alt="Vercel Templates" width="880" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Plus, when you do finally deploy your app you are provided with three different vercel domains for you to access your app, if you had to do that on Cloudfare Pages, that will require repeating the deployment process thrice instead of once.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HtPFZMQB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y8oinrlmxx0n9cuyi781.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HtPFZMQB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y8oinrlmxx0n9cuyi781.png" alt="Vercel domains" width="880" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the other hand, for beginners who just want to deploy a simple front-end app, Cloudfare Pages comes in handy. The different front-end technologies are not grouped in tiles like that of Vercel, all you need to do is import your repository from Github through a one-click button.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Scope&lt;/strong&gt;&lt;br&gt;
On Vercel, you can deploy more than 8 different front-end technologies (NextJS, ReactJS,GatsbyJS etc) and each has its own template readily available to get you started immediately. Vercel's scope caters more to core developers' need for testing and deploying frontend apps fast. &lt;/p&gt;

&lt;p&gt;Cloudfare Pages on the other hand has a wide suite of services catering to managing and creating domains, hosting whole websites, databases etc. Their business model is created to stand as an all-round solution to web developers, database administrators and even security experts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MexmKRJa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jfxkwdlbckox01tbd57.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MexmKRJa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jfxkwdlbckox01tbd57.png" alt="Cloudfare Pages Services" width="269" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Pricing&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://vercel.com/pricing"&gt;Vercel Pricing&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NLGz8x9_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y4wbw5at6ulb0bsfehz8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NLGz8x9_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y4wbw5at6ulb0bsfehz8.png" alt="Vercel Pricing" width="880" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pages.cloudflare.com/"&gt;Cloudfare Pages&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1ts7SxrZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1h9pbpqwh8xmizjkq324.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1ts7SxrZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1h9pbpqwh8xmizjkq324.png" alt="Cloudfare Pages Pricing" width="880" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Their paid plan are both very similar starting from $20 both, but the benefits on a scale differs depending on your needs. Vercel's paid plan benefits core developers more, while Cloudfare Pages is more beneficial to hobbyist as it promises unlimited sites even on a free plan.&lt;/p&gt;

&lt;p&gt;In summary, we have compared Vercel and Cloudfare Pages based on 3 criterion Ease of Use, Scope and Pricing. I hope the article has made it easier for you to make a choice between the two platforms for deploying your project. It goes without saying that you can definitely use both. Try them out and see how they work.&lt;/p&gt;

&lt;p&gt;Thanks for reading. See you next time.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>vercel</category>
      <category>cloudfare</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Building and Deploying a Next.js App on Vercel</title>
      <dc:creator>Tosin Adewale</dc:creator>
      <pubDate>Wed, 22 Jun 2022 08:31:07 +0000</pubDate>
      <link>https://dev.to/tosyn/building-and-deploying-a-nextjs-app-on-vercel-23no</link>
      <guid>https://dev.to/tosyn/building-and-deploying-a-nextjs-app-on-vercel-23no</guid>
      <description>&lt;p&gt;Today, we will be discussing how to build and deploy a Next.js Blog on Vercel. Compared to No-Code Tools, building with Next.js and Vercel gives you total freedom to code from scratch or modify FREE templates to your taste.&lt;/p&gt;

&lt;p&gt;To do that we will need 2 major things, a Github account and a Vercel account. If you do not have these two things ready, kindly create accounts before we proceed. If you have it already you can go on with the rest of the tutorial.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Next.js Blog and Why Vercel?
&lt;/h2&gt;

&lt;p&gt;According to Microsoft, Next.js is a framework for creating server-rendered JavaScript apps based on React.js, Node.js, Webpack and Babel.js. It is basically a project boilerplate for React, crafted with attention to best practices, that allows you to create "universal" web apps in a simple, consistent way, with hardly any configuration.&lt;/p&gt;

&lt;p&gt;Vercel is the best place to deploy any frontend app. Deployment is done with little to no special configuration giving developers more time to spend on building apps.&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  To start with:
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visit &lt;a href="//vercel.com/login"&gt;Vercel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Login with the Github Option&lt;/li&gt;
&lt;li&gt;Enter your Github Login Credentials and&lt;/li&gt;
&lt;li&gt;Verify your log in by entering the verification code sent to your phone/email inbox.&lt;/li&gt;
&lt;li&gt;You will now be redirected to the Vercel Dashboard, as shown below:
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t1s7eNls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vfknd2ygxdfght0l22ix.png" alt="Vercel Dashboard" width="880" height="459"&gt;
&lt;/li&gt;
&lt;li&gt;Click on the "New Project" on the top-right hand side of the dashboard,
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t1s7eNls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vfknd2ygxdfght0l22ix.png" alt="Vercel Dashboard" width="880" height="459"&gt;
&lt;/li&gt;
&lt;li&gt;You will be redirected to this page, where you have the option of using a template or importing a project from your Github repo.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YF6LoRwF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tkjxcjs028meo7delkje.png" alt="New Project Page" width="880" height="437"&gt;
&lt;/li&gt;
&lt;li&gt;For the sake of this tutorial, we are going to use a template - A Next.js app and a Serverless Function API.
Create a repository by clicking on the Github button.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BZuusNud--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sxjuqrrkr92julz3sfax.png" alt="Create new repository" width="880" height="464"&gt;
&lt;/li&gt;
&lt;li&gt;Enter your preferred name for the project and deploy.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--skVl11Ry--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gxl65mt77nk8nb3yhkbb.png" alt="Name Project" width="880" height="435"&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vbtwzH8T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q1xgskq4bckg1tnnbmha.png" alt="Deploy App" width="880" height="461"&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lRjRBUFz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cm199juzyaj8azogsyks.png" alt="Deploying App" width="880" height="460"&gt;
&lt;/li&gt;
&lt;li&gt;Congratulations, you just deployed a Next.js app.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HTbmf0I3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1wvdrq9p5cn9di478dac.png" alt="Next.js App Deployment Complete" width="880" height="462"&gt;
&lt;/li&gt;
&lt;li&gt;To access your app, click on the auto-generated domain created Vercel - &lt;a href="https://nextjs-rho-eight-22.vercel.app/"&gt;https://nextjs-rho-eight-22.vercel.app/&lt;/a&gt;, you will be redirected to a new tab showcasing your newly deployed Next.js.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7vroHvNo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q6eb7e2suw65au9slkko.png" alt="Next.js App Deployment Page" width="880" height="457"&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NF9W94Le--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/10nffkxi4qlph30qqdv7.png" alt="Next.js App Homepage" width="880" height="465"&gt;
&lt;/li&gt;
&lt;li&gt;To make changes to the source code of the Next.js app, you can access the source code through the repo created on your Github profile.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The fantastic team at Vercel has made the deployment process as straightforward as possible. It takes less than 5 minutes to deploy a Next.js app on Vercel.&lt;/p&gt;

&lt;p&gt;In summary, we have learnt how to build and deploy a Next.js app on Vercel. To do that we need a Github account and a Vercel account linked to our Github account.&lt;br&gt;
We then created a new project from the Vercel Dashboard, choose a Next.js template, cloned it to our Github repo and deployed the app live on an auto-generated domain by vercel at &lt;a href="https://nextjs-rho-eight-22.vercel.app/"&gt;https://nextjs-rho-eight-22.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading, I hope this article has been of great help to you. Check my &lt;a href="//tosyn.xyz"&gt;blog&lt;/a&gt; for more informative posts like this.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>vercel</category>
      <category>devrel</category>
      <category>building</category>
    </item>
    <item>
      <title>Build a Password Generator and Deploy to Cloudfare Pages in 3 minutes</title>
      <dc:creator>Tosin Adewale</dc:creator>
      <pubDate>Mon, 20 Jun 2022 18:34:51 +0000</pubDate>
      <link>https://dev.to/tosyn/build-a-password-generator-and-deploy-to-cloudfare-pages-in-3-minutes-4a3a</link>
      <guid>https://dev.to/tosyn/build-a-password-generator-and-deploy-to-cloudfare-pages-in-3-minutes-4a3a</guid>
      <description>&lt;p&gt;While we await the passwordless future promised by Big Tech, we still have a great deal of security decisions to make regarding using secure passwords. &lt;br&gt;
Below is a chart of how the number of words, numbers or symbols influence the complexity of a password. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IG6otM-F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fl9ijntsxwyuqxkxpbab.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IG6otM-F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fl9ijntsxwyuqxkxpbab.jpg" alt="Time it takes to bruteforce passwords" width="880" height="769"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To create a secure passwords these days, there is Google Chrome password generator extension but due to security reasons, it is unsafe because hackers can access and steal the stored passwords from your browser. &lt;/p&gt;

&lt;p&gt;This leaves us with one last option - use a simple random password generator that you can run and use locally on your smartphone or deploy on Google cloud, which we are going to learn how to do that here in this article. The App is built with HTML, CSS, Javascript and Bootstrap.&lt;/p&gt;

&lt;p&gt;You can download the source code for the Random Password Generator App here on Github - &lt;a href="https://github.com/Tosynn/Random-Passwords-Generator"&gt;&lt;strong&gt;Github repo&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't forget to star the repo and fork the repo to add new features.&lt;/p&gt;

&lt;p&gt;Requirements:&lt;br&gt;
1) A simple interface - Button and a input field. &lt;em&gt;I can't stress this enough, many users will likely want to generate a password immediately, not click checkboxes and move sliders.&lt;/em&gt;&lt;br&gt;
2) Copy functionality. &lt;br&gt;
3) Fully responsive design with Bootstrap. &lt;/p&gt;

&lt;p&gt;First create a file named "index.html" with the following code:&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;body class="d-flex h-100 text-center text-white bg-dark"&amp;gt;

&amp;lt;div class="cover-container d-flex w-100 h-80 p-3 mx-auto flex-column"&amp;gt; &amp;lt;header class="mb-auto"&amp;gt; &amp;lt;div&amp;gt; &amp;lt;h3 class="float-md-start mb-0"&amp;gt; &amp;lt;span class="fa fa-lock"&amp;gt;&amp;lt;/span&amp;gt; Password Generator&amp;lt;/h3&amp;gt; &amp;lt;/div&amp;gt;

&amp;lt;/header&amp;gt;


&amp;lt;main class="px-3"&amp;gt; &amp;lt;h1&amp;gt;Generate Your Secure Password!&amp;lt;/h1&amp;gt; &amp;lt;p class="lead"&amp;gt; &amp;lt;input type="text" class="form-control" name="gen-password" placeholder="Password shows here..."&amp;gt; &amp;lt;/p&amp;gt; &amp;lt;span class="copied fa fa-check fa-2x" style="color:#32CD32" onclick="copy()"&amp;gt;Copied&amp;lt;/span&amp;gt; &amp;lt;span class="copy fa fa-copy fa-2x" onclick="copy()"&amp;gt;Copy&amp;lt;/span&amp;gt;
&amp;lt;/p&amp;gt; &amp;lt;p class="lead"&amp;gt; &amp;lt;button class="btn btn-lg btn-secondary fw-bold border-white"&amp;gt; &amp;lt;span class="fa fa-key"&amp;gt;&amp;lt;/span&amp;gt; Generate Password &amp;lt;/button&amp;gt;

&amp;lt;/main&amp;gt;
&amp;lt;footer class="mt-auto text-white-50"&amp;gt; &amp;lt;p&amp;gt;We got tired of racking our brains for secure passwords.&amp;lt;/p&amp;gt; &amp;lt;a href=""&amp;gt;&amp;lt;span class="fa fa-github fa-2x" style="color:#FFFFFF"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt; &amp;lt;/footer&amp;gt;&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CsTs-8L6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1rgbhe2df80fuma8j8dv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CsTs-8L6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1rgbhe2df80fuma8j8dv.png" alt="Password Generator App" width="880" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the same file, we are going to add a script tag at the bottom of the page to add the javascript code that will generate the passwords:&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;script&amp;gt; const display = document.querySelector("input"), button = document.querySelector("button"), copyBtn = document.querySelector("span.copy"), copyActive = document.querySelector("span.copied"); let chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&amp;amp;*()_+~`|}{[]:;?&amp;gt;&amp;lt;,./-="; button.onclick = ()=&amp;gt;{ let i, randomPassword = ""; copyBtn.style.display = "block"; copyActive.style.display = "none"; for (i = 0; i &amp;lt; 18; i++) { randomPassword = randomPassword + chars.charAt( Math.floor(Math.random() * chars.length) ); } display.value = randomPassword; } function copy(){ copyBtn.style.display = "none"; copyActive.style.display = "block"; display.select(); document.execCommand("copy"); }
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What the code inside the script does is in two folds;&lt;br&gt;
1) Firstly, a random password not less than 18 characters is generated every time the "Generate Password" button is clicked and displayed in the input field using the allotted characters and symbols as in the variable "char".&lt;br&gt;
2) Secondly, a copy function enables the user to easily click on an icon and the password is automatically copied with a generated "Copied" message displayed right below the input field.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EIqggBsz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/suukd5jrw4aaufwqrn72.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EIqggBsz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/suukd5jrw4aaufwqrn72.png" alt="Copied - Password Generator App" width="880" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deploying on Cloudfare Pages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1) Visit Cloudfare Pages - &lt;strong&gt;&lt;a href="https://pages.cloudflare.com"&gt;https://pages.cloudflare.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;2) Create an account or login to your existing account.&lt;/p&gt;

&lt;p&gt;3) On the dashboard, on your left hand side, click on the "Pages" tab.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gkp6h4Ii--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozkvl51wyhmoynut6uf3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gkp6h4Ii--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozkvl51wyhmoynut6uf3.png" alt="Cloudfare Pages- Pages Tab" width="880" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4) On the "Pages" tab, click on the "Create a project" button,&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gkp6h4Ii--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozkvl51wyhmoynut6uf3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gkp6h4Ii--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozkvl51wyhmoynut6uf3.png" alt="Cloudfare Pages- Pages Tab" width="880" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5) Click on the "Connect to git" button&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--v3nLXRvp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gqv6lzhvop9z04dgo1gc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v3nLXRvp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gqv6lzhvop9z04dgo1gc.png" alt="Cloudfare Pages" width="880" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6) Connect to Github, Github will notify you with a verification code to your email linked to your github profile.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7K9i9BOr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2arm2mym38l6y05o0uz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7K9i9BOr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2arm2mym38l6y05o0uz.png" alt="Cloudfare Pages" width="880" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7) After that, select the repository containing the project you want to deploy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rxFCqwhR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xzw6gl1ket3b4yf4b1lz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rxFCqwhR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xzw6gl1ket3b4yf4b1lz.png" alt="Cloudfare Pages" width="880" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8) On the set up and deployment page, in the Project name input field, write out the project name of your choice. Note that the site will be deployed as "the project name".pages.dev&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xi-Bxsm0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtuy40vq3l00aumnchzi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xi-Bxsm0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtuy40vq3l00aumnchzi.png" alt="Cloudfare Pages" width="880" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After deployment, go to the "Pages" tab again:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--seuQvqQw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8b5xqszbz6e2wy8ryrpk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--seuQvqQw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8b5xqszbz6e2wy8ryrpk.png" alt="Cloudfare Pages Dashboard" width="880" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Deploy the site and your website will be live in a matter of seconds. This took me less than 3 minutes even on my first try, so rest assured the steps is straightforward and esy to follow. try it out!&lt;/p&gt;

&lt;p&gt;The Random Password Generator App is hosted live at: &lt;a href="https://securepasswords.pages.dev/"&gt;https://securepasswords.pages.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z16zhhRj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2rvill46gum17negf1ws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z16zhhRj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2rvill46gum17negf1ws.png" alt="Password Generator App on Cloudfare Pages" width="880" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope this helps and you have learnt something out of this. Thanks for reading, see you next time.&lt;br&gt;
&lt;strong&gt;You can download the source code for the Random Password Generator App here on Github - &lt;a href="https://github.com/Tosynn/Random-Passwords-Generator"&gt;https://github.com/Tosynn/Random-Passwords-Generator&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Don't forget to star the repo and fork the repo to add new features.&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>security</category>
      <category>cloud</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
