<?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: Andrew Burch</title>
    <description>The latest articles on DEV Community by Andrew Burch (@codemonster240).</description>
    <link>https://dev.to/codemonster240</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%2F2588302%2F768453b0-ac1d-4e46-b9da-fa10eaf6d1d6.jpg</url>
      <title>DEV Community: Andrew Burch</title>
      <link>https://dev.to/codemonster240</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codemonster240"/>
    <language>en</language>
    <item>
      <title>SnarkyType is unhinged... (even from a development standpoint)</title>
      <dc:creator>Andrew Burch</dc:creator>
      <pubDate>Mon, 05 Jan 2026 20:42:06 +0000</pubDate>
      <link>https://dev.to/codemonster240/snarkytype-is-unhinged-even-from-a-development-standpoint-5afk</link>
      <guid>https://dev.to/codemonster240/snarkytype-is-unhinged-even-from-a-development-standpoint-5afk</guid>
      <description>&lt;p&gt;This is my third post about this dumb project.&lt;br&gt;
Before I yap about my life, you need to know the history behind this project.&lt;/p&gt;

&lt;p&gt;I grew up in a city that doesn't have typing in its curriculum, so my typing speed was pretty trash. However, because I am a developer, 40 WPM wasn't going to cut it, so I turned to a few typing tutors and &lt;a href="https://Monkeytype.com" rel="noopener noreferrer"&gt;Monkeytype&lt;/a&gt;, which increased my average WPM to 100.&lt;/p&gt;

&lt;p&gt;Two years later, as I was playing around, I suddenly got an idea. Learning to type fast was cool, but it quickly got boring, especially with the repetition. It was at this point that I had an epiphany! I instantly got to work, building this new typing test. I called it SnarkyType.&lt;/p&gt;

&lt;p&gt;Eight months of development later, I am starting to feel the repercussions of my project. I over engineered it. I built accounts (I'm a frontend developer) and a whole bunch of overcomplicated things. All of this while having a full time job.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Project Update
&lt;/h2&gt;

&lt;p&gt;I know you guys (probably all bots 😢) don't really care about me, just my website, So I will give you guys an update as well as an insider beta preview!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://Snarkytype.net" rel="noopener noreferrer"&gt;Snarkytype&lt;/a&gt; is a typing tutor, similar to the likes of Monkeytype and &lt;a href="https://typing.com" rel="noopener noreferrer"&gt;Typing.com&lt;/a&gt;, is a typing test. Duh. But, there's a twist. Instead of just results, it includes a roast designed to flame you until you type fast 🔥. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"SnarkyType’s snarky comments stop mid-sentence when Chuck Norris starts typing".&lt;br&gt;
 But chances are, you are not Chuck Norris.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;SnarkyType uses an advanced AI (what? everyone else is calling their stuff AI!) algorithm to determine how bad your roast is. Most of the roasts are made by our team, but sometimes we call in &lt;a href="https://grok.com" rel="noopener noreferrer"&gt;Grok&lt;/a&gt; to help us. When you take a test, your WPM and accuracy are sent to the server (DONT TRY TO CHEAT OR ELSE), and our backend takes care of the fetch and templating for the roast. In case you were wondering, our backend runs on &lt;a href="https://expressjs.com/" rel="noopener noreferrer"&gt;ExpressJS&lt;/a&gt; and we do not use cloud computing.&lt;/p&gt;

&lt;p&gt;As of now, we have put an indefinite hold on some of the game ideas pitched by us at the beginning, as well as some other stuff we've promised. Sorry! However, we &lt;strong&gt;DO&lt;/strong&gt; have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The base typing test ⌨&lt;/li&gt;
&lt;li&gt;Accounts and user auth 🧑‍🦲&lt;/li&gt;
&lt;li&gt;EJS templating engine ⚙&lt;/li&gt;
&lt;li&gt;Snarky Feedback 👿&lt;/li&gt;
&lt;li&gt;Friend requests and friend system 🧑‍🤝‍🧑&lt;/li&gt;
&lt;li&gt;Dashboard and account settings&lt;/li&gt;
&lt;li&gt;Public user profiles and routing 😭&lt;/li&gt;
&lt;li&gt;Anticheat 🦹&lt;/li&gt;
&lt;li&gt;Email signup (I'm too lazy for Google and SSO) ✉&lt;/li&gt;
&lt;li&gt;Support. Email us at &lt;a href="mailto:support@snarkytype.net"&gt;support@snarkytype.net&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There you have it. The latest update. While we don't have an &lt;em&gt;exact&lt;/em&gt; release date, we set it at around the end of January 2026. More updates to come!&lt;/p&gt;

&lt;p&gt;What do you guys think of my stupid project? Is it good? Bad? I literally vibe coded most of it at 3am (kidding), so it's not going to be the best.&lt;/p&gt;

&lt;p&gt;AND NO, I AM NOT GOING TO PUT AN AI CHATBOT ON IT. THE AI CRAZE IS OVER HYPED.&lt;/p&gt;

&lt;p&gt;Image Gallery&lt;br&gt;
&lt;a href="https://media2.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%2F1q9zdv8yk0mw8lz5y3t7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F1q9zdv8yk0mw8lz5y3t7.png" alt="Account Settings" width="800" height="377"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.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%2Fxs8k584naaxc68fup3dp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fxs8k584naaxc68fup3dp.png" alt="Dashboard" width="800" height="377"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.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%2F36xi8pit1scqe4smxm98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F36xi8pit1scqe4smxm98.png" alt="Index Page" width="800" height="377"&gt;&lt;/a&gt;&lt;br&gt;
Image note: UI and functionality subject to change at any time. Don't get too excited!&lt;/p&gt;

&lt;p&gt;I've attached a simple, OLD version of the Beta so you guys can take a peek. &lt;strong&gt;Your data may be deleted or leaked at any time, as our database infrastructure is developing. Please do not put your real email, name, or age.&lt;/strong&gt; It's old because I'm not about to show you guys the latest and greatest version, so it nerfed it a bit 😁&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://www.burchweb.com/snarky-beta/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fburchweb-files.sirv.com%2FSnarkyType%2Ffavicon.ico" height="32" class="m-0" width="32"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://www.burchweb.com/snarky-beta/" rel="noopener noreferrer" class="c-link"&gt;
            SnarkyType - Type fast or get roasted
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            SnarkyType is the ultimate typing test with a twist — type fast or get roasted!
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fburchweb-files.sirv.com%2FSnarkyType%2Ffavicon.ico%3Fcanvas.width%3D48%26canvas.height%3D48%26w%3D48%26h%3D48" width="32" height="32"&gt;
          burchweb.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>website</category>
    </item>
    <item>
      <title>SnarkyType, the Snarkier Way to Type gets better?</title>
      <dc:creator>Andrew Burch</dc:creator>
      <pubDate>Tue, 28 Oct 2025 12:34:40 +0000</pubDate>
      <link>https://dev.to/codemonster240/snarkytype-the-snarkier-way-to-type-gets-better-1hcn</link>
      <guid>https://dev.to/codemonster240/snarkytype-the-snarkier-way-to-type-gets-better-1hcn</guid>
      <description>&lt;p&gt;&lt;strong&gt;A long time ago&lt;/strong&gt;, I had AI write me a blog post about my progress on SnarkyType because I never thought that I would finish it. Back then, SnarkyType was in Alpha, so it was kinda boring. But, I have NOT given up, mind you, and here's a BETA check in on what's happening!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;@superskibidisigma67 (and everyone else), No. I do not have a release date yet but I hope to get it out by Nov. 13, 2025&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well, y'all are in for a treat, 'cause today, I'm going to show you a behind-the-scenes look at it.&lt;/p&gt;

&lt;p&gt;SnarkyType runs on the following frameworks: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;NodeJS (cause duh)&lt;/li&gt;
&lt;li&gt;ExpressJS (cause I'm a noob at backend)&lt;/li&gt;
&lt;li&gt;React (only for dev; I'm not sure if it will be on official release)&lt;/li&gt;
&lt;li&gt;SQLite Database&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;BUT FIRST, If you don't know about SnarkyType yet, then read this first&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is SnarkyType
&lt;/h2&gt;

&lt;p&gt;SnarkyType is a Snarkier way to learn how to type (and more fun). With a totally legit real not just JSON API AI, you get snarky responses tailored to YOUR WPM. If you type like&lt;br&gt;
&lt;a href="https://media2.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%2F9ve6b98pcobffvf1ex0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F9ve6b98pcobffvf1ex0a.png" alt=" " width="800" height="33"&gt;&lt;/a&gt;&lt;br&gt;
this guy, then it will give you &lt;em&gt;kinda&lt;/em&gt; nice feedback. Some of my favorites are&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;My grandma can type faster than you&lt;/li&gt;
&lt;li&gt;Look at you, speedy fingers, why don't you take a break and touch grass?&lt;/li&gt;
&lt;li&gt;I can type faster on a potato 🥔 &amp;lt;-- aka those $200 computers at costco&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm sure you guys are already tripping over each other to try it, but there's more.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Games
&lt;/h3&gt;

&lt;p&gt;SnarkyType has some fun typing games! They actually &lt;em&gt;DON'T&lt;/em&gt; roast you! That is because it is more focused on fun than making you cry. DONT ABUSE THIS OR I &lt;strong&gt;WILL&lt;/strong&gt; MAKE IT HAVE ROASTS&lt;br&gt;
Anyway, some of the games include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Viking Escape - Escape some Vikings in this totally exhilarating 8-bit game where the line between good an evil gets thinner than anyone can ever imagine... (just kidding)&lt;/li&gt;
&lt;li&gt;Zombie Apocalypse (name is stupid, y'all give me some ideas in comments) - Multiplayer game where you and others type fast to unalive zombies (like the cat Halloween google doodles but typing)&lt;/li&gt;
&lt;li&gt;Other games???
Give me some ideas in the comments!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, it's time to look under the hood:&lt;/p&gt;

&lt;h2&gt;
  
  
  The Insider
&lt;/h2&gt;

&lt;p&gt;Now let's take a look inside the code 👀&lt;br&gt;
Unfortunately, due to security and privacy reasons (I like my code), I cannot show y'all the code behind it, but here's a summary:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;app.js&lt;/strong&gt; - Main file loading/dynamic pages/post-server computing and stuff&lt;br&gt;
&lt;strong&gt;server.js&lt;/strong&gt; - Defines file paths and what ExpressJS uses for serving&lt;br&gt;
&lt;strong&gt;/public&lt;/strong&gt; - Folder of frontend HTML, JS, and CSS files&lt;br&gt;
&lt;strong&gt;/Data&lt;/strong&gt; - Folder of user data (ITS ENCRYPTED AND P455WORDS ARE HASHED)&lt;/p&gt;

&lt;p&gt;Let's take a look at how the test actually works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses JS to get key presses and the actual test&lt;/li&gt;
&lt;li&gt;HTML file is pretty minimal (mostly blank; JS loads most of content)&lt;/li&gt;
&lt;li&gt;CSS is okay. It's a CSS file. Nothing special&lt;/li&gt;
&lt;li&gt;Tests are synced to server via POST API /auth&lt;/li&gt;
&lt;li&gt;Accounts are loaded via GET API /auth/users&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alright thats it for now. More updates to come!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;ChatGPT may provide incorrect information. Double-check it!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>security</category>
      <category>node</category>
    </item>
    <item>
      <title>Introducing SnarkyType: The Snarkier way to type fast</title>
      <dc:creator>Andrew Burch</dc:creator>
      <pubDate>Sun, 08 Jun 2025 21:26:23 +0000</pubDate>
      <link>https://dev.to/codemonster240/introducing-snarkytype-the-snarkier-way-to-type-fast-h5l</link>
      <guid>https://dev.to/codemonster240/introducing-snarkytype-the-snarkier-way-to-type-fast-h5l</guid>
      <description>&lt;p&gt;I'MMMM BACKKKK developers! My mystery project is underway! ...And it is literally just &lt;a href="https://monkeytype.com" rel="noopener noreferrer"&gt;Monkeytype &lt;/a&gt;but it roasts you if you mess up.&lt;/p&gt;

&lt;p&gt;What is SnarkyType?&lt;br&gt;
SnarkyType is a typing test, a chaotic tutor (🚧), and eventually, a collection of typing games (🚧).&lt;br&gt;
Unlike other typing sites that politely suggest you "try again," SnarkyType hurls you into the typing arena and then publicly mocks your pathetic WPM if you type like a grandma 🔥🔥🔥. Even The Rock will cry after experiencing the roasts made by our team and ChatGPT.&lt;/p&gt;

&lt;p&gt;🔥 Features:&lt;br&gt;
Minimalistic, customizable typing test (yes, even dark mode because we’re not monsters)&lt;/p&gt;

&lt;p&gt;Roasts you for typing slowly — and (totally) praises you if you're fast. But like... sarcastically.&lt;/p&gt;

&lt;p&gt;Typing test for beginners… but if you ignore the lessons? Prepare to be verbally suplexed. 💀&lt;/p&gt;

&lt;p&gt;Games coming soon™ that’ll make you question your keyboard, your self-worth, and your decision to skip typing class in 6th grade.&lt;/p&gt;

&lt;p&gt;Devs who are extremely online and will respond to your bug report at 2am with a meme and no context. Kind of like Andrew in Social Studies back in 1798.&lt;/p&gt;

&lt;p&gt;🤷 Why choose SnarkyType?&lt;br&gt;
Look. There are better typing tests out there.&lt;br&gt;
But are they FUNNY? Are they PETTY? Do they have snarky AI feedback that says “wow, nice job, I guess” after you barely hit 50 WPM?&lt;br&gt;
No. They’re too busy being professional and helpful. Ew.&lt;/p&gt;

&lt;p&gt;SnarkyType turns learning to type into a game of roast roulette.&lt;br&gt;
Mess up one letter and the snark bot might say:&lt;/p&gt;

&lt;p&gt;“Bold of you to attempt words with that level of skill.”&lt;/p&gt;

&lt;p&gt;Or if you’re fast:&lt;/p&gt;

&lt;p&gt;“Okay showoff, we get it. You have fingers.”&lt;/p&gt;

&lt;p&gt;💪 Coming Soon:&lt;br&gt;
A typing tutor that teaches you proper finger placement — or ROASTS you for hunting and pecking like a raccoon trying to unlock an iPhone.&lt;/p&gt;

&lt;p&gt;Typing games like:&lt;/p&gt;

&lt;p&gt;Speed Mode: Type fast or perish.&lt;/p&gt;

&lt;p&gt;Chaos Mode: Words explode. Literally. (Probably.)&lt;/p&gt;

&lt;p&gt;PvP Mode: Race against your friends or a bot named Chad with 200 WPM and no soul.&lt;/p&gt;

&lt;p&gt;Public profiles and stats so you can shame your friends into practicing.&lt;/p&gt;

&lt;p&gt;Achievements that celebrate weird milestones like “typed 1000 words without crying.”&lt;/p&gt;

&lt;p&gt;🧠 Summary&lt;br&gt;
SnarkyType is your chaotic best friend that helps you type faster but isn’t afraid to call you out.&lt;br&gt;
It’s Monkeytype, but if Monkeytype was a trash-talking sibling with caffeine addiction and zero chill.&lt;/p&gt;

&lt;p&gt;Ready to type?&lt;br&gt;
Start now, or forever type like a confused goose. 🧵&lt;br&gt;
👉 ALPHA VERSION: &lt;a href="https://snarkytype-alpha.tiiny.site/" rel="noopener noreferrer"&gt;https://snarkytype-alpha.tiiny.site/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fwyc10oeom6qs20ksulku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fwyc10oeom6qs20ksulku.png" alt="An alpha test of the typing test" width="800" height="237"&gt;&lt;/a&gt;&lt;br&gt;
An alpha test of the typing test&lt;/p&gt;

&lt;h2&gt;
  
  
  UPDATES COMING SOON!
&lt;/h2&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>github</category>
    </item>
    <item>
      <title>How to make a smooth Dark/Light mode transformation</title>
      <dc:creator>Andrew Burch</dc:creator>
      <pubDate>Wed, 22 Jan 2025 13:06:51 +0000</pubDate>
      <link>https://dev.to/codemonster240/how-to-make-a-smooth-darklight-mode-transformation-1022</link>
      <guid>https://dev.to/codemonster240/how-to-make-a-smooth-darklight-mode-transformation-1022</guid>
      <description>&lt;p&gt;Okay. So you're on a website, but the default is dark mode. However, you like light mode (if you like light mode, then there is something wrong with you 😆). It is 3 AM. You go to the dark/light switch and click the toggle. Suddenly a blinding light flashes before you in the dark room, causing you to go temporarily blind. You hear ringing in your ears and have a seizure. You need to go to the hospital because of it, costing you thousands of dollars because you live in the U.S and you don't have insurance (if you don't live in the U.S, good for you).&lt;/p&gt;

&lt;p&gt;That was a dramatization. But it is very annoying when you have to switch themes and you get blinded. I'm here to fix that! Using the latest and greatest CSS technology (not really), I have a super simple way to fix this. A smooth transition! As usual, I will give you the code and I will explain what is happening.&lt;/p&gt;

&lt;p&gt;But first, let's actually make a theme switcher. See &lt;a href="https://dev.to/ananyaneogi/create-a-dark-light-mode-switch-with-css-variables-34l8"&gt;This Link&lt;/a&gt; for how to make a theme switch.&lt;br&gt;
If you already have a theme switch, the only compatible ways with this method are variables (--color:blue;) and the strange method W3 Schools uses &lt;a href="https://www.w3schools.com/howto/howto_js_toggle_dark_mode.asp" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Da code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*{
transition-duration: 1s;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The duration time can be changed to your likings. I just used one second for the sake of this tutorial.&lt;/p&gt;

&lt;p&gt;Okay, what's happening?&lt;br&gt;
An asterisk, in case you didn't know, is the root selector. This means that &lt;strong&gt;every element&lt;/strong&gt; is affected by this. By changing the &lt;code&gt;transition-duration&lt;/code&gt;, the computer knows that when something, anything is changed, it will apply this transition. Simple, right?&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;br&gt;
Andrew McSillyone&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fc8svsqoo3lrra8yrkr4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fc8svsqoo3lrra8yrkr4v.png" alt="Meme ChatGPT" width="282" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>html</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Do you guys think that Stackoverflow is too strict?</title>
      <dc:creator>Andrew Burch</dc:creator>
      <pubDate>Thu, 02 Jan 2025 13:48:34 +0000</pubDate>
      <link>https://dev.to/codemonster240/do-you-guys-think-that-stackoverflow-is-too-strict-3mbk</link>
      <guid>https://dev.to/codemonster240/do-you-guys-think-that-stackoverflow-is-too-strict-3mbk</guid>
      <description>&lt;p&gt;I have begun to wonder if &lt;a href="https://stackoverflow.com" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt; is too strict. Almost half of my questions get flagged as not enough detail when I wrote an entire paragraph on it, yet a question a year ago gets approved when it has 20 words. I have begun to use Stackoverflow less because of this. I still use it to read other people's questions to help me, but I don't ask questions anymore.&lt;/p&gt;

&lt;p&gt;What do you guys think? Am I just bad at asking questions, or do you guys have the same experience as me? 🤔&lt;/p&gt;

&lt;p&gt;This is my opinion about Stackoverflow. Do not take this seriously.  If you are a Stackoverflow employee, this is not to shame you or anyone else working at Stackoverflow. 😁&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>I have a question on back-end stuff. If my file tree is file://files/file.html, when the file is uploaded to the cloud, will it turn into example.com/files ? Thanks for any help.</title>
      <dc:creator>Andrew Burch</dc:creator>
      <pubDate>Thu, 19 Dec 2024 20:39:26 +0000</pubDate>
      <link>https://dev.to/codemonster240/i-have-a-question-on-back-end-stuff-if-my-file-tree-is-filefilesfilehtml-when-the-file-is-4ml1</link>
      <guid>https://dev.to/codemonster240/i-have-a-question-on-back-end-stuff-if-my-file-tree-is-filefilesfilehtml-when-the-file-is-4ml1</guid>
      <description></description>
      <category>help</category>
      <category>backend</category>
      <category>cloud</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to make on-scroll animations in JavaScript and CSS</title>
      <dc:creator>Andrew Burch</dc:creator>
      <pubDate>Wed, 18 Dec 2024 22:12:34 +0000</pubDate>
      <link>https://dev.to/codemonster240/how-to-make-on-scroll-animations-in-javascript-and-css-bmj</link>
      <guid>https://dev.to/codemonster240/how-to-make-on-scroll-animations-in-javascript-and-css-bmj</guid>
      <description>&lt;p&gt;Have you seen basically every single cool corporate website, and noticed that text slides up when you scrolled to it? (see &lt;a href="//apple.com"&gt;Apple's website&lt;/a&gt;) Because it is so common, you would think that there would be many answers to this question, right? But, after scrolling through many online tutorials, I couldn't find an appear-on-scroll animation, so I made my own.&lt;/p&gt;

&lt;h2&gt;
  
  
  The HTML (Dun dun dun!!!)
&lt;/h2&gt;

&lt;p&gt;The HTML is fairly straightforward. Just make an element &lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;p&amp;gt;Some text&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;br&gt;
and attach the class &lt;code&gt;id="animate-scroll"&lt;/code&gt; to it. Please note that you can change the class at any time, just make sure to change the HTML, CSS, and JS class references too!&lt;/p&gt;

&lt;p&gt;The full HTML (note that you can change the element. I used &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; for simplicity reasons.):&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



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

&lt;p&gt;Now for the CSS. This part is easy. Copy the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.animate-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.animate-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What's going on here?  The &lt;code&gt;.animate-scroll&lt;/code&gt; class declares the animation. This is the code that actually makes the animation. You can make another one, but I made a slide-up fade-in animation because it is the most common one I've seen. The &lt;code&gt;.animate-scroll.visible&lt;/code&gt;, however, shows the state of the element when the animation is over. If you change &lt;code&gt;.animate-scroll&lt;/code&gt;, you should also change this. For instance, if you are changing size, you should put &lt;code&gt;size:100%;&lt;/code&gt; or something. However, if you just want a simple tutorial on how to do this, then don't change anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The JavaScript
&lt;/h2&gt;

&lt;p&gt;Copy this simple JavaScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;document.addEventListener('DOMContentLoaded', () =&amp;gt; {
    const elements = document.querySelectorAll('.animate-scroll');

    const observer = new IntersectionObserver((entries) =&amp;gt; {
        entries.forEach(entry =&amp;gt; {
            if (entry.isIntersecting) {
                entry.target.classList.add('visible');
            }
        });
    }, {
        threshold: 0.9
    });

    elements.forEach(element =&amp;gt; {
        observer.observe(element);
    });
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Woah! That's a lot of code! What's happening! Let's break it down step-by-step. &lt;br&gt;
Firstly, &lt;code&gt;document.addEventListener('DOMContentLoaded', () =&amp;gt;&lt;/code&gt; is detecting for if the content is loaded. This just runs the "function".&lt;br&gt;
&lt;code&gt;const elements = document.querySelectorAll('.animate-scroll');&lt;/code&gt; This finds the class. Change this too if you are changing the class of the HTML and CSS.&lt;br&gt;
&lt;code&gt;const observer = new IntersectionObserver((entries) =&amp;gt; { entries.forEach(entry =&amp;gt;&lt;/code&gt; This detects if the element is in the viewport. If it isn't, then it will not animate it.&lt;br&gt;
&lt;code&gt;if (entry.isIntersecting) { entry.target.classList.add('visible');}&lt;/code&gt; This detects if the animation is over. If it is, then it adds &lt;code&gt;.visible&lt;/code&gt; to the CSS. that is why it is there!&lt;br&gt;
&lt;code&gt;threshold: 0.9&lt;/code&gt; This calculates how much of it is on the page before animating it. 0 is as soon as a pixel reaches the page. 1 is when it is about 25% of the way up the page. 2 is about 50%... I like to keep it at about 0.9 for a chance that the user sees the animation without hiding the text for too long.&lt;br&gt;
&lt;code&gt;elements.forEach(element =&amp;gt; { observer.observe(element);&lt;/code&gt; This just observes the element. It's kind of pointless to explain. Is it on the page??? This handles that.&lt;/p&gt;
&lt;h2&gt;
  
  
  The final code...
&lt;/h2&gt;

&lt;p&gt;Are you too lazy to read my amazing explanations? Here is all of the code.&lt;/p&gt;

&lt;p&gt;HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;p class="animate-scroll"&amp;gt;Your text here&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.animate-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.animate-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;JavaScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;document.addEventListener('DOMContentLoaded', () =&amp;gt; {
    const elements = document.querySelectorAll('.animate-scroll');

    const observer = new IntersectionObserver((entries) =&amp;gt; {
        entries.forEach(entry =&amp;gt; {
            if (entry.isIntersecting) {
                entry.target.classList.add('visible');
            }
        });
    }, {
        //The amount of screen displayed before animated. 0 is as soon as it appears on the page. 1 is a bit. 2 is...
        threshold: 0.9
    });

    elements.forEach(element =&amp;gt; {
        observer.observe(element);
    });
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it! I hope you liked this deep dive into this. If you have any questions, comments or just want to talk to the famous guy who wrote this, leave a comment. I would love to see your suggestions!&lt;/p&gt;

&lt;p&gt;Thanks for reading, CodeMonster&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>css</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
