<?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: RoyalityFree</title>
    <description>The latest articles on DEV Community by RoyalityFree (@royalityfree).</description>
    <link>https://dev.to/royalityfree</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%2F738730%2F7ac76e6b-62cd-4d98-ab36-bd874774b7f2.png</url>
      <title>DEV Community: RoyalityFree</title>
      <link>https://dev.to/royalityfree</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/royalityfree"/>
    <language>en</language>
    <item>
      <title>Best Ultimate Guide To Build A Random Quote Generator 2022</title>
      <dc:creator>RoyalityFree</dc:creator>
      <pubDate>Fri, 26 Nov 2021 16:08:16 +0000</pubDate>
      <link>https://dev.to/royalityfree/best-ultimate-guide-to-build-a-random-quote-generator-2022-8m4</link>
      <guid>https://dev.to/royalityfree/best-ultimate-guide-to-build-a-random-quote-generator-2022-8m4</guid>
      <description>&lt;p&gt;Hey Everyone 👋, today’s article is aimed at beginners trying to build a random quote generator using JavaScript. This will definitely make you understand the interaction between the frontend and backend and how they work on a web browser.&lt;/p&gt;

&lt;p&gt;In my previous post, I had shared about Amazing Text To Speech Converter With HTML, CSS &amp;amp; JavaScript (2021) – RoyalityFree Blog. I received a great response to that, so I thought why not share more of my projects for free 🎉.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: I've worked very hard on this project and the output, was making it free 🤗. You can too support me in return for free by stargazing the official repository &lt;a href="https://github.com/RoyalityFreeWebHosting/RandomQuoteGenerator/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As for this project, we’ll build a random quote generator that will display a quote fetched from an API on a button click or a default set. To get started, like always you’ll need three essential things that are forever useful for any sort of project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A web browser&lt;/li&gt;
&lt;li&gt;A code editor&lt;/li&gt;
&lt;li&gt;A desire boost&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For this tutorial, I will use the Microsoft Edge browser, Visual Studio Code as my code editor, and most importantly a boost in my desire to build something till the end! If you don’t seem familiar with my suggestions, feel free to use any other alternative.&lt;/p&gt;

&lt;h2&gt;
  
  
  Random Quote Generator (Understanding)
&lt;/h2&gt;

&lt;p&gt;A Random Quote Generator is proficient in pulling quotes randomly from an API, any database, or plainly from an array. We will be designing a Random Quote Generator from scratch using HTML, CSS, JavaScript, and free-quotes API.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Random Quote Generator (Building)
&lt;/h2&gt;

&lt;p&gt;For every project, we need some basic core files. In this case, we’ll need three files with alike extensions, i.e &lt;code&gt;.html&lt;/code&gt;, &lt;code&gt;.css&lt;/code&gt;, &lt;code&gt;.js&lt;/code&gt;. Once you’ve organized them in a folder (e.g &lt;code&gt;random-quote-generator&lt;/code&gt;), you are good to paste the source code from the following sections.&lt;/p&gt;

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

&lt;p&gt;You can optionally download the whole source code of this Random Quote Generator from the available mirrors, at the end of the article.&lt;/p&gt;

&lt;p&gt;Firstly, create an HTML file with a filename &lt;code&gt;index.html&lt;/code&gt; and paste the following code into your HTML file. &lt;strong&gt;Save It&lt;/strong&gt;, you’ve to create a file with an &lt;code&gt;.html&lt;/code&gt; extension at the last.&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;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en" dir="ltr"&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;!-- Meta Tags Start, For Reference https://www.w3schools.com/tags/tag_meta.asp --&amp;gt;
&amp;lt;meta charset="utf-8"&amp;gt;
&amp;lt;meta name="description" content="Free random quotes generator, either inspirational or motivational."&amp;gt;
&amp;lt;meta name="keywords" content="quotes, random quotes, random quote generator"&amp;gt;
&amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
&amp;lt;meta name="msapplication-TileColor" content="#ffffff"&amp;gt;
&amp;lt;meta name="msapplication-TileImage" content="/ms-icon-144x144.png"&amp;gt;
&amp;lt;meta name="theme-color" content="#ffffff"&amp;gt;
&amp;lt;!-- Meta Tags End--&amp;gt;
&amp;lt;!-- Title (Change This If Publlic)--&amp;gt;
&amp;lt;title&amp;gt;Random Quotes | RoyalityFree&amp;lt;/title&amp;gt;
&amp;lt;!-- Link Custom Stylesheet And Fonts Start --&amp;gt;
&amp;lt;link rel="stylesheet" href="style.css"&amp;gt;
&amp;lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" integrity="sha512-Fo3rlrZj/k7ujTnHg4CGR2D7kSs0v4LLanw2qksYuRlEzO+tcaEPQogQ0KaoGN26/zrn20ImR1DfuLWnOo7aBA==" crossorigin="anonymous" referrerpolicy="no-referrer" /&amp;gt;
&amp;lt;link rel="preconnect" href="https://fonts.googleapis.com"&amp;gt;
&amp;lt;link rel="preconnect" href="https://fonts.gstatic.com" crossorigin&amp;gt;
&amp;lt;link href="https://fonts.googleapis.com/css2?family=Poppins&amp;amp;display=swap" rel="stylesheet"&amp;gt;
&amp;lt;!-- Link Custom Stylesheet And Fonts End--&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;!-- Start Container --&amp;gt;
&amp;lt;div class="wrapper"&amp;gt;
&amp;lt;!-- Start Header --&amp;gt;
&amp;lt;header&amp;gt;
    Quote For &amp;lt;span id="getday"&amp;gt;&amp;lt;/span&amp;gt;
&amp;lt;/header&amp;gt;
&amp;lt;!-- End Header --&amp;gt;
&amp;lt;!-- Start Content --&amp;gt;
&amp;lt;div class="content"&amp;gt;
&amp;lt;div class="quote-area"&amp;gt;
&amp;lt;i class="fas fa-quote-left"&amp;gt;&amp;lt;/i&amp;gt;
&amp;lt;p class="quote"&amp;gt;Protecting your mind, body and spirit from negativity is a sign of self-love.&amp;lt;/p&amp;gt;
&amp;lt;i class="fas fa-quote-right"&amp;gt;&amp;lt;/i&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class="author"&amp;gt;
&amp;lt;span&amp;gt;__&amp;lt;/span&amp;gt;
&amp;lt;span class="name"&amp;gt;Nitin Namdeo&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class="buttons"&amp;gt;
&amp;lt;div class="features"&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li class="speech"&amp;gt;&amp;lt;i class="fas fa-volume-up"&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li class="copy" onclick="onCopy()"&amp;gt;&amp;lt;i class="fas fa-copy"&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li class="twitter"&amp;gt;&amp;lt;i class="fab fa-twitter"&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&amp;lt;button&amp;gt;Another&amp;lt;/button&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;!-- End Content --&amp;gt;
&amp;lt;!-- Get Script--&amp;gt;
&amp;lt;script src="script.js"&amp;gt;
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Secondly, create a CSS file with the filename &lt;code&gt;style.css&lt;/code&gt; and paste the following code into the file. &lt;strong&gt;Save It&lt;/strong&gt;, you have to create a file with &lt;code&gt;.css&lt;/code&gt; an extension at the last.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/* Built By RoyalityFree | Codes Initiative */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:poppins,sans-serif
}
body{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:100vh;
    padding:0 10px;
    background-image: radial-gradient(#31e9cb,#a3f5e8,#31e9cb);
    user-select: none;
}
::selection{
    color:#fff;
    background:#1AE78D
}
.wrapper{
    width:605px;
    background:#fff;
    border-radius:15px;
    padding:30px 30px 25px;
    box-shadow:0 12px 35px rgba(0,0,0,.1)
}
header,.content :where(i,p,span){
    color:#102137
}
.wrapper header{
    font-size:35px;
    font-weight:600;
    text-align:center
}
.wrapper .content{
    margin:35px 0
}
.content .quote-area{
    display:flex;
}
.quote-area i{
    font-size:15px
}
.quote-area i:first-child{
    margin:3px 0 0 0
}
.quote-area i:last-child{
    display:flex;
    margin:0 0 3px 10px;
    align-items:flex-end;
}
.quote-area .quote{
    font-size:22px;
    text-align:center;
}
.content .author{
    display:flex;
    font-size:18px;
    margin-top:20px;
    font-style:italic;
    justify-content:flex-end
}
.author span:first-child{
    margin:-6px 5px 0 0;
    font-family:monospace;
}
.buttons .features{
    display:flex;
    margin-top:20px;
    align-items:center;
    justify-content:space-between;
}
.features ul{
    display:flex
}
.features ul li{
    margin:0 5px;
    height:47px;
    width:47px;
    display:flex;
    cursor:pointer;
    color:#1AE78D;
    list-style:none;
    border-radius:50%;
    align-items:center;
    justify-content:center;
    border:2px solid #1AE78D;
    transition:all .3s ease
}
.features ul li:first-child{
    margin-left:0
}
ul li:is(:hover,.active){
    color:#fff;
    background:#1AE78D
}
ul .speech.active{
    pointer-events:none
}
.buttons button{
    border:none;
    color:#fff;
    outline:none;
    font-size:16px;
    cursor:pointer;
    padding:13px 22px;
    border-radius:15px;
    background:#1AE78D
}
.buttons button:hover{
    background: #4DD99C;
}
.buttons button.loading{
    opacity:.7;
    pointer-events:none
}
@media(max-width:728px){
    .wrapper{
        padding:25px 25px 20px;
        margin: 15px 15px 15px 15px;    
    }
    .wrapper header{
        font-size:29px
    }
    .quote-area .quote{
        font-size:20px;
        word-break:keep-all
    }
    .content .author{
        font-size:16px
    }
    .quote-area i{
        font-size:12px
    }
    .features ul li{
        margin:0 3px;
        height:45px;
        width:45px
    }
    .buttons button{
        font-size:15px;
        padding:12px 20px
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lastly, create a JavaScript file with a filename &lt;code&gt;script.js&lt;/code&gt; and paste the following code into your JavaScript file. &lt;strong&gt;Save It&lt;/strong&gt;, you have to create a file with &lt;code&gt;.js&lt;/code&gt; an extension at last.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Built By RoyalityFree | Codes Initiative

const quoteText = document.querySelector(".quote"),
    quoteBtn = document.querySelector("button"),
    authorName = document.querySelector(".name"),
    speechBtn = document.querySelector(".speech"),
    copyBtn = document.querySelector(".copy"),
    pingTwitter = document.querySelector(".twitter"),
    synth = speechSynthesis;

function randomQuote() {
    quoteBtn.classList.add("loading");
    quoteBtn.innerText = "Loading 🎉";
    fetch("https://free-quotes-api.herokuapp.com/").then(response =&amp;gt; response.json()).then(result =&amp;gt; {
        quoteText.innerText = result.quote;
        authorName.innerText = result.author || "No Author";
        quoteBtn.classList.remove("loading");
        quoteBtn.innerText = "Another";
    });
}
speechBtn.addEventListener("click", () =&amp;gt; {
    if (!quoteBtn.classList.contains("loading")) {
        let utterance = new SpeechSynthesisUtterance(`${quoteText.innerText} by ${authorName.innerText}`);
        synth.speak(utterance);
        setInterval(() =&amp;gt; {
            !synth.speaking ? speechBtn.classList.remove("active") : speechBtn.classList.add("active");
        }, 10);
    }
});
copyBtn.addEventListener("click", () =&amp;gt; {
    navigator.clipboard.writeText(quoteText.innerText);
});
pingTwitter.addEventListener("click", () =&amp;gt; {
    let twitterUrl = `https://twitter.com/intent/tweet?url=${quoteText.innerText}`;
    window.open(twitterUrl, "_blank");
});
quoteBtn.addEventListener("click", randomQuote);

pingTwitter.addEventListener("click", () =&amp;gt; {
    let twitterUrl = `https://twitter.com/intent/tweet?url=${quoteText.innerText}`;
    window.open(twitterUrl, "_blank");
});
const d = new Date();
const weekday = new Array(7);
weekday[0] = "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";
let day = weekday[d.getDay()];
document.getElementById("getday").innerHTML = day;
function onCopy() {
    alert("Copied Quote Successfully To 📋!");
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With all that set in place, we’re ready to check the output of all three files combined to build a powerful webpage. It should do something like this by now:&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Random Quote Generator (Last Words)
&lt;/h2&gt;

&lt;p&gt;That’s it, you’ve now successfully built a Random Quote Generator Webpage in native HTML, CSS, and JavaScript.&lt;/p&gt;

&lt;p&gt;If your code does not work or you have faced any problem/issue, try downloading the source files from the provided download button below.&lt;/p&gt;

&lt;p&gt;It’s priceless and a &lt;code&gt;.zip&lt;/code&gt; file that will be downloaded and then just extract it to your file manager, server, etc.&lt;/p&gt;



&lt;center&gt;&lt;a href="https://gplinks.co/random-quote-generator" rel="noopener"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vepkagn---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/6MyzmJa.png" width="200" height="64"&gt;&lt;/a&gt;&lt;/center&gt;

</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Building A Text To Speech Converter For Beginners!</title>
      <dc:creator>RoyalityFree</dc:creator>
      <pubDate>Wed, 24 Nov 2021 15:28:58 +0000</pubDate>
      <link>https://dev.to/royalityfree/building-a-text-to-speech-converter-for-beginners-4gpc</link>
      <guid>https://dev.to/royalityfree/building-a-text-to-speech-converter-for-beginners-4gpc</guid>
      <description>&lt;p&gt;Hey everyone! Today we’ll be building something just too awesome in this article, you will learn how to create a Text To Speech Converter with HTML, CSS, and JavaScript.&lt;/p&gt;

&lt;p&gt;I have worked very hard on this project to make it come true, all that for not even a single penny 😍. Do stargaze and support this project at the official repository for this project on &lt;a href="https://github.com/RoyalityFreeWebHosting/TextToSpeech" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and a demo is available &lt;a href="https://royalityfree.com/opensource/TextToSpeech/" rel="noopener noreferrer"&gt;here&lt;/a&gt;!&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.gstatic.com%2Fbricks%2Fimage%2F8ebd398d2db3f7da5bbd1a36ecfd8cb9cf41265d5250d5279fea0ac41823c4c6.svg" 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%2Fwww.gstatic.com%2Fbricks%2Fimage%2F8ebd398d2db3f7da5bbd1a36ecfd8cb9cf41265d5250d5279fea0ac41823c4c6.svg" alt="Text To Speech"&gt;&lt;/a&gt;How Cloud Speech Works (Source: Google)&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Text To Speech Converter In The First Place? (Core Basics)
&lt;/h2&gt;

&lt;p&gt;Text To Speech (TTS) is a technology that empowers your text to be converted into speech verbal sounds.&lt;/p&gt;

&lt;p&gt;In this project (Text To Speech Converter), you can convert your text into speech with different voices and accents powered by native output methods for every type of device.&lt;/p&gt;

&lt;p&gt;A pause and resume button that is embedded into the core of your text is above the minimum requirement of ~125 words/characters.&lt;/p&gt;

&lt;h2&gt;
  
  
  About The Text To Speech Converter Project (Understanding Basics)
&lt;/h2&gt;

&lt;p&gt;In the JavaScript code, originally, I got the user text and call a function &lt;code&gt;textToSpeech()&lt;/code&gt; with parsing the user input text as an argument.&lt;/p&gt;

&lt;p&gt;Inside this function, leveraging the speech synthesis property of the window object, I converted the user input text to speech.&lt;/p&gt;

&lt;p&gt;Speech Synthesis is defined as a web speech API that moderates the speech service using native speech verbal’s available on the base device.&lt;br&gt;
After this, I got all the available verbal voices from the user device using the &lt;code&gt;getVoices()&lt;/code&gt; scheme of Speech Synthesis and insert it into the attributed HTML select tag. &lt;/p&gt;

&lt;p&gt;That’s all and I request you to continue reading to get more knowledge depth on what the code is actually performing.&lt;/p&gt;

&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsugermint.com%2Fwp-content%2Fuploads%2F2021%2F06%2Ftext-to-speech-software.jpg" alt="Best Text To Speech Software For Voice Over &amp;amp; Youtube Videos (USA 2021) - Text  To Speech Converter"&gt;Source: SugarMint
&lt;h2&gt;
  
  
  Building Text To Speech Converter Project (Free Source Code 🎉)
&lt;/h2&gt;

&lt;p&gt;To build this Text To Speech Converter project, you need to create three core files, namely a &lt;code&gt;&lt;strong&gt;.html&lt;/strong&gt;&lt;/code&gt;, &lt;code&gt;&lt;strong&gt;.css&lt;/strong&gt;&lt;/code&gt; and a &lt;code&gt;&lt;strong&gt;.js&lt;/strong&gt;&lt;/code&gt; file. After organizing these files just paste the given codes into your file.&lt;/p&gt;

&lt;p&gt;You can further download the source code files of this Text To Speech Project from the proffered download button below at the end of this article.&lt;/p&gt;

&lt;p&gt;Firstly, create an HTML file with a filename of &lt;code&gt;&lt;strong&gt;index.html&lt;/strong&gt;&lt;/code&gt; and paste the following codes into your HTML file. &lt;strong&gt;Save It&lt;/strong&gt;, you’ve to create a file with an &lt;code&gt;&lt;strong&gt;.html&lt;/strong&gt;&lt;/code&gt; extension at the last.&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;!doctype html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
  &amp;lt;head&amp;gt;
&amp;lt;!-- Built By RoyalityFree's Blog--&amp;gt;
    &amp;lt;meta charset="utf-8"&amp;gt;
    &amp;lt;title&amp;gt;Text To Speech | RoyalityFree Codes&amp;lt;/title&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"&amp;gt;
    &amp;lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css" integrity="sha512-YWzhKL2whUzgiheMoBFwW8CKV4qpHQAEuvilg9FAn5VJUDwKZZxkJNuGM4XkWuk94WCrrwslk8yWNGmY1EduTA==" crossorigin="anonymous" referrerpolicy="no-referrer" /&amp;gt;
    &amp;lt;link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"&amp;gt;
    &amp;lt;link rel="stylesheet" href="assets/style.css"&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;div class="wrapper"&amp;gt;
     &amp;lt;div class="container-fluid"&amp;gt;
      &amp;lt;h2 class="h2 text-center"&amp;gt;
          Text To Speech
      &amp;lt;/h2&amp;gt;
      &amp;lt;form&amp;gt;
        &amp;lt;div class="form-group row"&amp;gt;
          &amp;lt;label class="col-sm- col-form-label"&amp;gt;Enter Text &amp;lt;span class="badge badge-success"&amp;gt;Max 5000 Letters&amp;lt;/span&amp;gt;
          &amp;lt;/label&amp;gt;
          &amp;lt;div class="col-15"&amp;gt;
              &amp;lt;textarea maxlength="5000"&amp;gt;&amp;lt;/textarea&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class="form-group row"&amp;gt;
            &amp;lt;label&amp;gt;Select Voice&amp;lt;/label&amp;gt;
            &amp;lt;div class="outer"&amp;gt;
              &amp;lt;select&amp;gt;&amp;lt;/select&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class="form-group row"&amp;gt;
          &amp;lt;div class="col-15"&amp;gt;
            &amp;lt;button type="submit" class="btn btn-primary"&amp;gt;Convert To Speech&amp;lt;/button&amp;gt;
          &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/form&amp;gt;
     &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;script src="script.js"&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Secondly, create a CSS file with the filename of &lt;code&gt;&lt;strong&gt;style.css&lt;/strong&gt;&lt;/code&gt; and paste the following code in the file. &lt;strong&gt;Save It&lt;/strong&gt;, you have to create a file with &lt;strong&gt;&lt;code&gt;.css&lt;/code&gt;&lt;/strong&gt; extension at the last.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/* Built By RoyalityFree's Blog | Codes */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&amp;amp;display=swap');
*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Poppins', sans-serif;
} /*Applied Universally*/

body{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background-image: linear-gradient(90deg, #1d4aff, #829bff,#1d4aff);
}

::selection{
  color: #fff;
  background: #5256AD; /* Change Selection Colour*/
}

.wrapper{
  width: 370px;
  padding: 25px 30px;
  border-radius: 7px;
  background: #fff;
  box-shadow: 7px 7px 20px rgba(0,0,0,0.05);
} /*Box Behind*/

.wrapper header{
  font-size: 28px;
  font-weight: 500;
  text-align: center;
}

.wrapper form{
  margin: 35px 0 20px;
}

form .row{
  display: flex;
  margin-bottom: 20px;
  flex-direction: column;
}

form .row label{
  font-size: 18px;
  margin-bottom: 5px;
}

form .row:nth-child(2) label{
  font-size: 17px;
}

form :where(textarea, select, button){
  outline: none;
  width: 100%;
  height: 100%;
  border: none;
  border-radius: 5px;
}

form .row textarea{
  resize: none;
  height: 110px;
  font-size: 15px;
  padding: 8px 10px;
  border: 1px solid #999;
}

form .row textarea::-webkit-scrollbar{
  width: 0px;
}

form .row .outer{
  height: 47px;
  display: flex;
  padding: 0 10px;
  align-items: center;
  border-radius: 5px;
  justify-content: center;
  border: 1px solid #999;
}

form .row select{
  font-size: 14px;
  background: none;
}

form .row select::-webkit-scrollbar{
  width: 8px;
}

form .row select::-webkit-scrollbar-track{
  background: #fff;
}

form .row select::-webkit-scrollbar-thumb{
  background: #888;
  border-radius: 8px;
  border-right: 2px solid #ffffff;
}

form button{
  height: 52px;
  color: #fff;
  font-size: 17px;
  cursor: pointer;
  margin-top: 10px;
  background: #675AFE;
  transition: 0.3s ease;
}

form button:hover{
  background: #4534fe;
}

@media(max-width: 728px){
  .wrapper{
    max-width: 345px;
    width: 100%;
    margin-left: 7px;
    margin-right: 7px;
  }
} /*For Mobile View*/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, create a JavaScript file with a filename of &lt;strong&gt;&lt;code&gt;script.js&lt;/code&gt;&lt;/strong&gt; and paste the following code in your JavaScript file. &lt;strong&gt;Save It&lt;/strong&gt;, you have to create a file with &lt;strong&gt;&lt;code&gt;.js&lt;/code&gt;&lt;/strong&gt; extension at last.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const textarea = document.querySelector("textarea"),
voiceList = document.querySelector("select"), // Selection
speechBtn = document.querySelector("button");

let synth = speechSynthesis,
isSpeaking = true;

voices();

function voices(){
    for(let voice of synth.getVoices()){
        let selected = voice.name === "Google US English" ? "selected" : "";
        let option = `&amp;lt;option value="${voice.name}" ${selected}&amp;gt;${voice.name} (${voice.lang})&amp;lt;/option&amp;gt;`;
        voiceList.insertAdjacentHTML("beforeend", option); // Getting Verbal's 
    }
}

synth.addEventListener("voiceschanged", voices);

function textToSpeech(text){
    let utterance = new SpeechSynthesisUtterance(text);
    for(let voice of synth.getVoices()){
        if(voice.name === voiceList.value){
            utterance.voice = voice;
        }
    }
    synth.speak(utterance);
}

speechBtn.addEventListener("click", e =&amp;gt;{
    e.preventDefault();
    if(textarea.value !== ""){
        if(!synth.speaking){
            textToSpeech(textarea.value);
        }
        if(textarea.value.length &amp;gt; 80){
            setInterval(()=&amp;gt;{
                if(!synth.speaking &amp;amp;&amp;amp; !isSpeaking){
                    isSpeaking = true;
                    speechBtn.innerText = "Convert To Speech"; //Execute
                }else{
                }
            }, 500);
            if(isSpeaking){
                synth.resume();
                isSpeaking = false;
                speechBtn.innerText = "Pause Speech"; //Pause
            }else{
                synth.pause();
                isSpeaking = true;
                speechBtn.innerText = "Resume Speech"; //Resume
            }
        }else{
            speechBtn.innerText = "Convert To Speech"; //Execute
        }
    }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fvoximplant.com%2Fassets%2Fimages%2F2020%2F05%2F28%2Ftext-to-speech-api-scheme-3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvoximplant.com%2Fassets%2Fimages%2F2020%2F05%2F28%2Ftext-to-speech-api-scheme-3.jpg" alt="How auto Text-to-Speech works?"&gt;&lt;/a&gt;Source: VoximPlant&lt;/p&gt;

&lt;h2&gt;Text To Speech  Converter (Last Words)&lt;/h2&gt;

&lt;p&gt;That’s it, you’ve now successfully built a Text To Speech Converter Project in native HTML, CSS, and JavaScript. &lt;/p&gt;

&lt;p&gt;If your code does not work or you have faced any problem/issue, try downloading the source files from the provided download button below. &lt;/p&gt;

&lt;p&gt;It’s priceless and a &lt;strong&gt;&lt;code&gt;.zip&lt;/code&gt;&lt;/strong&gt; file will be downloaded and then just extract it to your filemanager, server, etc.&lt;/p&gt;

&lt;center&gt;&lt;a href="https://gplinks.co/text-to-speech" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F6MyzmJa.png%3F1"&gt;&lt;/a&gt;&lt;/center&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Hosting A Website On RoyalityFree For Free</title>
      <dc:creator>RoyalityFree</dc:creator>
      <pubDate>Thu, 28 Oct 2021 06:13:28 +0000</pubDate>
      <link>https://dev.to/royalityfree/hosting-a-website-on-royality-free-for-free-1f5</link>
      <guid>https://dev.to/royalityfree/hosting-a-website-on-royality-free-for-free-1f5</guid>
      <description>&lt;p&gt;Firing up your website online is not that hard at all. In this article we will show how you can host a &lt;em&gt;little site&lt;/em&gt; for free using &lt;a href="https://royalityfree.com/"&gt;RoyalityFree&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;RoyalityFree has some great features that you can enjoy using, and in my personal experience it is one of the best hosting platforms you can get for free.&lt;/p&gt;

&lt;p&gt;So let's dig into the process of hosting a website there.&lt;br&gt;
&lt;/p&gt;

&lt;h4&gt;
  
  
  1. CREATE ACCOUNT OR LOG IN YOUR ACCOUNT
&lt;/h4&gt;

&lt;p&gt;There creating an account is an easy and straightforward process as shown in the following image:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dQMn7V9---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xrzz39et7ospg4p7swuv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dQMn7V9---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xrzz39et7ospg4p7swuv.png" alt="Image" width="379" height="599"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  2. Create a Hosting Account
&lt;/h4&gt;

&lt;p&gt;Here you can now create an account with the name of the website you want to host and not your details and you do so by clicking on the Create Account button.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  3. Use a Custom Domain or Subdomain Provided by RoyalityFree
&lt;/h4&gt;

&lt;p&gt;Here if you have your custom domain, you can enter it and change your nameservers in your domain providers to point to RoyalityFree. Need help with this? Check out this docs &lt;a href="https://forum.royalityfree.com/t/pointing-your-domain-to-royalityfree/17?u=admin"&gt;article&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;For custom domains, you would click on the Custom Domains tab, then enter your domain name and click &lt;b&gt;Search&lt;/b&gt; button.&lt;/p&gt;

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

&lt;p&gt;For the subdomains provided by RoyalityFree, click on the Subdomains tab and enter your preferred subdomain name.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  4. Simplifying management
&lt;/h4&gt;

&lt;p&gt;We all love to filter stuff in our day to day life. So we brought the account label to help you login to your account for the correct purpose :)&lt;/p&gt;

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

&lt;h4&gt;
  
  
  5. Manage your account
&lt;/h4&gt;

&lt;p&gt;After successful creation of your subdomain or domain, your account will appear with a button to manage it. Click on the &lt;b&gt;Manage&lt;/b&gt; button.&lt;/p&gt;

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

&lt;p&gt;Mine shows two accounts, that's because I have two accounts, yours may show one, if this is the first time.&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Upload Your Files
&lt;/h4&gt;

&lt;p&gt;Another window will open and a screen like this will open:&lt;/p&gt;

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

&lt;p&gt;Click on file manager and you will see a window like this, now go to &lt;code&gt;htdocs&lt;/code&gt; and upload your files there.&lt;/p&gt;

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

&lt;p&gt;Your uploaded files should appear there now.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  7. Creating Your Database
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;This is the most important part, some get stuck here.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;Click on Control Panel and it will open another tab&lt;/p&gt;

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

&lt;p&gt;Now click on MySQL Database which will open another window as shown below:&lt;/p&gt;

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

&lt;p&gt;Enter your database name and click Create Database.&lt;/p&gt;

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

&lt;p&gt;Your database will now appear in the current database. Click on admin button and another tab will open as shown below and from there you can start creating your tables or click on import tab and import your already created database.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Password's
&lt;/h4&gt;

&lt;p&gt;There is only one password across all databases, etc. You can find the all in one password in the client area.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>hosting</category>
      <category>freestuff</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
