<?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: Ariyo Aresa</title>
    <description>The latest articles on Forem by Ariyo Aresa (@ariyoaresa).</description>
    <link>https://forem.com/ariyoaresa</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%2F1205157%2F5e0984eb-df40-4250-b0d9-04e66081ef11.png</url>
      <title>Forem: Ariyo Aresa</title>
      <link>https://forem.com/ariyoaresa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ariyoaresa"/>
    <language>en</language>
    <item>
      <title>How an authentication system actually works</title>
      <dc:creator>Ariyo Aresa</dc:creator>
      <pubDate>Wed, 11 Mar 2026 11:28:04 +0000</pubDate>
      <link>https://forem.com/ariyoaresa/how-an-authentication-system-actually-works-25lh</link>
      <guid>https://forem.com/ariyoaresa/how-an-authentication-system-actually-works-25lh</guid>
      <description>&lt;p&gt;The processes that takes place when you sign up or login on a site is actually much more than just you filling a form and clicking a button&lt;br&gt;
A lot of processes actually go on behind that login or sign up button and that those would be the main focus for this content. &lt;/p&gt;

&lt;p&gt;When signing up on an app, the app sends the data to a database (a table containing everyone's data). However if all data are sent in plain text, the internet would be a scary place. This is why a series of step is taken to make sure your data is shared and stored securely&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 1: The sign up path&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The secure travel path (HTTPS/TLS)&lt;/strong&gt;:&lt;br&gt;
Before your data even leaves your computer, your browser establishes a secure connection using HTTPS. This creates an encrypted tunnel between you and the server. Even if someone intercepts your Wi-Fi signal, they only see "garbage" data. It is important to note that HTTPS secures the transit, but the server still needs to secure the storage&lt;br&gt;
&lt;em&gt;&lt;strong&gt;NB&lt;/strong&gt;: This is why you shouldn't login or sign up to sights that uses HTTP and not HTTPS&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Salting&lt;/strong&gt;:&lt;br&gt;
A pinch of salt is usually added to highly sensitive credentials. This is to prevent hackers from using precalculated tables known as 'Rainbow Tables' to guess common passwords. The salt is usually a unique, random string of data added to your password. &lt;br&gt;
• ​Without Salt: Two people with the password &lt;code&gt;Password123&lt;/code&gt; would have the same hash in the database.&lt;br&gt;
• ​With Salt: Each user gets a unique salt, so their final hashes look completely different, even if their passwords are identical.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hashing&lt;/strong&gt;:&lt;br&gt;
This is the biggest secret in web development. Good websites don't save your passwords in plain texts, after your password is salted, the server uses a cryptographic hash function to turn your password into hashes. &lt;code&gt;Password123&lt;/code&gt; becomes something like &lt;code&gt;$2b$12$K1e58377$Kqkrsy&lt;/code&gt; after hashing.&lt;br&gt;
This process is a one-way thing. The hash cannot be turned back into your password&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When logging in on the other hand, the server compare your input to that in the data base.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2: The Login path&lt;/strong&gt;&lt;br&gt;
When you return to login, the server doesn't decrypt your password (because it can't). Instead &lt;br&gt;
The server looks for you email address or username to find your unique salt&lt;br&gt;
If it exists, it attaches the salt to the password you just typed&lt;br&gt;
it then hashes runs the combination once again through the same hash function used during sign up&lt;br&gt;
It compares the new hash with the previous hash in the database. If they match, you get logged in and if they don't, you get an error.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3: Staying Logged in&lt;/strong&gt;&lt;br&gt;
To avoid the process of logging in on every single page click, the server generates a session token or a JWT (JSON web token). &lt;br&gt;
These makes the computer remember that you've been logged in before and there's no need to collect your credentials again &lt;br&gt;
&lt;strong&gt;Sessions&lt;/strong&gt;: The server stores a session ID in it's memory and gives you a matching cookie. This makes the server remember you every time you visit a page&lt;br&gt;
&lt;strong&gt;JWTs&lt;/strong&gt;: The server gives you a digitally signed token. The server doesn't necessarily remember you, it just trusts that because the token that contains your information because it's signed&lt;/p&gt;

</description>
      <category>authjs</category>
      <category>backend</category>
      <category>security</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Be so good even the blind can use your site</title>
      <dc:creator>Ariyo Aresa</dc:creator>
      <pubDate>Wed, 18 Feb 2026 01:19:53 +0000</pubDate>
      <link>https://forem.com/ariyoaresa/be-so-good-even-the-blind-can-use-your-site-54k5</link>
      <guid>https://forem.com/ariyoaresa/be-so-good-even-the-blind-can-use-your-site-54k5</guid>
      <description>&lt;p&gt;Accessibility is a major topic in the software engineering industry, it's basically making anyone, even people with disabilities to be able to use your app&lt;/p&gt;

&lt;p&gt;As a frontend engineer, I build "pixel-perfect" UIs, spending hours choosing the trendiest hex codes and spending hours on css animations. While these may look like all I do, there's still a silent, important part I also spend a lot of time on for the users who do not care about my crazy hover effects, box shadows or liquid glass effect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessibility&lt;/strong&gt; isn't a feature I implement because it is a "nice to have" feature, or so I can pass legal compliances, I do it so anyone and everyone can have access to information on my site, irrespective of physical or cognitive abilities&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Why does it matter&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
For a user with visual impairments, your website isn't a collection of collored text and buttons, it's a structured tree of information interpreted using a screen reader. If the site is built without accessibility in mind, the user hits a wall, not knowing what your site is about or even how to navigate&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;The Frontend Dev’s Toolkit&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
As frontend devs, our job is to give the users a great User Experience too and here are ways you can improve your site accessibility&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Using Semantic HTML&lt;/strong&gt;: This is the oldest trick in the book and the easiest way to improve accessibility. Stop using &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; for everything and start using &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Bad:&lt;/strong&gt;&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;div onclick="submit()"&amp;gt;Submit&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Good:&lt;/strong&gt;&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;button type="submit"&amp;gt;Submit&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This simple code tells users that the component is a submit button. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ARIA roles&lt;/strong&gt;: For components where html elements alone do not do justice (eg tabs, accordion, etc), ARIA attributes bridge the gap providing extra context to what the element does and which state it's in (e.g, aria-expanded="true").&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keyboard Navigation&lt;/strong&gt;: Not everyone uses a mouse, some people rely on the Tab key to navigate apps. It's crucial to ensure that the tab order follows the visual order of the page&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Color Contrast and Text&lt;/strong&gt;: While some users can see, but have color blindness or low vision, it's still essential to carry them along. Text and other elements should have clear contrast from background.&lt;br&gt;
Every Image should also have an alt text. If it's decorative, use &lt;code&gt;alt=""&lt;/code&gt; and if it contains info, describe the information clearly in the alt attribute&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Accessibility do not just help people with permanent disabilities, it also helps people using their phone in bright sunlight, users without access to their mouse, just keyboard or people with broken arm while also helping people with slow Internet connection &lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/u&gt; &lt;br&gt;
Accessibility isn't about limiting you creativity, but about expanding your reach - Building apps that even blind people can "see".&lt;br&gt;
Building with accessibility in mind means you aren't just writing codes, you're also advocating that the web is for everyone. Be that engineer who builds bridges, not barriers &lt;/p&gt;

&lt;p&gt;Make your site be so good that the quality isn't just seen, but it's also felt&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>a11y</category>
    </item>
    <item>
      <title>From Burnout to Breakthrough: How Community Saved My Tech Career</title>
      <dc:creator>Ariyo Aresa</dc:creator>
      <pubDate>Fri, 16 Jan 2026 23:00:32 +0000</pubDate>
      <link>https://forem.com/ariyoaresa/from-burnout-to-breakthrough-how-community-saved-my-tech-career-398f</link>
      <guid>https://forem.com/ariyoaresa/from-burnout-to-breakthrough-how-community-saved-my-tech-career-398f</guid>
      <description>&lt;p&gt;I was on the verge of quitting my tech career for the second time. Then, a single WhatsApp notification changed everything.&lt;/p&gt;

&lt;p&gt;​My first attempt at tech was cybersecurity. I spent eight months grinding through it, but eventually, I gave up. It felt complicated, boring, and worst of all, lonely. I had no roadmap and no mentor; I spent most of my days scrolling in Stack Overflow threads, trying to make sense of things I didn't yet understand.&lt;/p&gt;

&lt;p&gt;​Determined to try again, I transitioned into web development. I learnt HTML and CSS, but the moment I hit JavaScript, the familiar wall of frustration returned.&lt;/p&gt;

&lt;p&gt;​I was struggling with a sidebar script. It was a simple enough task, but I couldn't get it right—the sidebar would open, but it refused to close. I posted my code in a WhatsApp group of high school classmates who had also become "techies," then waited. Hours passed in silence. I felt that old urge to walk away, convinced I wasn't cut out for this.&lt;/p&gt;

&lt;p&gt;​Then, my phone buzzed. A friend replied with 4 words that changed my career forever: "&lt;strong&gt;I've been there before.&lt;/strong&gt;"&lt;br&gt;
​He didn't just give me the answer; he validated my struggle. He pointed out that I was using the loose equality operator (==) when I needed the strict equality operator (===). It was a tiny syntax error, but it had been an insurmountable mountain when I was facing it alone.&lt;/p&gt;

&lt;p&gt;​That was my first taste of community-driven mentorship, and it changed my entire career. When I gained admission into university, I sought out developer communities where I could network, learn, and contribute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Power of Being Part of a Community&lt;/strong&gt;&lt;br&gt;
Joining these groups didn't just make me a better coder; it made me a professional. Here are the biggest benefits I’ve experienced:&lt;br&gt;
• &lt;strong&gt;Accelerated Problem Solving&lt;/strong&gt;: Access to experienced mentors turns a day-long bug search into a five-minute conversation.&lt;br&gt;
• ​&lt;strong&gt;Staying Current&lt;/strong&gt;: Frequent discussions about emerging technologies keep your skills from becoming stagnant.&lt;br&gt;
• ​&lt;strong&gt;Real-World Experience&lt;/strong&gt;: I had the chance to collaborate on actual projects long before I landed my first official role.&lt;br&gt;
• ​&lt;strong&gt;Early Career Opportunities&lt;/strong&gt;: I actually secured my very first job through a community referral.&lt;br&gt;
• ​&lt;strong&gt;Best Practices over Syntax&lt;/strong&gt;: You don’t just learn how to make things work; you learn how to write clean, maintainable, and industry-standard code.&lt;br&gt;
• ​&lt;strong&gt;A Sense of Belonging&lt;/strong&gt;: Tech can be isolating, but in a community, you are never left behind.&lt;br&gt;
• ​&lt;strong&gt;Networking at Scale&lt;/strong&gt;: Community events allowed me to connect with experts across several fields I never would have met otherwise.&lt;/p&gt;

&lt;p&gt;Today, I'm a member of several tech communities and even a core team member of the Open Source Community Africa (OSCA) Ado-Ekiti chapter, not only learning from industry experts, but also giving back to the community in my own little ways&lt;/p&gt;

&lt;p&gt;​The most important lesson I’ve learned is this: &lt;strong&gt;&lt;em&gt;You get more value from people than you do from your code&lt;/em&gt;&lt;/strong&gt;. Coding might be a solo activity, but building a career is a team sport.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>How I got internet famous, you can too.</title>
      <dc:creator>Ariyo Aresa</dc:creator>
      <pubDate>Sat, 10 Jan 2026 23:01:52 +0000</pubDate>
      <link>https://forem.com/ariyoaresa/how-i-got-internet-famous-you-can-too-48ll</link>
      <guid>https://forem.com/ariyoaresa/how-i-got-internet-famous-you-can-too-48ll</guid>
      <description>&lt;p&gt;"If I search your name and you're not on Google, then you're not successful yet — only famous people appear on Google search" This is what I always thought while growing up.&lt;br&gt;
This changed when I published an article about myself on a blogging site at just 15 years old. I remember searching my name and it would bring up that article on the search results and I would use this to brag to my friends in school.&lt;/p&gt;

&lt;p&gt;I first heard about SEO few years ago then I realized why i appeared whenever I searched for my name years back. I had just gotten a domain for my portfolio, but whenever I searched my name, it still wouldn't appear.  I didn't know why this happened so I went to meet one of my mentors. He explained the concept of SEO and how to do it for my portfolio. Since then, I've helped several people rank their websites on Google, Microsoft and other search engines.&lt;/p&gt;

&lt;p&gt;Over the years, I realized that SEO isn't magic—it's about speaking the search engine's language. Here are the 5 core pillars I use to help my clients rank as a website developer. &lt;/p&gt;

&lt;p&gt;​1 &lt;strong&gt;Prioritize Semantic HTML over "Div-itis"&lt;/strong&gt;:&lt;br&gt;
Stop wrapping everything in &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tags. Semantic HTML tells search engines what your content actually is. Using &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; acts as a map for crawlers, helping them distinguish your core message from sidebars or ads.&lt;/p&gt;

&lt;p&gt;2 &lt;strong&gt;The title tag&lt;/strong&gt;: While the content of the title tag might just be like the text on top of your web page, it also helps with SEO. Whenever google scrapes your web pages, it uses your title tag to categorise your content telling the algorithm what your content is about. A very good title tag can steal clicks from position #1.&lt;/p&gt;

&lt;p&gt;3 &lt;strong&gt;Meta descriptions&lt;/strong&gt;: while those meta descriptions might seem like they do not affect your site in any way, they actually help a lot with SEO. They tell search engine what your page is about.&lt;br&gt;
The meta description is that 1-2 sentence summary that appears under your summary in the search results.&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;meta name="description" content="This is where your the summaryof the web page us written."&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;While Google claims that meta descriptions do not directly affect how your website is ranked, it serves as an ad. An enticing meta description will increase your Click-Through Rate which tells Google that your page is valuable thereby boosting your ranking.&lt;/p&gt;

&lt;p&gt;4 &lt;strong&gt;Robots.txt file&lt;/strong&gt;: Search engine bots have a "crawl budget"—they won't stay on your site forever. This file (usually found in the root folder) tells search engine bots where they can crawl and where they aren't allowed to visit. By using a robots.txt file, you can tell bots to ignore unimportant folders like &lt;code&gt;/admin/&lt;/code&gt; or &lt;code&gt;/cart/&lt;/code&gt;, forcing them to spend their "budget" on high value content. Heavy crawling cam also slow down your server.&lt;/p&gt;

&lt;p&gt;5 &lt;strong&gt;Alt attributes for images&lt;/strong&gt;: As a beginner, you might think Alt attributes only come in handy under poor network conditions or for screen readers.  The actually also help with SEO. Alt attribute helps with accessibility, User experience and SEO.&lt;br&gt;
While modern AIs are getting good at analysing images, search engine still rely heavily on the texts in the alt tags to index your content correctly.&lt;br&gt;
To achieve a perfect alt text, it must be descriptive, concise and natural.&lt;br&gt;
Instead of:&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;img src="shoes.png" alt="shoes"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use this instead&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;img src="shoes.png" alt="Men's waterproof leather hiking boots in dark brown"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This improve image search, whenever a user searches a query relating to your alt image, your image is shown in the image search.&lt;/p&gt;

&lt;p&gt;When writing an alt text, you should also avoid starting with "Image of..." as the search engine already knows it's an image, so just jump straight into the description.&lt;br&gt;
If the image is serving as a background, leave the alt attribute empty. This tells the screen readers to skip it, saving users time.&lt;/p&gt;

&lt;p&gt;It is also important to know that google rewards sites that are accessible, in summary, the more accessible your site is, the more your site would be ranked.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ranking = k(accessibility)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SEO is a marathon, not a sprint. By getting these technical basics right, you build a foundation that Google can't ignore.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>seo</category>
      <category>marketing</category>
    </item>
    <item>
      <title>My new open source project</title>
      <dc:creator>Ariyo Aresa</dc:creator>
      <pubDate>Sun, 05 May 2024 21:20:50 +0000</pubDate>
      <link>https://forem.com/ariyoaresa/my-new-open-source-project-4l21</link>
      <guid>https://forem.com/ariyoaresa/my-new-open-source-project-4l21</guid>
      <description>&lt;p&gt;Since the middle of 2023, I've been trying to create something that people will find interesting, something everyone can use, however, I just get ideas - I'm not that creative, an i felt I wasn't good enough yet.&lt;/p&gt;

&lt;p&gt;Beginning of this year however, I created a site that allows you to scroll through a list of AI website, check it out &lt;a href="https://ariyoaresa.me/ai-list" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, 2 days ago, an idea popped into my mind, to create a darkmode javascript library&lt;/p&gt;

&lt;p&gt;I started building right away, while testing it out on the project I was currently working on.&lt;br&gt;
This evening, I have successfully completes it and you ca check it out on  &lt;a href="https://github.com/ariyoaresa/darkmodejs/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

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