<?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>Forem: Chris Sev</title>
    <description>The latest articles on Forem by Chris Sev (@chris__sev).</description>
    <link>https://forem.com/chris__sev</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%2F110862%2F6d32e018-671b-4d59-941f-dfe377523ab3.jpg</url>
      <title>Forem: Chris Sev</title>
      <link>https://forem.com/chris__sev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/chris__sev"/>
    <language>en</language>
    <item>
      <title>Hacktoberfest 2022!</title>
      <dc:creator>Chris Sev</dc:creator>
      <pubDate>Fri, 30 Sep 2022 22:29:19 +0000</pubDate>
      <link>https://forem.com/digitalocean/hacktoberfest-2022-48ni</link>
      <guid>https://forem.com/digitalocean/hacktoberfest-2022-48ni</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hacktoberfest 2022 is here!&lt;/strong&gt; Hacktoberfest is a month long celebration of Open Source, and I'm really excited about this year's Hacktoberfest. You can check out Hacktoberfest.com. We have this awesome new design that the team has put together.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FTGE4K17o7wS8jBLHW3Jn-18.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%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FTGE4K17o7wS8jBLHW3Jn-18.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Participate in Hacktoberfest
&lt;/h3&gt;

&lt;p&gt;Hacktoberfest is about open source and open source really does make the world go ‘round. This month we are dedicated to helping out open source. What do you have to do to participate in Hacktoberfest? To participate in Hacktoberfest, you just have to create 4 pull requests that are merged on public repos that are marked as Hacktoberfest repos.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To participate in Hacktoberfest, you just have to create 4 pull requests that are merged on public repos that are marked as Hacktoberfest repos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  What are the Hacktoberfest values?
&lt;/h3&gt;

&lt;p&gt;If you take a look at the Participation tab on Hacktoberfest.com, you can see the Hacktoberfest values:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Everyone is welcome&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Quantity is fun, but quality is key&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Short-term action, Long-term impact&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let’s make sure to put in some quality pull requests. We want to help out these repos that we are contributing to. The more we help out open source, the more impact the projects that we contribute to have on the world.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I participate?
&lt;/h3&gt;

&lt;p&gt;What do you have to do to participate? &lt;strong&gt;You can register between September 26 and October 31&lt;/strong&gt;. You can make pull requests on any GitHub or GitLab hosted project that's participating in Hacktoberfest. Make sure that they have the Hacktoberfest topic on that repo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FkLVuNnm4Xtu6tSdpSXw7-182.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%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FkLVuNnm4Xtu6tSdpSXw7-182.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project maintainers have to accept your pull or merge requests. You have to have 4 pull merge requests accepted between October 1 and October 31 to complete Hacktoberfest.&lt;/p&gt;

&lt;h3&gt;
  
  
  What do I get for participating in Hacktoberfest?
&lt;/h3&gt;

&lt;p&gt;In addition to helping out the open source community, the first 40,000 participants are eligible to get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A tree planted in their name&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Or the Hacktoberfest 2022 T-shirt&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to make a Pull Request on GitHub
&lt;/h2&gt;

&lt;p&gt;Let’s take a look at creating our first pull request. I will be using the Cloud Haiku repo. This is a repo we like to show off here at DigitalOcean. It’s a bunch of markdown files with haikus that people have created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2Fjm8qDQS8ZTAhhWdK7CrZ-167.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%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2Fjm8qDQS8ZTAhhWdK7CrZ-167.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's a great starting repo to create a pull request on. Now to start off, whenever you find a GitHub repo that you want to contribute to that you think is a fantastic, &lt;strong&gt;make sure that it has the “hacktoberfest” topic added to it.&lt;/strong&gt; Your contributions only count if the repo is labelled.&lt;/p&gt;

&lt;h3&gt;
  
  
  Always check for Contributing docs
&lt;/h3&gt;

&lt;p&gt;The number one thing that you need to do when you're contributing to open source projects is to see if there's any guide on contributing. You always want to make sure that your contributions to a project match what that project expects from you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using the Cloud Haiku Repo
&lt;/h3&gt;

&lt;p&gt;To contribute to this cloud haiku repo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;We need to work in markdown with an &lt;code&gt;.md&lt;/code&gt; file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name our file the name of our haiku&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Put our haiku in the &lt;code&gt;_haikus&lt;/code&gt; directory&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write in Jekyll format&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Writing our haiku
&lt;/h2&gt;

&lt;p&gt;Step one is to fork this repo. Forking this repo let’s us grab the code and add it to our own accounts so that we can make changes.&lt;/p&gt;

&lt;p&gt;I'm going to click fork. 2,000 people have already forked this. I'm going to click Fork and we're going to call it Cloud haiku. Select an owner. I'm going to do this to my personal GitHub account. Copy the main branch only. I'll create the fork here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2Fgs9V8dkEmNPxQ9TQAyAI-249.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%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2Fgs9V8dkEmNPxQ9TQAyAI-249.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you can see that this repo is in my account. Now that this repo is in our account, we can make changes because we have it.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to clone a repository
&lt;/h3&gt;

&lt;p&gt;Let's get this code locally on our computers so that we can make changes to it. I'm going to click “&lt;strong&gt;Code&lt;/strong&gt;” and there's three different ways to clone it. There's the:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;https URL&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SSH (what we’ll use)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub CLI&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm going to go ahead and use the SSH version. Any of these would work. I'm going to copy this and let's go open up my terminal. I'm going to type:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone git@github.com:chris-sev/cloud_haiku.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Editing the Code
&lt;/h3&gt;

&lt;p&gt;Now let's open up this repo in VS Code so that we can edit it, make some changes, and then finally create our pull request.&lt;/p&gt;

&lt;p&gt;Let's go ahead and open this in code using the VS Code terminal shortcut.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;code cloud_haiku
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;We’ll create a file in the &lt;code&gt;_haikus&lt;/code&gt; directory called &lt;code&gt;2022_my-code-doesnt-work.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FHQpF6Zv1RIYVcRKC3ufN-366.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%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FHQpF6Zv1RIYVcRKC3ufN-366.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we need that little code snippet from the GitHub repo in the contributing section. Let's go over to VS code and we'll add the topper section and also write in our Haiku.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---
layout: haiku
title: My Code Doesn't Work
author: Chris Sev
---

What is happening?
I typed it in correctly
My code does not work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Committing our new file with git
&lt;/h3&gt;

&lt;p&gt;I'm going to click save. Now we need to commit this with git so that our GitHub repo knows that this is the file that we just created. Let's open up our terminal. Type in &lt;code&gt;git status&lt;/code&gt; to see the file that we added needs to be staged.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FaIwzb1ikO7QUDp2vNxjC-435.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%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FaIwzb1ikO7QUDp2vNxjC-435.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What has changed is one untracked file and this is the file that we just created. I need to do two things. I need to stage this change and to do that I'm going to type:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;I'm going to put a period which says all the files that are changed, let's add those and stage those. Now let's type &lt;code&gt;git status&lt;/code&gt; and now changes to be committed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FdNDB4D8T6lB3dkXxizCU-461.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%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FdNDB4D8T6lB3dkXxizCU-461.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So this is the one file that we want to change and commit to this repo. We're saying we want this change to persist. Now I'm going to type:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m 'my cloud haiku'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and we're going to add a message with &lt;code&gt;-m&lt;/code&gt; and that's my message for what this commit is about.&lt;/p&gt;

&lt;p&gt;So that means we can push this up to our GitHub repo now. I'm going to type:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Now all of our code has moved up to GitHub.com.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating the Pull Request
&lt;/h2&gt;

&lt;p&gt;Let's go back over to the GitHub repo. There's a bunch of different ways to go create the pull request. We can go back to the original repo and then create it there. Or there's a nice handy little section in our repo. It will show us a &lt;strong&gt;Contribute&lt;/strong&gt; button and show how many commits ahead of the forked repo we are.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FG6WvbpRp1K23943OoIXQ-543.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%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FG6WvbpRp1K23943OoIXQ-543.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I can open this pull request from my forked repo and I'll click that to open a pull request. This sends us back to do-community/cloud_haiku.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FBiYGAeJsarJMrsjifAN1-573.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%2Fpub-982321b16d9741fb93d2e55ae15f51c8.r2.dev%2Fdemos%2FBiYGAeJsarJMrsjifAN1-573.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So any changes from this right here are getting brought over to the main cloud haiku main branch. This is how we can create code, write whatever we need to maybe fix some typos and then commit back to the original repo.&lt;/p&gt;

&lt;p&gt;Now we just wait for the maintainers to either provide some feedback or they can write a comment and then we'll get notifications on it or merge the pull request.&lt;/p&gt;

&lt;p&gt;That’s how you create a pull request!&lt;/p&gt;

&lt;h2&gt;
  
  
  Recap
&lt;/h2&gt;

&lt;p&gt;To recap, to create a pull request, you’ll need to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Fork the repo&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add your own changes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Commit and push your changes to your own repo&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create the pull request from your repo to the main repo&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'm really excited about Hacktoberfest 2022. I hope you are as well. I hope you get in some great pull requests, you contribute some fantastic projects, and let's make open source as a whole more impactful.&lt;/p&gt;

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

</description>
      <category>hacktoberfest</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Creating a CSS Animated Loading Card</title>
      <dc:creator>Chris Sev</dc:creator>
      <pubDate>Wed, 13 Jan 2021 21:33:30 +0000</pubDate>
      <link>https://forem.com/chris__sev/creating-a-css-animated-loading-card-5187</link>
      <guid>https://forem.com/chris__sev/creating-a-css-animated-loading-card-5187</guid>
      <description>&lt;p&gt;Loading animations are used to tell users that the site they want to see is on the way. Usually we'll see spinners, but we can take this a step further. &lt;/p&gt;

&lt;p&gt;Let's build out a card that has a loading animation to it. By creating a loading animation that looks similar to our final UI, the user will know what to expect when our page fully loads.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/p9AMmrxBzKw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The steps to create an animated loading card are to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a card&lt;/li&gt;
&lt;li&gt;Add a background to specific parts (image, text)&lt;/li&gt;
&lt;li&gt;Animate with a CSS Animation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here's the CodePen:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/chris__sev/embed/mdrzYQE?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technique: Background Animation
&lt;/h2&gt;

&lt;p&gt;We can build out a sample HTML/CSS card with the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"card is-loading"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"image"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using Sass, we can style out the base card:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nc"&gt;.card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;#fff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="nf"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="mi"&gt;.05&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="nc"&gt;.content&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt; &lt;span class="m"&gt;30px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The CSS Loading Animation
&lt;/h2&gt;

&lt;p&gt;Now we add a loading animation. This will be a CSS animation &lt;code&gt;@keyframes&lt;/code&gt; that will move the background to give it a shining effect.&lt;/p&gt;

&lt;p&gt;Here is the CSS animation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="k"&gt;@keyframes&lt;/span&gt; &lt;span class="nt"&gt;shine&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nt"&gt;to&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;background-position-x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-200%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is the &lt;code&gt;is-loading&lt;/code&gt; class that will add the backgrounds to the image, header, and paragraph.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nc"&gt;.card.is-loading&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nc"&gt;.image&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
  &lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
  &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;#eee&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;linear-gradient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;110deg&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;#ececec&lt;/span&gt; &lt;span class="m"&gt;8%&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;#f5f5f5&lt;/span&gt; &lt;span class="m"&gt;18%&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;#ececec&lt;/span&gt; &lt;span class="m"&gt;33%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;background-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200%&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;animation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="mi"&gt;.5s&lt;/span&gt; &lt;span class="n"&gt;shine&lt;/span&gt; &lt;span class="n"&gt;linear&lt;/span&gt; &lt;span class="n"&gt;infinite&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nc"&gt;.image&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-bottom-left-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-bottom-right-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;70px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important line here is the &lt;code&gt;animation&lt;/code&gt; line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nl"&gt;animation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="mi"&gt;.5s&lt;/span&gt; &lt;span class="n"&gt;shine&lt;/span&gt; &lt;span class="n"&gt;linear&lt;/span&gt; &lt;span class="n"&gt;infinite&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We are animating the background infinitely so that the gradient keeps moving across the element.&lt;/p&gt;

</description>
      <category>css</category>
      <category>animation</category>
      <category>loading</category>
    </item>
    <item>
      <title>My VS Code Setup for 2021! Theme, Font, Extensions, and Settings</title>
      <dc:creator>Chris Sev</dc:creator>
      <pubDate>Tue, 12 Jan 2021 23:16:06 +0000</pubDate>
      <link>https://forem.com/chris__sev/my-vs-code-setup-for-2021-theme-font-extensions-and-settings-55ha</link>
      <guid>https://forem.com/chris__sev/my-vs-code-setup-for-2021-theme-font-extensions-and-settings-55ha</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/6VOUka1zGvk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;My VS Code setup is something I change often. I often get asked about my setup, so here is all of the stuff I use! This will most likely be changed and tweaked over time as I search for my best setup. I encourage you to try new themes/fonts/extensions/settings and see what fits you best.&lt;/p&gt;

&lt;p&gt;Here's the VS Code theme, font, extensions, and main settings I'm using for 2021:&lt;/p&gt;

&lt;h2&gt;
  
  
  Theme
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://monokai.pro"&gt;Monokai Pro&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Favorite Fonts
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/microsoft/cascadia-code"&gt;Cascadia Code&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.typography.com/fonts/operator/styles"&gt;Operator Mono&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gumroad.com/l/dank-mono"&gt;Dank Mono&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/tonsky/FiraCode"&gt;Fira Code&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Extensions
&lt;/h2&gt;

&lt;p&gt;amVim&lt;br&gt;
Better Comments&lt;br&gt;
Bracket Pair Colorizer 2&lt;br&gt;
Color Highlight&lt;br&gt;
EditorConfig for VS Code&lt;br&gt;
ES7 React/Redux/GraphQL/React-Native Snippets&lt;br&gt;
ESLint&lt;br&gt;
Git Indicators&lt;br&gt;
Git Project Manager&lt;br&gt;
gitlink&lt;br&gt;
Highlight Matching Tag&lt;br&gt;
Import Cost&lt;br&gt;
JavaScript (ES6) code snippets&lt;br&gt;
laravel-blade&lt;br&gt;
Material Icon Theme&lt;br&gt;
Monokai Pro&lt;br&gt;
npm&lt;br&gt;
Path Intellisense&lt;br&gt;
Peacock&lt;br&gt;
Prettier- Code formatter&lt;br&gt;
Sublime Text Keymap and Settings Importer&lt;br&gt;
Tailwind CSS IntelliSense&lt;br&gt;
View Node Package&lt;br&gt;
Kite AI Code AutoComplete&lt;br&gt;
PHP Intelephense&lt;br&gt;
Vetur&lt;br&gt;
Vue Inline Template&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>uses</category>
      <category>setup</category>
    </item>
    <item>
      <title>Next.js Image Component - Automatic Image Optimization</title>
      <dc:creator>Chris Sev</dc:creator>
      <pubDate>Tue, 12 Jan 2021 23:08:25 +0000</pubDate>
      <link>https://forem.com/chris__sev/next-js-image-component-automatic-image-optimization-4m9f</link>
      <guid>https://forem.com/chris__sev/next-js-image-component-automatic-image-optimization-4m9f</guid>
      <description>&lt;p&gt;&lt;a href="https://nextjs.org/blog/next-10" rel="noopener noreferrer"&gt;Next.js 10&lt;/a&gt; came out recently and with it brought the &lt;a href="https://nextjs.org/docs/basic-features/image-optimization" rel="noopener noreferrer"&gt;Next.js Image Component&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/7fqKzvjQj94"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Next.js Image Component Features
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsjosf91t4alkne2hmprq.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%2Fi%2Fsjosf91t4alkne2hmprq.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The main features of the Next.js Image Component are that it requires very little configuration to immediately optimize our images.&lt;/p&gt;

&lt;p&gt;Main features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Image Optimization&lt;/strong&gt;: Deliver the right optimized image and format&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lazy loading&lt;/strong&gt;: An image will only load when it is within the viewport&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Resizing (srcset)&lt;/strong&gt;: Deliver the correct size image based on the browser size&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Image Optimization on-demand
&lt;/h3&gt;

&lt;p&gt;The cool thing about Next's Image Optimization is that it all happens when a user requests the page, not when we build our static sites.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Instead of optimizing images at build time, Next.js optimizes images on-demand, as users request them. Unlike static site generators and static-only solutions, your build times aren't increased, whether shipping 10 images or 10 million images.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  To Use the Next.js Image Component
&lt;/h2&gt;

&lt;p&gt;Replace your &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tags with the Next.js &lt;code&gt;&amp;lt;Image /&amp;gt;&lt;/code&gt; component. &lt;a href="https://nextjs.org/docs/api-reference/next/image" rel="noopener noreferrer"&gt;Required properties&lt;/a&gt; are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;src&lt;/li&gt;
&lt;li&gt;width&lt;/li&gt;
&lt;li&gt;height&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's say we have an image located in our Next.js project at &lt;code&gt;/public/images/mountains.jpg&lt;/code&gt;. Instead of having an &lt;a href="" class="article-body-image-wrapper"&gt;&lt;img&gt;&lt;/a&gt; tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"/images/mountains.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace with the Next.js Image 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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Image&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/image&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Home&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Image&lt;/span&gt; 
      &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/images/mountains.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; 
      &lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1920&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; 
      &lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1080&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Our image will be optimized and will be a smaller size.&lt;/p&gt;

&lt;h2&gt;
  
  
  Delivering Resized Images
&lt;/h2&gt;

&lt;p&gt;To deliver a Next.js Image Component with a resized image, add a &lt;code&gt;layout&lt;/code&gt; property to your 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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Image&lt;/span&gt; 
  &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/images/mountains.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; 
  &lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1920&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; 
  &lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1080&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="nx"&gt;layout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;responsive&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see even smaller file sizes now.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>nextjs</category>
      <category>imageoptimization</category>
    </item>
    <item>
      <title>One Time Secret App: Hackathon Submission</title>
      <dc:creator>Chris Sev</dc:creator>
      <pubDate>Fri, 08 Jan 2021 21:19:40 +0000</pubDate>
      <link>https://forem.com/chris__sev/one-time-secret-app-hackathon-submission-55f</link>
      <guid>https://forem.com/chris__sev/one-time-secret-app-hackathon-submission-55f</guid>
      <description>&lt;h2&gt;
  
  
  What we built
&lt;/h2&gt;

&lt;p&gt;My fellow DigitalOcean Dev Advocate, &lt;a href="https://twitter.com/masonegger" rel="noopener noreferrer"&gt;Mason Egger&lt;/a&gt; and I built a &lt;a href="https://onetimesecret.com" rel="noopener noreferrer"&gt;onetimesecret.com&lt;/a&gt; clone. You can share secrets with your friends that are secure and disappear after they are read!&lt;/p&gt;

&lt;h3&gt;
  
  
  Category Submission:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkaku0ncrg7xtv6xw39qt.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%2Fi%2Fkaku0ncrg7xtv6xw39qt.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fd1dk4nz4hmc8w3xc68nk.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%2Fi%2Fd1dk4nz4hmc8w3xc68nk.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Random Roulette&lt;/p&gt;

&lt;h3&gt;
  
  
  App Link
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://python-ots-app-8p2lv.ondigitalocean.app/" rel="noopener noreferrer"&gt;https://python-ots-app-8p2lv.ondigitalocean.app/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;A one time secret app is a tool for sending sensitive information to people. The tool ensures that the secret can only be viewed one time and will expire after a certain amount of time if not read. The tool takes a secret and a passphrase from one user and stores that secret in the database. A user trying to access this secret will need the passphrase as well as the unique ID that is generated by the API to retrieve the passphrase. Once the secret is read it is removed from the database. If a user doesn’t read the secret within a given period of time (7 days by default) the system will automatically purge the secret from the database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Source Code
&lt;/h3&gt;

&lt;p&gt;Python API - &lt;a href="https://github.com/do-community/python-ots-api" rel="noopener noreferrer"&gt;https://github.com/do-community/python-ots-api&lt;/a&gt; &lt;br&gt;
React Frontend - &lt;a href="https://github.com/do-community/one-time-secret-frontend" rel="noopener noreferrer"&gt;https://github.com/do-community/one-time-secret-frontend&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;p&gt;BSD 3 Clause&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;(What made you decide to build this particular app? What inspired you?)&lt;/p&gt;

&lt;p&gt;This app was inspired by a similar app that I had used in college when resetting people’s passwords for them. I realized that the use case for being able to send a secret once is very valuable so I decided to build an app to do  just that.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I built it
&lt;/h3&gt;

&lt;p&gt;(How did you utilize DigitalOcean’s App Platform? Did you learn something new along the way? Pick up a new skill?)&lt;/p&gt;

&lt;p&gt;The API uses DigitalOcean’s App Platform to deploy the service but also uses the Database as a Service offering to provide us with managed Redis for our database. &lt;/p&gt;

&lt;h4&gt;
  
  
  API
&lt;/h4&gt;

&lt;p&gt;The API is built using the Flask Web Framework (Python) connected to a Redis database. This API has only two calls, one for creating the secret and one for reading the secret. Flask was a good choice for this application as it needs no login, is relatively small, and interacts with Redis. My litmus test for “Should I use Flask or Django” boils down to “Do I need authentication? Do I need a database?” If I say yes to either of those two I tend to use Django. While this app does need a database, all we need to store is the passphrase and a secret associated with it. This is a perfect use case for using Redis as a key value store. Using the &lt;code&gt;cryptography&lt;/code&gt; library I was able to create an encryption key based off of the passphrase for the secret that is sent. I then take the hash of this passphrase and use that as the key for the encrypted text in the Redis database. This way if the database were to be compromised the data would be relatively safe. Since hashes are a one way function it is highly improbable that someone could get the passphrase out of the key and use it to decrypt the message. The API also generates a UUID for each message so a passphrase can be used by multiple people and not have collisions. As for the expiration time Redis already has us covered. I can set the expiration time when I add the secret to the database and Redis will handle the deletion for me. No extra code needed!&lt;/p&gt;

&lt;p&gt;So when a user is ready to retrieve their secret they pass in the ID and the passphrase to the API. The API then hashes the passphrase and does a lookup on the database to see if that ID is in the database. If it is it will then compute the hash of the passphrase and validate that it is indeed the same. Finally it will use the passphrase to decrypt and return the message to the user and delete the secret from the database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;p&gt;The frontend is built with React and styled with Tailwind. It is split into two different React components:&lt;/p&gt;

&lt;p&gt;Create a Secret &lt;br&gt;
Show a Secret&lt;/p&gt;

&lt;p&gt;We’re using the useState hooks to take care of our form data. Once a form is submitted, we go ahead and make a POST request to the backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;It was a ton of fun to join the hackathon. We were able to stream on Twitch while we built this also.&lt;/p&gt;

</description>
      <category>dohackathon</category>
    </item>
    <item>
      <title>I procrastinated. Coding frenzy incoming</title>
      <dc:creator>Chris Sev</dc:creator>
      <pubDate>Tue, 05 Jan 2021 17:17:40 +0000</pubDate>
      <link>https://forem.com/chris__sev/i-procrastinated-coding-frenzy-incoming-3amc</link>
      <guid>https://forem.com/chris__sev/i-procrastinated-coding-frenzy-incoming-3amc</guid>
      <description>&lt;p&gt;The &lt;a href="https://dev.to/devteam/announcing-the-digitalocean-app-platform-hackathon-on-dev-2i1k"&gt;DEV + DigitalOcean Hackathon&lt;/a&gt; started on December 10.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's the last week to join the hackathon!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I had &lt;a href="https://dev.to/chris__sev/i-m-joining-the-dev-hackathon-here-s-what-i-m-going-to-build-10jn"&gt;lofty goals&lt;/a&gt; of the things I wanted to build. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personal Site&lt;/li&gt;
&lt;li&gt;Wedding Site&lt;/li&gt;
&lt;li&gt;URL Shortener App&lt;/li&gt;
&lt;li&gt;One Time Secret App&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This post is me saying to the world that I am still going to build all these things!&lt;/p&gt;

&lt;p&gt;Procrastination can happen due to the holidays and the new year. Not anymore!&lt;/p&gt;

&lt;p&gt;I'll be building this all on my &lt;a href="https://twitch.tv/chrisgetsbetter"&gt;Twitch&lt;/a&gt;. Join me there for the next few days.&lt;/p&gt;

</description>
      <category>dohackathon</category>
    </item>
    <item>
      <title>5 Awesome DEV Hackathon Submissions</title>
      <dc:creator>Chris Sev</dc:creator>
      <pubDate>Wed, 23 Dec 2020 21:35:26 +0000</pubDate>
      <link>https://forem.com/chris__sev/5-awesome-dev-hackathon-submissions-2bjj</link>
      <guid>https://forem.com/chris__sev/5-awesome-dev-hackathon-submissions-2bjj</guid>
      <description>&lt;p&gt;THe DEV + DigitalOcean App Platform Hackathon is in full swing (Dec 10 - Jan 10).&lt;/p&gt;

&lt;p&gt;I've seen lots of amazing people getting involved and some fun submissions. Here's 5 submissions I've found awesome so far:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Random Potato Mood Generator by &lt;a href="https://dev.to/dawntraoz"&gt;Alba Silvente 💃🏼&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This project uses Nuxt and Tailwind. I want to play around with Nuxt more after seeing this.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/dawntraoz" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EB72Bnsd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--b7I8gGe---/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/369146/c575f3b5-6df7-4799-aafc-8081e3e52783.jpg" alt="dawntraoz image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/dawntraoz/random-potato-mood-generator-using-nuxt-and-tailwindcss-26f4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Random potato mood generator using Nuxt and TailwindCSS&lt;/h2&gt;
      &lt;h3&gt;Alba Silvente 💃🏼 ・ Dec 22 '20 ・ 6 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#nuxt&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#vue&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dohackathon&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#jest&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yZk46M1d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3riyareu7zkbg2xztni9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yZk46M1d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3riyareu7zkbg2xztni9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Color Game by &lt;a href="https://dev.to/boiliev"&gt;Bo Iliev&lt;/a&gt;
&lt;/h2&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/boiliev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vw6akzRS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--TfbJjlyq--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/473176/86d22485-7346-4df6-962d-058a1f52f661.jpeg" alt="boiliev image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/boiliev/color-game-a-do-hackathon-submission-1bd5" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Color Game - A DO Hackathon Submission&lt;/h2&gt;
      &lt;h3&gt;bo-iliev ・ Dec 16 '20 ・ 1 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#dohackathon&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UEM0E-mA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cnw6x8t9o2ypnj90c50n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UEM0E-mA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cnw6x8t9o2ypnj90c50n.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. McBroken Dashboard by &lt;a href="https://dev.to/circa10a"&gt;Caleb Lemoine&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;An app to show you all the broken McDonald's Ice Cream Machines in the US. Amazing!&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/circa10a" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nvoQGz-V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--rWcThvMx--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/315518/8d842906-2c75-495f-8926-d54c508e0a4e.jpg" alt="circa10a image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/circa10a/the-mcbroken-dashboard-1eij" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;The mcbroken dashboard - digitalocean hackathon entry&lt;/h2&gt;
      &lt;h3&gt;Caleb Lemoine ・ Dec 21 '20 ・ 2 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#dohackathon&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#monitoring&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cloud&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j_KIreQ3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1vr5vc2170ynebh46cv6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j_KIreQ3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1vr5vc2170ynebh46cv6.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Landing Laravel by &lt;a href="https://dev.to/erikaheidi"&gt;Erika Heidi&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I adore Laravel so it's good to see some Laravel submissions!&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/erikaheidi" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i6eXk8o4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--95Vsc3-S--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/162988/b604f249-a248-4582-80e3-4a781d054e3f.jpeg" alt="erikaheidi image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/erikaheidi/landing-laravel-my-submission-to-the-digitalocean-app-platform-hackaton-20l" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Landing Laravel - my submission to the DigitalOcean App Platform Hackaton&lt;/h2&gt;
      &lt;h3&gt;Erika Heidi ・ Dec 23 '20 ・ 2 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#dohackathon&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#laravel&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#php&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SrY96jyt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3kitzqpjxjbdofbz9smr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SrY96jyt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3kitzqpjxjbdofbz9smr.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Gitalitycs by &lt;a href="https://dev.to/shhdharmen"&gt;Dharmen Shah&lt;/a&gt;
&lt;/h2&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/shhdharmen" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RY6JC3bP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--qlWNaGYF--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/164909/90c6e041-14a7-4362-b0d1-7cc4c579d2dc.png" alt="shhdharmen image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/shhdharmen/gitalytics-a-simple-overview-of-github-activities-ohd" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Gitalytics - A simple overview of Github activities&lt;/h2&gt;
      &lt;h3&gt;Dharmen Shah ・ Dec 16 '20 ・ 1 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#dohackathon&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This only scratches the surface of the great submissions. Be sure to join the DEV Hackathon! Excited to see what else you all make!&lt;/p&gt;

</description>
      <category>dohackathon</category>
      <category>hackathon</category>
    </item>
    <item>
      <title>I'm joining the DEV hackathon! Here's what I'm going to build </title>
      <dc:creator>Chris Sev</dc:creator>
      <pubDate>Mon, 14 Dec 2020 18:19:42 +0000</pubDate>
      <link>https://forem.com/chris__sev/i-m-joining-the-dev-hackathon-here-s-what-i-m-going-to-build-10jn</link>
      <guid>https://forem.com/chris__sev/i-m-joining-the-dev-hackathon-here-s-what-i-m-going-to-build-10jn</guid>
      <description>&lt;p&gt;We're running a &lt;a href="https://dev.to/devteam/announcing-the-digitalocean-app-platform-hackathon-on-dev-2i1k"&gt;hackathon with DEV and DigitalOcean&lt;/a&gt; for December 10 - January 10. This is a great opportunity to force ourselves to build the projects we've been wanting to build.&lt;/p&gt;

&lt;p&gt;I'll be spending this hackathon building and &lt;a href="https://twitter.com/chrisgetsbetter"&gt;streaming on Twitch&lt;/a&gt;. Here's the things I want to build:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personal Site/Portfolio (Blog)&lt;/li&gt;
&lt;li&gt;New Side Project Site (Blog)&lt;/li&gt;
&lt;li&gt;Vue URL Shortener (App)&lt;/li&gt;
&lt;li&gt;Wedding Site for me and &lt;a href="https://twitter.com/kapehe_ok"&gt;Kapehe's&lt;/a&gt; upcoming marriage! (Site)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Join me in building some fun stuff to close out the year! You can always chat with me on &lt;a href="https://twitter.com/chriscreates100"&gt;Twitter&lt;/a&gt; and find me streaming on &lt;a href="https://twitch.tv/chrisgetsbetter"&gt;Twitch&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying to DigitalOcean App Platform
&lt;/h2&gt;

&lt;p&gt;All of these apps will be deployed to &lt;a href="https://do.co/chris"&gt;DigitalOcean's App Platform&lt;/a&gt;. The cool thing about App Platform is that we can deploy a backend (API or CMS), a database, and a frontend (React/Vue) all in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deeper Dive into the Apps
&lt;/h2&gt;

&lt;p&gt;Let's take a deeper dive into how I'll be building each of these.&lt;/p&gt;

&lt;h3&gt;
  
  
  Building Blogs/Sites
&lt;/h3&gt;

&lt;p&gt;To build the personal site, side project site, and wedding site, I'll need a frontend tool that I'm comfortable with. I'll be using &lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt; and more specifically &lt;a href="https://nextjs.org/"&gt;Next.js&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I've done some research building out App Platform projects with Strapi and Next.js and also with &lt;a href="https://youtu.be/1T3d7P_V2t4"&gt;Laravel and React&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Vue URL Shortener
&lt;/h3&gt;

&lt;p&gt;I'll be using a Django API and Vue for the frontend. I'm using Vue here to switch things up and try something that isn't React. A hackathon is a great place to try out new technologies!&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's Build
&lt;/h2&gt;

&lt;p&gt;Lots of fun to happen in December and I'm excited I finally get to finish out some projects I've wanted to do for a while now. Join me by &lt;a href="https://dev.to/devteam/announcing-the-digitalocean-app-platform-hackathon-on-dev-2i1k"&gt;checking out the hackathon&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>javascript</category>
      <category>dohackathon</category>
    </item>
    <item>
      <title>Animating Your VS Code Cursor w/ Cursor Blinking</title>
      <dc:creator>Chris Sev</dc:creator>
      <pubDate>Mon, 31 Aug 2020 19:11:57 +0000</pubDate>
      <link>https://forem.com/chris__sev/animating-your-vs-code-cursor-w-cursor-blinking-1p30</link>
      <guid>https://forem.com/chris__sev/animating-your-vs-code-cursor-w-cursor-blinking-1p30</guid>
      <description>&lt;p&gt;The  &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;VS Code&lt;/a&gt;  settings are packed to the brim with fun hidden gems. &lt;strong&gt;Cursor Blinking&lt;/strong&gt; is one of those settings. &lt;/p&gt;

&lt;p&gt;The Cursor Blinking VS Code setting allows us to display our cursor as an animated version of itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use VS Code's Cursor Blinking Setting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open VS Code settings: &lt;code&gt;cmd + ,&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Search for &lt;strong&gt;Cursor Blinking&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are five settings that you can use on Cursor Blinking:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;blink&lt;/li&gt;
&lt;li&gt;smooth&lt;/li&gt;
&lt;li&gt;phase&lt;/li&gt;
&lt;li&gt;expand&lt;/li&gt;
&lt;li&gt;solid&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598895770559%2FQkOkX43yF.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598895770559%2FQkOkX43yF.png" alt="CleanShot 2020-08-31 at 10.40.16@2x.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Seeing Cursor Blinking in Action
&lt;/h2&gt;

&lt;p&gt;Here's the different ways and looks of our cursor:&lt;/p&gt;

&lt;h3&gt;
  
  
  blink
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896788356%2FOPWOlYu-h.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896788356%2FOPWOlYu-h.gif" alt="blink.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  smooth
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896798964%2FuUKkbnwzE.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896798964%2FuUKkbnwzE.gif" alt="smooth.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  phase
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896806537%2FkIy1LiU3y.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896806537%2FkIy1LiU3y.gif" alt="phase.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  expand
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896814528%2FzHTpqERwC.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896814528%2FzHTpqERwC.gif" alt="expand.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  solid
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896821357%2F3cMv350g5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1598896821357%2F3cMv350g5.gif" alt="solid.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I'm really liking &lt;code&gt;expand&lt;/code&gt; although it may get a little annoying after some time. &lt;code&gt;smooth&lt;/code&gt; and &lt;code&gt;phase&lt;/code&gt; seem to be great daily drivers since they are fun but not too intrusive.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
