<?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: Kern Designs</title>
    <description>The latest articles on DEV Community by Kern Designs (@kerndesigns).</description>
    <link>https://dev.to/kerndesigns</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%2F564813%2F329f013e-288d-46c4-9a6e-6eb7161f9d95.JPG</url>
      <title>DEV Community: Kern Designs</title>
      <link>https://dev.to/kerndesigns</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kerndesigns"/>
    <language>en</language>
    <item>
      <title>Getting Started with Vercel</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Mon, 14 Mar 2022 19:16:21 +0000</pubDate>
      <link>https://dev.to/kerndesigns/getting-started-with-vercel-1h7</link>
      <guid>https://dev.to/kerndesigns/getting-started-with-vercel-1h7</guid>
      <description>&lt;h1&gt;
  
  
  Vercel
&lt;/h1&gt;

&lt;p&gt;Vercel is a new technology, specifically a FaaS, that is growing fast. It's a platform used to host sites. Vercel is one of the easiest to learn and developers all over are falling in love.&lt;/p&gt;

&lt;h1&gt;
  
  
  Functions as a Service
&lt;/h1&gt;

&lt;p&gt;FaaS are a type of services that allow customers to focus on what they are interested in doing (normally managing application functionalities) without having to build or maintain infrastructure they don't know how to use and don't want to take the time to learn. Usually a FaaS is associated with developing and launching an app.&lt;/p&gt;

&lt;h1&gt;
  
  
  How to get started with Vercel
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Set up an Account&lt;br&gt;
On the &lt;a href="https://vercel.com/"&gt;Vercel Website&lt;/a&gt; select sign up or login.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Link your GitHub&lt;br&gt;
Use the &lt;code&gt;Continue with GitHub&lt;/code&gt; option to link your accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose a new project&lt;br&gt;
On the home page, you should see an option to make a new project. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select a repo to deploy&lt;br&gt;
You should see a list of options from your GitHub because you linked the two. Choose an updated repository to deploy it. I chose an 11ty site I had.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nqVKtZQg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l8rrrpnvyxzwa2fso8r3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nqVKtZQg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l8rrrpnvyxzwa2fso8r3.png" alt="Vercel Homepage" width="880" height="421"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure and Deploy&lt;br&gt;
Change anything you want to and select the &lt;code&gt;Deploy&lt;/code&gt; button.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Congrats!&lt;br&gt;
You should have a working project! It should not be on your dashboard. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uMye7IPf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o9aobcq9fdqnfkhlxo2w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uMye7IPf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o9aobcq9fdqnfkhlxo2w.png" alt="Dashboard" width="880" height="733"&gt;&lt;/a&gt;&lt;br&gt;
Clicking on it will give you more information.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jrxXW4Ve--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bmseys44pdc0o0h9elxc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jrxXW4Ve--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bmseys44pdc0o0h9elxc.png" alt="More Info" width="880" height="423"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  IST Vercel Demo
&lt;/h1&gt;

&lt;p&gt;Now that you understand the basics of Vercel, here is how I deployed it using the command line.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Clone Repo&lt;br&gt;
I chose this &lt;a href="https://github.com/btopro/ist-vercel-demo"&gt;repository&lt;/a&gt; online in order to help us.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set up the repositroy&lt;br&gt;
Use &lt;code&gt;npm install&lt;/code&gt; and &lt;code&gt;npm i -g vercel&lt;/code&gt; in order to install all the right dependencies. Start the project with &lt;code&gt;vercel dev&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Log into Vercel on the command line&lt;br&gt;
This will prompt you to ensure you're logged in. Your projects should now be linked.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Learn 11ty</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Mon, 28 Feb 2022 00:10:34 +0000</pubDate>
      <link>https://dev.to/kerndesigns/learn-11ty-19l8</link>
      <guid>https://dev.to/kerndesigns/learn-11ty-19l8</guid>
      <description>&lt;p&gt;Hello! Today were going to be learning 11ty! The intro tutorial can be found here &lt;a href="https://www.11ty.dev/docs/getting-started/"&gt;here&lt;/a&gt;. In order to do this, I created three different 11ty sites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hello World
&lt;/h2&gt;

&lt;p&gt;For this hello world site, I used the original tutorial. I added some blogposts to the site and linked them on new pages. Once I made my basic site and checked it on local host, I pushed my changes to &lt;a href="https://github.com/hvk5388/eleventy-sample"&gt;GitHub&lt;/a&gt;. If you do that you can then deploy them to GitHub pages by simply creating a &lt;code&gt;gh-pages&lt;/code&gt; branch. &lt;a href="https://docs.github.com/en/pages/quickstart"&gt;Here&lt;/a&gt; are some simple directions to create your website. You can find my website &lt;a href="https://hvk5388.github.io/eleventy-sample/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Base template
&lt;/h2&gt;

&lt;p&gt;In order to use a template, you should open the GitHub repository. I used &lt;a href="https://github.com/11ty/eleventy-base-blog"&gt;this&lt;/a&gt; basic one. Select &lt;code&gt;Use This Template&lt;/code&gt; and clone the repo to your machine. All you have to do then to add your information is input your posts as markdown. Here is my &lt;a href="https://github.com/hvk5388/11ty-base-blog"&gt;GitHub repo&lt;/a&gt; and my &lt;a href="https://hvk5388.github.io/11ty-base-blog/"&gt;sample site&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Second template
&lt;/h2&gt;

&lt;p&gt;One last example uses a template based off the original one, found &lt;a href="https://github.com/google/eleventy-high-performance-blog"&gt;here&lt;/a&gt;. Again, I used the template, cloned, and added my posts. Here is my &lt;a href="https://github.com/hvk5388/eleventy-high-performance-blog"&gt;GitHub repo&lt;/a&gt; and my &lt;a href="https://hvk5388.github.io/eleventy-high-performance-blog/"&gt;sample site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thanks for checking out these materials! Keep coding!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Create a DockerFile</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Tue, 22 Feb 2022 18:08:51 +0000</pubDate>
      <link>https://dev.to/kerndesigns/create-a-dockerfile-a6l</link>
      <guid>https://dev.to/kerndesigns/create-a-dockerfile-a6l</guid>
      <description>&lt;p&gt;So you're interested in Docker? You came to the right spot. Today I'm going through what it is, a video tutorial on how to get started, and a tutorial on how to create a DockerFile.&lt;/p&gt;

&lt;h1&gt;
  
  
  What is Docker
&lt;/h1&gt;

&lt;p&gt;Before you even install and try to run docker, you should probably understand what it is. Docker is a light-weight way of running a program through containers and microservices. Monolith Server Architecture is a thing of the past because we traditionally hosted resources in one environment. This made it versatile, but also heavy and very difficult to update changes. Microservices are used to split up tasks into specific operations. In the picture below, you can see all the small microservices one interface may be running on multiple machines. The whole functionality of a backend is now in thousands of containers all over the world.&lt;/p&gt;

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

&lt;h1&gt;
  
  
  Get started
&lt;/h1&gt;

&lt;p&gt;You can follow this &lt;a href="https://youtu.be/UOC5hksJoSM"&gt;tutorial&lt;/a&gt; to learn more about how to run docker on your browser. Remember when copying and pasting into docker you may have to use &lt;code&gt;ctrl&lt;/code&gt; &lt;code&gt;shift&lt;/code&gt; &lt;code&gt;p&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Create a DockerFile
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Run your GitHub repo in the &lt;a href="https://labs.play-with-docker.com/"&gt;docker playground&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;touch Dockerfile&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;code&gt;Editor&lt;/code&gt; to open the file system. You should see your file.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h_NUeax7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iq408hdikhprtv01uhxy.png" alt="Editor showing Dockerfile" width="880" height="416"&gt;
&lt;/li&gt;
&lt;li&gt;Double click on the Dockerfile in order to edit its contents.&lt;/li&gt;
&lt;li&gt;Paste in the basic information shown below.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# syntax=docker/dockerfile:1
FROM node:12-alpine
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;docker build -t getting-started .&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Start the app with &lt;code&gt;docker run -dp 3000:3000 getting-started&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Open &lt;a href="http://localhost:3000/"&gt;http://localhost:3000/&lt;/a&gt;. You should see a running app.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You now have a working Dockerfile! Congrats and keep coding!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>docker</category>
    </item>
    <item>
      <title>How to Create a GitHub Repository</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Thu, 17 Feb 2022 23:42:28 +0000</pubDate>
      <link>https://dev.to/kerndesigns/how-to-create-a-github-repository-1hod</link>
      <guid>https://dev.to/kerndesigns/how-to-create-a-github-repository-1hod</guid>
      <description>&lt;p&gt;GitHub is a wonderful tool for beginner programmers to learn how to use. It allows for saving code to the cloud and continuous integration. In order to use GitHub developers commit, or add, changes to code in a shared repository, or folder. This allows teams to work together and resolve issues early in the development process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create Repository
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Open GitHub in a Browser&lt;/strong&gt;&lt;br&gt;
Pull up GitHub &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Login or Create Account&lt;/strong&gt;&lt;br&gt;
If you are creating an account, remember to save your password!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Create a New Repo&lt;/strong&gt;&lt;br&gt;
Once you have successfully logged in, there will be a sidebar on the left of your screen. Click on the green &lt;code&gt;new&lt;/code&gt; button with the book label. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftiyurg8gq0xcj7a7aolr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftiyurg8gq0xcj7a7aolr.png" alt="Left Side Bar"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Follow the Steps to Add Basic Information&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Ensure &lt;code&gt;No template&lt;/code&gt; is selected.&lt;/em&gt; We are not using a template today, but you are welcome to experiment with this in the future. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Choose a repository name.&lt;/em&gt; This should be unique, which the site will tell you. You can also add a description to your repository. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Decide public or private&lt;/em&gt;. This is your personal preference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Select &lt;code&gt;Add a README file&lt;/code&gt;.&lt;/em&gt; This includes a blank initial file in your repository.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you are done select the green &lt;code&gt;create repository&lt;/code&gt; button. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvqqja334wvx27pyu20r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvqqja334wvx27pyu20r.png" alt="Basic Repository Creation"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Clone to Machine
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;5. Click the Green Code Button&lt;/strong&gt;&lt;br&gt;
At this point, your repository will have opened up. In order to get a copy on your own machine, select the green &lt;code&gt;code&lt;/code&gt; button in the top right corner.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhcytg99n0tsl7v32tti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhcytg99n0tsl7v32tti.png" alt="Repository Home"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Choose the Clone Option&lt;/strong&gt;&lt;br&gt;
Chose the copy link button under the &lt;code&gt;Clone&lt;/code&gt; section in order to get the repository copied to your clipboard.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flghro8vpelvzu755kq51.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flghro8vpelvzu755kq51.png" alt="Clone Button"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Open VS Code&lt;/strong&gt;&lt;br&gt;
Using VS code, which you can download and install &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;, editing code is much easier. Terminals are included in the IDE for easy access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Select &lt;code&gt;Clone Git Repository&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Select the clone git repository option on the hope page, under the start panel.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wqrru14g7aslcvt4xrr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wqrru14g7aslcvt4xrr.png" alt="VS Code Start Menu"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Paste in the Copied link&lt;/strong&gt;&lt;br&gt;
Paste in the link we copied from GitHub into the box that says &lt;code&gt;provide repository URL&lt;/code&gt;. Select Clone from URL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Select or Create folder&lt;/strong&gt;&lt;br&gt;
Choose where you want to locally find this code. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. Open Repository&lt;/strong&gt;&lt;br&gt;
Find a way to open the new cloned repository. There may be a popup on the right corner offering to open it. If you cannot find that you may select the &lt;code&gt;Open Folder&lt;/code&gt; option in the start menu.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F732x4vn2lj18ofmemlws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F732x4vn2lj18ofmemlws.png" alt="Open Repo Popup"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Make Changes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;12. Find README&lt;/strong&gt;&lt;br&gt;
Open the README file, which you should see in the left side bar. Clicking on it will open it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13. Edit the Code&lt;/strong&gt;&lt;br&gt;
Add your changes to the code. The README is written in markdown. I just added a description to the repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# helloworld&lt;/span&gt;

This is a repository for teaching GitHub basics.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;14. Save&lt;/strong&gt;&lt;br&gt;
Save your changes. You can also add more folders or files in any language. GitHub can handle it all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Save to Github
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;15. Open a Terminal&lt;/strong&gt;&lt;br&gt;
Hover over the &lt;code&gt;Terminal&lt;/code&gt; Header and select &lt;code&gt;New Terminal&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;16. Add Changes&lt;/strong&gt;&lt;br&gt;
Click into the terminal and type in the command &lt;code&gt;git add .&lt;/code&gt;. This will save your changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;17. Commit Changes&lt;/strong&gt;&lt;br&gt;
Use the command &lt;code&gt;git commit -m “added readme description”&lt;/code&gt; to commit your changes with a message. You can decide what you want to write inside the quotes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;18. Pull&lt;/strong&gt;&lt;br&gt;
Use the &lt;code&gt;git pull&lt;/code&gt; command before pushing your changes up to the GitHub. This ensure that any changes a teammate has made is in your local branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;19. Push&lt;/strong&gt;&lt;br&gt;
Run the &lt;code&gt;git push&lt;/code&gt; command. This will send any changes back to GitHub.&lt;/p&gt;

&lt;h2&gt;
  
  
  You did it!
&lt;/h2&gt;

&lt;p&gt;In order to check that your changes were saved you can head back to GitHub. You will see a time stamp and commit message on the file.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqd569i0e1hsm9k5udbg1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqd569i0e1hsm9k5udbg1.png" alt="Final Changes"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Learn How API's Work</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Mon, 31 Jan 2022 03:47:28 +0000</pubDate>
      <link>https://dev.to/kerndesigns/learn-how-apis-work-cgc</link>
      <guid>https://dev.to/kerndesigns/learn-how-apis-work-cgc</guid>
      <description>&lt;p&gt;API's are confusing. I barely understand them myself, but they are so useful. Outsourcing code can make your life so much easier. API's are very helpful in communicating with other services. Today I'm gong to go through what happens when you request from the &lt;a href="https://en.wikipedia.org/w/api.php"&gt;Wikipedia API&lt;/a&gt; with data from a locational API.&lt;/p&gt;

&lt;h1&gt;
  
  
  The request
&lt;/h1&gt;

&lt;p&gt;A fetch call is used to send a request to the locational API. This is so the API will help them retrieve data. In this example we fetch the location and IP address of of the user. The request code is shown below. You can see that the data is then saved as variables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;locationEndpoint&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;userIPData&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;})&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;latitude&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;long&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;longitude&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;city&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;city&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;region_name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lat&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;long&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Wikipedia API
&lt;/h1&gt;

&lt;p&gt;The Wikipedia API has many functions but we are using the query function. In this function the action of querying sends us the information that we are looking for. In our code we stored the response from the location in variables. We can use these variables as the search when we call the Wikipedia API.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;wikipedia&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;${this.city}, ${this.state}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/wikipedia-query&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;wikipedia&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;${this.city}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/wikipedia-query&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;wikipedia&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;${this.state}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/wikipedia-query&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once these are called in the page the response is displayed as a Wikipedia article if one exists. With the use of these two APIs and very little coding on our part we have a working program that displays an article specific to the user.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Install Docker On Windows OS</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Sat, 15 Jan 2022 22:22:51 +0000</pubDate>
      <link>https://dev.to/kerndesigns/how-to-install-docker-on-windows-os-ke0</link>
      <guid>https://dev.to/kerndesigns/how-to-install-docker-on-windows-os-ke0</guid>
      <description>&lt;p&gt;So you're getting started in web components. Maybe someone you know told you to work in docker. What does that mean? How do you even install it? What should you do with it? I'm going to walk you through an install with Windows 10. Then we'll talk about what to do with docker.&lt;/p&gt;

&lt;h1&gt;
  
  
  What is a container based system?
&lt;/h1&gt;

&lt;p&gt;Before you even install and try to run docker, you should probably understand what it is. Docker is a light-weight way of running a program through containers and microservices. Monolith Server Architecture is a thing of the past because we traditionally hosted resources in one environment. This made it versatile, but also heavy and very difficult to update changes. Microservices are used to split up tasks into specific operations. In the picture below, you can see all the small microservices one interface may be running on multiple machines. The whole functionality of a backend is now in thousands of containers all over the world.&lt;/p&gt;

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

&lt;p&gt;And now for the most important question...&lt;/p&gt;

&lt;h1&gt;
  
  
  Why a container based system?
&lt;/h1&gt;

&lt;p&gt;I could list some classic tech bull about "[insert new technology] is the future". The honest answer is docker is the best tool to run an app in any environment. This is because of the microservice architecture. You can have exactly same setup everywhere and quickly move the whole infrastructure. Containers can be spun up very quickly, which changes the way we look at tech.&lt;/p&gt;

&lt;h2&gt;
  
  
  1: Download Docker
&lt;/h2&gt;

&lt;p&gt;You can use this &lt;a href="https://www.docker.com/products/docker-desktop"&gt;link&lt;/a&gt; to download the desktop app. Like any other download once that is complete you should open it up.&lt;/p&gt;

&lt;h2&gt;
  
  
  2: Open Docker
&lt;/h2&gt;

&lt;p&gt;Upon opening it you're probably gonna have a ton of issues. Don't stress, its normal. As soon as it boots it will most likely tell you that you need to do things with the Linux kernel. It's unlikely you already have it and you need it in order to give docker the tooling that it needs. &lt;/p&gt;

&lt;h2&gt;
  
  
  3: Download the Linux kernel
&lt;/h2&gt;

&lt;p&gt;You should click the &lt;a href="https://docs.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package"&gt;link&lt;/a&gt; that it sends you in order to start the download.&lt;/p&gt;

&lt;h2&gt;
  
  
  4: Restart and open
&lt;/h2&gt;

&lt;p&gt;It should be walking you through this but after you download the Linux kernel, restart your computer. When you reboot you can open docker. If you did this right, you'll find a tutorial waiting for you. You are more then welcome to use theirs but after that I would try to finish this tutorial to really get a handle on the useful things docker can help with.&lt;/p&gt;

&lt;h2&gt;
  
  
  5: The Docker GitHub Crossover
&lt;/h2&gt;

&lt;p&gt;Marvel: 'Infinity War' Is The Most Ambitious Crossover Event In History&lt;br&gt;
Me: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f_-evUco--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j76tww2eo7xg7rljz0al.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f_-evUco--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j76tww2eo7xg7rljz0al.png" alt="Docker and GitHub" width="880" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In all seriousness docker is perfect for running your projects, but how does that happen? Patrick McDowell explains this in his &lt;a href="https://developer.okta.com/blog/2018/09/27/test-your-github-repositories-with-docker-in-five-minutes"&gt;article&lt;/a&gt; with a really helpful diagram.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CZenp-rv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wg13qs07jcqpye0hlbi2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CZenp-rv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wg13qs07jcqpye0hlbi2.png" alt="Docker and GitHub examples" width="880" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6: Create a Dev Environment
&lt;/h2&gt;

&lt;p&gt;To get started, open a new dev environment. You can find them under the Dev Environment tab on the left. Your screen should look like this.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  7: Link your repository
&lt;/h2&gt;

&lt;p&gt;Once you hit get started you can follow the directions to set it up. I am going to clone an already existing repository to get it running locally on my computer. Choose your repository and open it on GitHub. Below you can see how to get the link. Choose the green Code dropdown, click the SSH tab, and copy the link. You may have to set up an SSH key if you haven't or use the HTTPS link.&lt;/p&gt;

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

&lt;p&gt;On docker, input that link. You can see the example below. It may take a minute for docker to prepare it but trust me its much faster than other clones. You should get a success screen afterwards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5kzdWC-G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/39anrdefwo8iczjkquo7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5kzdWC-G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/39anrdefwo8iczjkquo7.png" alt="Docker screen with repo link" width="880" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8: Start Coding
&lt;/h2&gt;

&lt;p&gt;Now you should be all good to go and you can open this in VS Code. You may be prompted to add some extensions in in order to do this. No big deal, it should be helpful.&lt;/p&gt;

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

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

&lt;p&gt;Congrats you have successfully connected to a container! Keep coding!&lt;/p&gt;

</description>
      <category>docker</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Test Your Knowledge with Web Components</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Sun, 12 Dec 2021 22:05:56 +0000</pubDate>
      <link>https://dev.to/kerndesigns/test-your-knowledge-with-web-components-4991</link>
      <guid>https://dev.to/kerndesigns/test-your-knowledge-with-web-components-4991</guid>
      <description>&lt;h1&gt;
  
  
  The Project
&lt;/h1&gt;

&lt;p&gt;I've said it once and I'll say it again. Web components are the future because of their versatility. I recently set out to recreate a &lt;a href="https://h5p.org/flashcards#example=733"&gt;flashcard&lt;/a&gt; using web components and though I should keep you all updated on the journey. Here is the original flashcard compared with my recreation below.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--84bMSMaQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rt8u840obc56abssfo0j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--84bMSMaQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rt8u840obc56abssfo0j.png" alt="Original flashcard" width="880" height="1007"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XzlCxSOl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qtt8jbmd1cptzb2olkeu.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XzlCxSOl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qtt8jbmd1cptzb2olkeu.JPG" alt="Hannah's flashcard" width="880" height="983"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see they styling is the same, but the biggest difference is the ability to change with user input. In an attempt to allow the card to be used in &lt;a href="https://haxtheweb.org/"&gt;HAX&lt;/a&gt;, I added that functionality. Below you can see me editing the flashcard. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3ioRfJSB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ou39ggdrv9oga4grp7gb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3ioRfJSB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ou39ggdrv9oga4grp7gb.png" alt="The flashcard with editable properties" width="880" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mC_x36cy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jgxpxllwmg4o5xs4dtvf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mC_x36cy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jgxpxllwmg4o5xs4dtvf.png" alt="The same flashcard with different properties" width="880" height="584"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  The Process
&lt;/h1&gt;

&lt;p&gt;So while this may seem like an easy implementation, it took a decent amount of tooling and wiring. In order to make the editable menu options I added the properties into the user menu with the json code shown below. This adds the textbox into the menu.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"settings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"configure"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"property"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"front"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Flash-Card-Question"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The question that the user will be asked"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"inputMethod"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"textfield"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"property"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"back"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Flash-Card-Answer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The answer to the question"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"inputMethod"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"textfield"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now that the ability is there I have to add the functionality so that is actually changes something. This requires wiring them together. In the JavaScript file you have to create the properties. You can see them below as the front(question) and back(answer) in the properties block. In the render function you can see the divs with slot called. Because of the way this is wired you have to add the slot to a div for HAX to find it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;get&lt;/span&gt; &lt;span class="nx"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;inverted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Boolean&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;keyword&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;front&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;back&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;sideToShow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;reflect&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;attribute&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;side-to-show&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;  &lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;html&lt;/span&gt;&lt;span class="s2"&gt;`
      &amp;lt;krusty-image img-src="&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyword&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&amp;gt;&amp;lt;/krusty-image&amp;gt;
      &amp;lt;flash-card-body sideToShow='&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sideToShow&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;'&amp;gt;
      &amp;lt;slot slot="front" name="front"&amp;gt;&amp;lt;div slot="front"&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;front&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/div&amp;gt;&amp;lt;/slot&amp;gt;
      &amp;lt;slot slot="back" name="back"&amp;gt;&amp;lt;div slot="back"&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;back&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/div&amp;gt;&amp;lt;/slot&amp;gt;
      &amp;lt;/flash-card-body&amp;gt;
    `&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see this isn't terribly difficult but you do have to understand what is happening. If you want to see the whole project it is posted on &lt;a href="https://github.com/hvk5388/flash-card/tree/master"&gt;github&lt;/a&gt; and on &lt;a href="https://www.npmjs.com/package/@thekodingkrab/krusty-kard"&gt;npmjs&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>npm</category>
    </item>
    <item>
      <title>Contemplating Life</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Mon, 08 Nov 2021 01:18:30 +0000</pubDate>
      <link>https://dev.to/kerndesigns/contemplating-life-3k28</link>
      <guid>https://dev.to/kerndesigns/contemplating-life-3k28</guid>
      <description>&lt;p&gt;At some point you have to stop what you're doing and think about your life. This is something I like to do daily. What is my future? What do I want to do? Who do I want to work for? Do I want to work for anyone? The answer to these questions is that I don't have an answer, but that's okay. My future could be a lot of things.&lt;/p&gt;

&lt;h1&gt;
  
  
  Development
&lt;/h1&gt;

&lt;p&gt;One of my current front runners is working as a front end developer. My goal is to find a job where I can change lives through building a useful website. What does that mean? I would like to build usable websites. I want to improve lives. I envision my life working on an app or website to make the world a better place. And yes I recognize how cheesy that sounds.&lt;/p&gt;

&lt;h1&gt;
  
  
  What is the App
&lt;/h1&gt;

&lt;p&gt;Most industry jobs may pay well, but will they really help the world? What kind of website does this and how do I find it? I would love to help people by teaching them things that they cannot learn easily for free. Khan Academy started with a guy tutoring his niece on YouTube. Personally I have really enjoyed the tutorial videos I have made. If money were not a problem that seems like a great way to make an impact on people. &lt;/p&gt;

&lt;p&gt;By making tutorial videos I can share my skills. I can explain technology to people who want to learn. This can manifest itself through a YouTube channel, a website, or even an app. &lt;/p&gt;

&lt;p&gt;Overall I have no idea what I want to do, but that's the beauty of life. I have years to make decisions and change them and do it all over again. Nobody gets it right the first time around.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Slot Patrol</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Sun, 24 Oct 2021 23:55:31 +0000</pubDate>
      <link>https://dev.to/kerndesigns/slot-patrol-439e</link>
      <guid>https://dev.to/kerndesigns/slot-patrol-439e</guid>
      <description>&lt;p&gt;Web components are great for their flexibility and versatility. One thing that makes that possible is their ability to have slots. An HTML element allows us to create separate DOM trees and code them together into one element. Below you can see how the element contains both an emoji and a message.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w2ry1Ky3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fkzqolab0jpvpgiowb6w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w2ry1Ky3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fkzqolab0jpvpgiowb6w.png" alt="HTML DOM tree"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In an element that I have been recently creating, called the learning-card, that has multiple slots. I have to scaffold a banner (header, sub header, icon), a body, an icon and the overall scaffold into one element. You can see a picture of it below.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vCXHG65f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n7l7flditftseoamqvcg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vCXHG65f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n7l7flditftseoamqvcg.png" alt="Image description"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;In the banner render function you can see how the whole banner is defined in a div wrapper. Inside I call the icon and then scaffold in a header wrapper. There are two slots inside that to hold the header and sub header. This is a great example of how slots scaffold inside of a component.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;html&lt;/span&gt;&lt;span class="s2"&gt;`
      &amp;lt;div class="banner-wrapper"&amp;gt;
        &amp;lt;learning-icon type="&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&amp;gt;&amp;lt;/learning-icon&amp;gt;
        &amp;lt;div class="header-wrapper"&amp;gt;
          &amp;lt;slot name="header"&amp;gt;&amp;lt;/slot&amp;gt;
          &amp;lt;slot name="subheader"&amp;gt;&amp;lt;/slot&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    `&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This project is still growing but check out what I've done: &lt;a href="https://github.com/TheKodingKrab/project-two"&gt;https://github.com/TheKodingKrab/project-two&lt;/a&gt;. You can also learn about issues I've encountered in many of my other blogposts.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>css</category>
    </item>
    <item>
      <title>Web Component Considerations</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Sun, 10 Oct 2021 21:39:48 +0000</pubDate>
      <link>https://dev.to/kerndesigns/web-component-considerations-37nl</link>
      <guid>https://dev.to/kerndesigns/web-component-considerations-37nl</guid>
      <description>&lt;p&gt;I am working on a new project. Basically, I'm writing a web component that works as a car. There will be a header in a block, body, and an icon. When you are building a web component there are a lot of considerations to take into account, especially accessibility ones.&lt;/p&gt;

&lt;h1&gt;
  
  
  Design consideration
&lt;/h1&gt;

&lt;p&gt;When were designing you have to decide what you want the object to do. For this card I wanted to allow the user to customize it well. I want to allow for changing the header, background colors, icons, body content, and size. The body content should be able to have lists, links, and buttons.&lt;/p&gt;

&lt;h1&gt;
  
  
  Accessibility Concerns
&lt;/h1&gt;

&lt;p&gt;In order to account for non visual users it has to be accessible via keyboard. This means that any buttons inside of the card can be tabbed to. The icon needs alt-text so you know what the icon is. Any text inside should render for the screen reader as well as a translator for different languages. It also needs to support color contrast and dark modes for visually impaired users.&lt;/p&gt;

&lt;h1&gt;
  
  
  Expected Difficulties
&lt;/h1&gt;

&lt;p&gt;Even though I haven't done much with the card yet I can look forward to what I expect to happen. I don't think the changing of properties will be very hard. The title, color and body shouldn't be hard. Changing the button inside may come with complications, especially if we want it to be tabable. I am mostly concerned with the translations. I believe that will be difficult to do.&lt;/p&gt;

&lt;h1&gt;
  
  
  Helpful Skills
&lt;/h1&gt;

&lt;p&gt;Luckily, I have some experience in this area. I recently made a button and that was tabable. This should help with those problems in the case that they occur. I also have made dark modes for projects before and would love to implement that into the card.&lt;/p&gt;

&lt;p&gt;Thanks for reading! Follow along with the repository &lt;a href="https://github.com/TheKodingKrab/project-two"&gt;here&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>a11y</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Creating a Call to Action Button</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Thu, 23 Sep 2021 18:44:18 +0000</pubDate>
      <link>https://dev.to/kerndesigns/creating-a-call-to-action-button-3gga</link>
      <guid>https://dev.to/kerndesigns/creating-a-call-to-action-button-3gga</guid>
      <description>&lt;p&gt;I wrote a button web component. It's not perfect, but it's mine. As you know, I've been working on web components for a while now. Last week I started writing a new one. My goal for this project has been to get more comfortable with JavaScript and my abilities.&lt;/p&gt;

&lt;h1&gt;
  
  
  Issues
&lt;/h1&gt;

&lt;p&gt;One of the things I am continuously learning is Windows OS is awful. I'm a long time user and would normally say I love it but over the past few weeks it has been horrible. Yarn and Windows must be mortal enemies that decided to come together to make my life hell. They won. Yarn has been so difficult to use. I finally figured it out but I would not recommend mixing Windows and Yarn in the future.&lt;/p&gt;

&lt;h1&gt;
  
  
  Successes
&lt;/h1&gt;

&lt;p&gt;Good thing that happened - utilizing other elements and libraries actually was much easier than I remember! With like five lines of code there is now an icon in my button. That was so easy. I will definitely be doing that in the future. I also used different states of the button. This was also much easier than I thought it would be. The button can change when its active, disabled, hovered, and focused. Most of this was done through CSS although I did have to use JS for the disabled property. Overall, this button was a success! &lt;/p&gt;

&lt;p&gt;Here it is!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj52zfnm0ruywk6k9t6k8.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj52zfnm0ruywk6k9t6k8.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This has been a great experience for me to learn. I successfully feel much more confident and I have a working button! Keep your eyes peeled for it to be on npm, but for now check out my GitHub repo. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/hvk5388/cta-button/tree/main/hktb" rel="noopener noreferrer"&gt;https://github.com/hvk5388/cta-button/tree/main/hktb&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>webcomponents</category>
      <category>yarn</category>
    </item>
    <item>
      <title>Boilerplate Structure</title>
      <dc:creator>Kern Designs</dc:creator>
      <pubDate>Sun, 12 Sep 2021 22:23:58 +0000</pubDate>
      <link>https://dev.to/kerndesigns/boilerplate-structure-20ob</link>
      <guid>https://dev.to/kerndesigns/boilerplate-structure-20ob</guid>
      <description>&lt;p&gt;There are a lot of different options out there in terms of boilerplates. Everyone seems to be strongly in one camp or another, and if you're not in theirs, you're wrong. I decided to deep dive into what they are and their similarities and differences. To do this, I chose Vue.js, Angular, React, and StencilJS.&lt;/p&gt;

&lt;h1&gt;
  
  
  Commonalities
&lt;/h1&gt;

&lt;p&gt;So what commonalities are there between the boilerplate code? Each framework contains HTML, CSS, and JS in a source directory to run the boilerplate. Angular, React, and StencilJS also all include back end code you won't have to write yourself. Because of this, as well as all the dependencies, Angular and React will take a lot longer to install. This makes sense based on the amount of files.&lt;/p&gt;

&lt;h1&gt;
  
  
  So which is the easiest?
&lt;/h1&gt;

&lt;p&gt;Vue has the clearest file structure to understand, by far. This is mostly because of how few files in has in comparison. Unfortunately, Vue is not as well know as other technologies like React. This means you can find much more on the web to help you with it. If I was starting to build an "app" tomorrow, which would I use? I would go with React. I have a little experience with it as well as the knowledge of its resources. The scaling of React is going to be much easier because of the amount of development it has had.&lt;/p&gt;

&lt;p&gt;If you're interested in learning more about the structure check out &lt;a href="https://github.com/TheKodingKrab/boilerplates"&gt;https://github.com/TheKodingKrab/boilerplates&lt;/a&gt;. In this repo you can find Vue.js, Angular, React, and Stencil.js.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>vue</category>
      <category>angular</category>
      <category>react</category>
    </item>
  </channel>
</rss>
