<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Codikko</title>
    <link>https://www.codikko.com/blog</link>
    <description>Codikko teaches software development through interactive, animated lessons instead of videos: watch the system move, and drive every step yourself.</description>
    <atom:link href="https://www.codikko.com/blog/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>401 vs 403, the difference in one request</title>
      <link>https://www.codikko.com/blog/401-vs-403-the-difference</link>
      <guid isPermaLink="true">https://www.codikko.com/blog/401-vs-403-the-difference</guid>
      <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
      <description>401 means the server doesn't know who you are; 403 means it does, and the answer is no. Watch one request hit both gates.</description>
    </item>
    <item>
      <title>Express middleware explained, step by step</title>
      <link>https://www.codikko.com/blog/express-middleware-explained-step-by-step</link>
      <guid isPermaLink="true">https://www.codikko.com/blog/express-middleware-explained-step-by-step</guid>
      <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
      <description>Middleware is a line of functions every request walks before your handler. Watch three stations stamp one request in order, then a missing token stop it early.</description>
    </item>
    <item>
      <title>How the Node event loop works, visually</title>
      <link>https://www.codikko.com/blog/how-the-node-event-loop-works</link>
      <guid isPermaLink="true">https://www.codikko.com/blog/how-the-node-event-loop-works</guid>
      <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
      <description>Node runs on one thread yet never blocks. Watch one async callback wait in the queue and get pushed onto the call stack to see how.</description>
    </item>
    <item>
      <title>HTTP status codes, the eight you need</title>
      <link>https://www.codikko.com/blog/http-status-codes-the-eight-you-need</link>
      <guid isPermaLink="true">https://www.codikko.com/blog/http-status-codes-the-eight-you-need</guid>
      <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
      <description>You don't need dozens of status codes. Watch one request get 200, 301, 401, 404 and 500, learn the first digit rule, and keep the eight that cover real traffic.</description>
    </item>
    <item>
      <title>JWT vs session authentication, which one to pick</title>
      <link>https://www.codikko.com/blog/jwt-vs-session-authentication</link>
      <guid isPermaLink="true">https://www.codikko.com/blog/jwt-vs-session-authentication</guid>
      <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
      <description>Sessions can be revoked; JWTs verify themselves. Watch one request take each path, then pick the trade-off that fits what you are building.</description>
    </item>
    <item>
      <title>What &quot;port 3000 already in use&quot; actually means</title>
      <link>https://www.codikko.com/blog/what-port-3000-already-in-use-means</link>
      <guid isPermaLink="true">https://www.codikko.com/blog/what-port-3000-already-in-use-means</guid>
      <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
      <description>EADDRINUSE means a process is still listening on that port. Watch one machine give door 3000 to the first process, refuse the second, then fix it both ways.</description>
    </item>
  </channel>
</rss>
