<?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: aryan015</title>
    <description>The latest articles on Forem by aryan015 (@aryan015).</description>
    <link>https://forem.com/aryan015</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%2F669127%2Fa8311ca4-8c9b-4370-bd7f-0a40c39a1e08.jpg</url>
      <title>Forem: aryan015</title>
      <link>https://forem.com/aryan015</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/aryan015"/>
    <language>en</language>
    <item>
      <title>How to Write Your Own Static File Server in Pure Node.js</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Mon, 17 Nov 2025 07:53:29 +0000</pubDate>
      <link>https://forem.com/aryan015/how-to-write-your-own-static-file-server-in-pure-nodejs-486k</link>
      <guid>https://forem.com/aryan015/how-to-write-your-own-static-file-server-in-pure-nodejs-486k</guid>
      <description>&lt;h2&gt;
  
  
  Prerequisites 💻
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;A computer (Windows, macOS, or Linux)&lt;/li&gt;
&lt;li&gt;Node.js installed&lt;/li&gt;
&lt;li&gt;About 5 minutes of your time&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How-to 🎬
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create a project folder (i.e. &lt;code&gt;node-project&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Create &lt;code&gt;public&lt;/code&gt; folder inside you &lt;code&gt;node-project&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;Inside your public create &lt;code&gt;index.html&lt;/code&gt; and &lt;code&gt;style.css&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Paste below content on your index.html
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Aryan – Freelance Developer&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"style.css"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;body&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;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello, I'm Aryan Khandelwal — a freelance developer from India 🇮🇳&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;I help businesses build fast, modern, and scalable web applications.
            My key services include:&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;ReactJS / RemixJS Development&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Node.js / Express.js APIs&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;WordPress Websites &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; Custom Themes&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Full-stack Development &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; Consulting&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;AWS Lambda &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; Serverless Applications&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;AWS S3 Static Hosting &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; File Storage&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;AWS CloudFront CDN Setup&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;AWS EC2 Deployment &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; Optimization&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"cta"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            You can contact me here
            &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"mailto:aryankhandelwal15@gmail.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;email&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"cta"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            Visit my portfolio:
            &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://aryankhandelwal.in"&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;website&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&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;/body&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Paste Below css in your &lt;code&gt;style.css&lt;/code&gt; file
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Arial&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;sans-serif&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="m"&gt;#f7f7f7&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;0&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;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#222&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;700px&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;60px&lt;/span&gt; &lt;span class="nb"&gt;auto&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="no"&gt;white&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;30px&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;12px&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;4px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt; &lt;span class="n"&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="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="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.08&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;28px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#333&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;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.6&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;12px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#0066ff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;underline&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.cta&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bold&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;ol&gt;
&lt;li&gt;Create a two files &lt;code&gt;main.js&lt;/code&gt; and &lt;code&gt;static.js&lt;/code&gt; inside your root folder (ie. &lt;code&gt;node-project&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Put below code inside &lt;code&gt;static.js&lt;/code&gt;. (It is just a Bare minimum code to start with)
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;path&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;static&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;files&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readdirSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
    &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;files&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filePath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;public&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;index.html&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
            &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text/html&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
            &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filePath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;public&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;
            &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;extname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
            &lt;span class="k"&gt;switch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;extname&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;text/javascript&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;text/css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;image/png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.jpg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;image/jpg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.gif&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;image/gif&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.svg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;image/svg+xml&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filePath&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;readS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createReadStream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filePath&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
        &lt;span class="nx"&gt;readS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pipe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;404&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text/html&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
        &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;h1&amp;gt;Not found&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;end&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Again put mention code to &lt;code&gt;main.js&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;http&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;http&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./app&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="nx"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createServer&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&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="nf"&gt;static&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./public/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Now It is time to run our server
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;node&lt;/span&gt; &lt;span class="nx"&gt;main&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion 🗒️
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Never resort to this approach. 💀&lt;/li&gt;
&lt;li&gt;Always use backend framework for better optimization. 🚁&lt;/li&gt;
&lt;li&gt;keep learning !!! 🦸&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Social
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://aryankhandelwal.in" rel="noopener noreferrer"&gt;Support me&lt;/a&gt; 🐣&lt;/p&gt;

</description>
      <category>node</category>
      <category>express</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>What Do You Mean by Open Source LLM? 💡</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Mon, 23 Jun 2025 09:08:44 +0000</pubDate>
      <link>https://forem.com/aryan015/what-do-you-mean-by-open-source-llm-5akd</link>
      <guid>https://forem.com/aryan015/what-do-you-mean-by-open-source-llm-5akd</guid>
      <description>&lt;p&gt;An &lt;strong&gt;Open Source LLM (Large Language Model)&lt;/strong&gt; refers to a machine learning model trained to understand and generate human-like language, whose &lt;strong&gt;codebase, model weights, or both are publicly accessible&lt;/strong&gt; and can be used, modified, or distributed by anyone under a permissive license.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔐 Key Characteristics
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transparency&lt;/strong&gt;&lt;br&gt;
The architecture, training data (or a description of it), and model behavior are open for examination.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accessibility&lt;/strong&gt;&lt;br&gt;
Anyone can download and run the model locally or on the cloud, depending on system requirements.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Modifiability&lt;/strong&gt;&lt;br&gt;
Developers and researchers can fine-tune or adapt the model for specific tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;License Freedom&lt;/strong&gt;&lt;br&gt;
Open source LLMs usually come with licenses like Apache 2.0, MIT, or Creative Commons that allow broad reuse.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  🚀 Popular Open Source LLMs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Meta’s LLaMA&lt;/strong&gt; (with some usage restrictions)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mistral&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Falcon&lt;/strong&gt; by TII&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bloom&lt;/strong&gt; by BigScience&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenLLaMA&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  📝 Why Open Source LLMs Matter
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Democratization of AI&lt;/strong&gt;: Lowers the barrier for individuals and organizations to access powerful models.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Research &amp;amp; Innovation&lt;/strong&gt;: Accelerates progress by enabling reproducibility and community contributions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization&lt;/strong&gt;: Businesses can build domain-specific tools without depending on proprietary vendors.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔎 Open Source vs Closed Source LLMs
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Open Source LLM&lt;/th&gt;
&lt;th&gt;Closed Source LLM&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;Public&lt;/td&gt;
&lt;td&gt;Restricted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customization&lt;/td&gt;
&lt;td&gt;Full&lt;/td&gt;
&lt;td&gt;Limited or None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Licensing&lt;/td&gt;
&lt;td&gt;Permissive&lt;/td&gt;
&lt;td&gt;Proprietary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Example&lt;/td&gt;
&lt;td&gt;Mistral, Bloom&lt;/td&gt;
&lt;td&gt;GPT-4, Claude, Gemini&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;In summary, an &lt;strong&gt;Open Source LLM&lt;/strong&gt; provides transparency, adaptability, and community-driven innovation. It empowers developers, startups, and researchers to integrate or enhance AI capabilities freely.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openai</category>
      <category>chatgpt</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>How CPU Interacts with GPU 🕹</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Mon, 23 Jun 2025 08:35:42 +0000</pubDate>
      <link>https://forem.com/aryan015/how-cpu-interacts-with-gpu-1olb</link>
      <guid>https://forem.com/aryan015/how-cpu-interacts-with-gpu-1olb</guid>
      <description>&lt;p&gt;The &lt;strong&gt;CPU interacts with the GPU&lt;/strong&gt; through the system's &lt;strong&gt;bus (usually PCIe)&lt;/strong&gt; and &lt;strong&gt;driver-level APIs&lt;/strong&gt;. Here's a breakdown of the process:&lt;/p&gt;




&lt;h3&gt;
  
  
  🔄 How the Interaction Happens:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;CPU Prepares Work&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Runs the main game or application logic.&lt;/li&gt;
&lt;li&gt;Determines &lt;em&gt;what&lt;/em&gt; needs to be rendered (e.g., scene, camera angle, models).&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Sends Commands to GPU&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Uses &lt;strong&gt;graphics APIs&lt;/strong&gt; like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DirectX (Windows)&lt;/li&gt;
&lt;li&gt;OpenGL / Vulkan&lt;/li&gt;
&lt;li&gt;Metal (macOS)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;These APIs translate CPU intentions into GPU-friendly instructions.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Data Transfer via PCIe&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;CPU sends:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Textures&lt;/li&gt;
&lt;li&gt;Geometry (models, vertices)&lt;/li&gt;
&lt;li&gt;Shaders&lt;/li&gt;
&lt;li&gt;Instructions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;All transferred over the &lt;strong&gt;PCIe bus&lt;/strong&gt; into the GPU's VRAM.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;GPU Executes Tasks&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;GPU receives and processes rendering tasks in parallel.&lt;/li&gt;
&lt;li&gt;Uses thousands of cores to efficiently compute visuals.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Result Output to Display&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;GPU sends the final rendered frame to the display via HDMI or DisplayPort.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Summary:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CPU = Director&lt;/strong&gt;: Plans and instructs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPU = Worker&lt;/strong&gt;: Executes rendering and parallel computations.&lt;/li&gt;
&lt;li&gt;Communication relies on &lt;strong&gt;PCIe bus&lt;/strong&gt; and &lt;strong&gt;graphics APIs&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gpu</category>
      <category>cpu</category>
      <category>graphics</category>
    </item>
    <item>
      <title>Why Do Companies Like Zotac, Gigabyte, and PowerColor Rebrand NVIDIA/AMD GPUs? 📷</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Sat, 21 Jun 2025 03:14:55 +0000</pubDate>
      <link>https://forem.com/aryan015/why-do-companies-like-zotac-gigabyte-and-powercolor-rebrand-nvidiaamd-gpus-10a5</link>
      <guid>https://forem.com/aryan015/why-do-companies-like-zotac-gigabyte-and-powercolor-rebrand-nvidiaamd-gpus-10a5</guid>
      <description>&lt;h3&gt;
  
  
  💡 The Core Fact:
&lt;/h3&gt;

&lt;p&gt;Only &lt;strong&gt;two companies&lt;/strong&gt; in the world design and manufacture the &lt;strong&gt;actual GPU chips&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NVIDIA&lt;/strong&gt; (e.g., AD104, GA102)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AMD&lt;/strong&gt; (e.g., Navi 31, Navi 33)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These chips are called &lt;strong&gt;GPU dies&lt;/strong&gt; and are the heart of any graphics card.&lt;/p&gt;




&lt;h3&gt;
  
  
  🏠 Enter AIBs (Add-In Board Partners):
&lt;/h3&gt;

&lt;p&gt;Companies like &lt;strong&gt;Zotac, Gigabyte, MSI, ASUS, PowerColor&lt;/strong&gt;, etc. are known as &lt;strong&gt;AIB partners&lt;/strong&gt;. They &lt;strong&gt;buy the GPU chips&lt;/strong&gt; from NVIDIA or AMD and then design and build the actual &lt;strong&gt;graphics card&lt;/strong&gt; you buy.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚙️ What AIB Partners Actually Do:
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom PCB&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Design power delivery, VRMs, and memory layout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cooling System&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Add fans, heatsinks, and thermal pads for cooling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Overclocking&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Apply factory overclocks or custom BIOS settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Aesthetics&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Add RGB lighting, backplates, and branding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Support/Warranty&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Provide after-sales service, packaging, and regional support&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  ↺ Real-World Example:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NVIDIA&lt;/strong&gt; makes the RTX 4060 chip&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Gigabyte&lt;/strong&gt; uses it to build the &lt;strong&gt;Gigabyte RTX 4060 Windforce OC&lt;/strong&gt;, which may feature:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dual fans&lt;/li&gt;
&lt;li&gt;Factory overclock&lt;/li&gt;
&lt;li&gt;RGB lighting&lt;/li&gt;
&lt;li&gt;Custom cooling and aesthetics&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  🤔 Why This Model Exists:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Lets &lt;strong&gt;NVIDIA/AMD focus on R&amp;amp;D&lt;/strong&gt; and chip production&lt;/li&gt;
&lt;li&gt;Offers &lt;strong&gt;variety for consumers&lt;/strong&gt; (silent, RGB, compact, liquid-cooled versions)&lt;/li&gt;
&lt;li&gt;Encourages &lt;strong&gt;competition&lt;/strong&gt; between AIBs, which lowers prices and increases innovation&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ✅ Summary:
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;Company&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GPU Chip Design &amp;amp; Production&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;NVIDIA / AMD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Graphics Card Assembly &amp;amp; Customization&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Zotac, Gigabyte, ASUS, MSI, PowerColor, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This division of roles results in more choices, better cooling options, and different pricing tiers for the same GPU chip.&lt;/p&gt;

</description>
      <category>nvidia</category>
      <category>gpu</category>
      <category>amd</category>
    </item>
    <item>
      <title>Sanity (Headless) CMS Overview</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Thu, 17 Apr 2025 04:12:11 +0000</pubDate>
      <link>https://forem.com/aryan015/sanity-headless-cms-overview-58oa</link>
      <guid>https://forem.com/aryan015/sanity-headless-cms-overview-58oa</guid>
      <description>&lt;p&gt;&lt;strong&gt;Sanity&lt;/strong&gt; is a powerful headless CMS that gives developers full control over content structure, frontend frameworks, and backend management. It separates content management from content presentation, making it ideal for modern web development workflows.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Backend: Structured Content and APIs
&lt;/h2&gt;

&lt;p&gt;Sanity’s backend is built around the concept of structured content, defined using a simple schema in JavaScript. Here's how it manages the backend:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Content Studio&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sanity provides a customizable React-based admin interface called &lt;em&gt;Sanity Studio&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Developers define schemas for content types like posts, authors, and categories.&lt;/li&gt;
&lt;li&gt;Content editors use this studio to input and manage data in a structured format.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;GROQ (Graph-Relational Object Queries)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sanity uses GROQ, a query language designed for JSON-based content.&lt;/li&gt;
&lt;li&gt;Developers query content efficiently for use in any frontend or backend system.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Sanity API&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;All content is accessible via real-time APIs (REST or GraphQL).&lt;/li&gt;
&lt;li&gt;APIs return structured JSON, making it easy to use across different applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Webhooks and Real-Time Updates&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sanity supports webhooks for triggering builds or syncing with other services.&lt;/li&gt;
&lt;li&gt;Real-time content updates allow instant previews and collaboration.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎨 Frontend: Flexibility and Framework Freedom
&lt;/h2&gt;

&lt;p&gt;Sanity doesn't lock you into a specific frontend. You can use any framework you prefer—React, Next.js, Vue, Svelte, etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Portable Text&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Rich text content is stored in a portable format, allowing precise rendering control on the frontend.&lt;/li&gt;
&lt;li&gt;Developers can define how each content block should render, offering complete design flexibility.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Framework Integration&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Popular starter templates and toolkits are available for Next.js, Nuxt, and Gatsby.&lt;/li&gt;
&lt;li&gt;Sanity's APIs integrate smoothly with frontends via SDKs or direct HTTP calls.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Live Preview and Real-Time Collaboration&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sanity supports live preview setups where editors can see changes immediately.&lt;/li&gt;
&lt;li&gt;Great for teams working on content-heavy sites with dynamic components.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔄 Summary
&lt;/h2&gt;

&lt;p&gt;Sanity acts as a central content hub with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Customizable schema, real-time APIs, and structured content storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Freedom to use any framework, with support for rich text rendering and instant updates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes Sanity ideal for JAMstack, content-heavy applications, and teams who want maximum control over how content is created and displayed.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>sanity</category>
      <category>headlesscms</category>
      <category>cms</category>
    </item>
    <item>
      <title>What is OpenAI.fm?</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Thu, 17 Apr 2025 04:03:16 +0000</pubDate>
      <link>https://forem.com/aryan015/what-is-openaifm-aka</link>
      <guid>https://forem.com/aryan015/what-is-openaifm-aka</guid>
      <description>&lt;p&gt;&lt;strong&gt;OpenAI.fm&lt;/strong&gt; is an interactive platform developed by OpenAI that allows users to convert text into natural-sounding speech using advanced AI models. It leverages OpenAI's latest text-to-speech technologies, including models like GPT-4o-mini-TTS, to generate realistic and expressive audio outputs.&lt;/p&gt;




&lt;h3&gt;
  
  
  Key Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-Time Voice Generation&lt;/strong&gt;: Convert text to speech instantly with natural intonation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diverse Voice Options&lt;/strong&gt;: Choose from various voices such as Alloy, Ash, Ballad, Coral, Echo, Fable, Nova, Sage, Shimmer, and Verse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Emotional Tone Detection&lt;/strong&gt;: Adjust the emotional tone of the speech to match the context, with styles like Dramatic, Sports Coach, Mad Scientist, Auctioneer, and Connoisseur.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multilingual Support&lt;/strong&gt;: Generate audio in multiple languages and accents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexible Input Options&lt;/strong&gt;: Accepts raw text or TXT files for conversion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Data Retention&lt;/strong&gt;: Ensures privacy by automatically deleting text and audio post-processing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Access&lt;/strong&gt;: Provides an API for developers to integrate text-to-speech functionality into their applications.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Use Cases:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Educational Enhancement&lt;/strong&gt;: Create audio narrations for course materials to improve accessibility and cater to different learning styles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice Assistant Development&lt;/strong&gt;: Power voice assistants with natural-sounding, conversational interactions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Podcast Creation&lt;/strong&gt;: Generate voiceovers for podcast episodes with various emotional tones to enhance storytelling.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can explore and use OpenAI.fm for free by visiting their official website: &lt;a href="https://www.openai-fm.com/" rel="noopener noreferrer"&gt;openai-fm.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>openai</category>
      <category>ai</category>
      <category>chatgpt</category>
      <category>texttospeech</category>
    </item>
    <item>
      <title>How to shut down a windows computer😁</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Wed, 02 Apr 2025 04:45:37 +0000</pubDate>
      <link>https://forem.com/aryan015/how-to-shut-down-windows-computer-fi8</link>
      <guid>https://forem.com/aryan015/how-to-shut-down-windows-computer-fi8</guid>
      <description>&lt;h2&gt;
  
  
  1. Press &lt;code&gt;ctrl&lt;/code&gt; + &lt;code&gt;r&lt;/code&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  2. Type &lt;code&gt;shutdown /s /t 0&lt;/code&gt; for instant shutdown
&lt;/h2&gt;

&lt;h2&gt;
  
  
  3. Type &lt;code&gt;shutdown /r /t 0&lt;/code&gt; for instant restart
&lt;/h2&gt;

&lt;h2&gt;
  
  
  4. Type &lt;code&gt;showdown /s /t 60&lt;/code&gt; for shutdown after 60s
&lt;/h2&gt;

&lt;h2&gt;
  
  
  5. Type &lt;code&gt;showdown /r /t 60&lt;/code&gt; for restart after 60s
&lt;/h2&gt;

&lt;h2&gt;
  
  
  6. Type &lt;code&gt;showdown /a&lt;/code&gt; terminate schedule shutdown
&lt;/h2&gt;

</description>
      <category>os</category>
      <category>windows</category>
      <category>cmd</category>
      <category>cli</category>
    </item>
    <item>
      <title>How to serve PHP without Apache Distribution 🎅</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Tue, 01 Apr 2025 01:01:09 +0000</pubDate>
      <link>https://forem.com/aryan015/how-to-serve-php-without-apache-distribution-3p6f</link>
      <guid>https://forem.com/aryan015/how-to-serve-php-without-apache-distribution-3p6f</guid>
      <description>&lt;p&gt;Some people might know that PHP comes with build in server&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="n"&gt;php&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nc"&gt;S&lt;/span&gt; &lt;span class="n"&gt;localhost&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;8000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;note&lt;/code&gt;: But you will still need xampp 😆 for working with DB&lt;/p&gt;

</description>
      <category>php</category>
      <category>laravel</category>
      <category>xampp</category>
      <category>apache</category>
    </item>
    <item>
      <title>Difference Between REST API and Normal API</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Tue, 25 Mar 2025 14:16:24 +0000</pubDate>
      <link>https://forem.com/aryan015/difference-between-rest-api-and-normal-api-4pba</link>
      <guid>https://forem.com/aryan015/difference-between-rest-api-and-normal-api-4pba</guid>
      <description>&lt;h3&gt;
  
  
  🚀 &lt;strong&gt;1. 🔥 What is a Normal API?&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API (Application Programming Interface)&lt;/strong&gt; is a &lt;strong&gt;generic term&lt;/strong&gt; for any set of functions or methods that allow applications to &lt;strong&gt;communicate&lt;/strong&gt; with each other.
&lt;/li&gt;
&lt;li&gt;It can be:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local or remote&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Can use &lt;strong&gt;any protocol&lt;/strong&gt; (HTTP, TCP, UDP, etc.).
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Not restricted to web-based communication&lt;/strong&gt;.
&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Examples:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Library API:&lt;/strong&gt; Python’s &lt;code&gt;math.sqrt()&lt;/code&gt; function.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database API:&lt;/strong&gt; &lt;code&gt;MySQL Connector&lt;/code&gt; for interacting with a database.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System API:&lt;/strong&gt; Linux system calls like &lt;code&gt;read()&lt;/code&gt; or &lt;code&gt;write()&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware API:&lt;/strong&gt; DirectX for rendering graphics.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔥 &lt;strong&gt;2. ⚙️ What is a REST API?&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;REST (Representational State Transfer)&lt;/strong&gt; is a &lt;strong&gt;specific type of web API&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;It follows the &lt;strong&gt;RESTful architecture&lt;/strong&gt; and uses &lt;strong&gt;HTTP methods&lt;/strong&gt; to interact with resources.
&lt;/li&gt;
&lt;li&gt;REST APIs:

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;stateless communication&lt;/strong&gt; (each request is independent).
&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;standard HTTP methods&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;GET&lt;/code&gt; → Retrieve data.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST&lt;/code&gt; → Create new data.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;PUT/PATCH&lt;/code&gt; → Update existing data.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DELETE&lt;/code&gt; → Remove data.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Use &lt;strong&gt;JSON or XML&lt;/strong&gt; for data exchange.
&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Examples:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub REST API:&lt;/strong&gt; To access GitHub data over HTTP.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenWeather API:&lt;/strong&gt; For weather data retrieval.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stripe API:&lt;/strong&gt; For payment processing.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  ⚙️ &lt;strong&gt;3. Key Differences:&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Feature&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Normal API&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;REST API&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scope&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Generic term&lt;/strong&gt; for all APIs&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Specific type of web API&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Protocol&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Uses &lt;strong&gt;any protocol&lt;/strong&gt; (TCP, UDP, etc.)&lt;/td&gt;
&lt;td&gt;Uses &lt;strong&gt;HTTP/HTTPS&lt;/strong&gt; only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;State management&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Can be &lt;strong&gt;stateful&lt;/strong&gt; or &lt;strong&gt;stateless&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Stateless&lt;/strong&gt; by design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data format&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Any format (binary, JSON, XML)&lt;/td&gt;
&lt;td&gt;Mostly &lt;strong&gt;JSON or XML&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Methods&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Varies (no fixed methods)&lt;/td&gt;
&lt;td&gt;Uses &lt;strong&gt;standard HTTP methods&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Communication&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Local or remote&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Web-based&lt;/strong&gt; (remote) communication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;File System API, Database API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;GitHub, Stripe, AWS S3 REST API&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;✅ &lt;strong&gt;🔥 Final Takeaway:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Normal API:&lt;/strong&gt; A broad term covering all APIs (local, web, database, etc.).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REST API:&lt;/strong&gt; A &lt;strong&gt;specific type of web API&lt;/strong&gt; that uses HTTP and follows RESTful principles.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All REST APIs are APIs, but not all APIs are RESTful.&lt;/strong&gt; 🚀&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>node</category>
      <category>laravel</category>
      <category>express</category>
      <category>php</category>
    </item>
    <item>
      <title>Creating an AWS Lambda Function Using Serverless Framework</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Mon, 24 Mar 2025 10:01:18 +0000</pubDate>
      <link>https://forem.com/aryan015/creating-an-aws-lambda-function-using-serverless-framework-3ki0</link>
      <guid>https://forem.com/aryan015/creating-an-aws-lambda-function-using-serverless-framework-3ki0</guid>
      <description>&lt;h2&gt;
  
  
  🔥 &lt;strong&gt;What is AWS Lambda?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;AWS Lambda is a &lt;strong&gt;serverless compute service&lt;/strong&gt; that lets you run code without managing servers. You simply upload your code, and Lambda automatically handles the infrastructure, scaling, and execution.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ &lt;strong&gt;Benefits of Using Serverless Framework&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Serverless Framework&lt;/strong&gt; is a powerful open-source tool that simplifies the process of creating and managing AWS Lambda functions.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;Key Advantages&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simplifies Deployment:&lt;/strong&gt; Easily deploy Lambda functions with simple commands.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure as Code:&lt;/strong&gt; Use the &lt;code&gt;serverless.yml&lt;/code&gt; file to define infrastructure and configuration.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supports Multiple Providers:&lt;/strong&gt; AWS, Azure, Google Cloud, etc.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in Support:&lt;/strong&gt; Manages API Gateway, DynamoDB, S3, and other AWS services.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔥 &lt;strong&gt;1. Install Serverless Framework&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;First, install the Serverless CLI globally using &lt;code&gt;npm&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; serverless
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify the installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;serverless &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🛠️ &lt;strong&gt;2. Create a New Serverless Project&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Generate a new Serverless project with AWS as the provider:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;serverless create &lt;span class="nt"&gt;--template&lt;/span&gt; aws-nodejs &lt;span class="nt"&gt;--path&lt;/span&gt; my-lambda-function
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;aws-nodejs&lt;/code&gt; → AWS Lambda with Node.js runtime.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;my-lambda-function&lt;/code&gt; → Your project folder name.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go into the project directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;my-lambda-function
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔧 &lt;strong&gt;3. Install Dependencies&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Install the necessary dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🌐 &lt;strong&gt;4. Configure AWS Credentials&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you haven’t already, configure your AWS credentials:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;serverless config credentials &lt;span class="nt"&gt;--provider&lt;/span&gt; aws &lt;span class="nt"&gt;--key&lt;/span&gt; &amp;lt;AWS_ACCESS_KEY&amp;gt; &lt;span class="nt"&gt;--secret&lt;/span&gt; &amp;lt;AWS_SECRET_KEY&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ &lt;strong&gt;Get your access key and secret key&lt;/strong&gt; from &lt;a href="https://console.aws.amazon.com/iam" rel="noopener noreferrer"&gt;AWS IAM&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ &lt;strong&gt;5. Edit &lt;code&gt;serverless.yml&lt;/code&gt; Configuration&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Open the &lt;code&gt;serverless.yml&lt;/code&gt; file and define your Lambda function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;service&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-lambda-service&lt;/span&gt;

&lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;aws&lt;/span&gt;
  &lt;span class="na"&gt;runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nodejs18.x&lt;/span&gt;
  &lt;span class="na"&gt;region&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;us-east-1&lt;/span&gt;

&lt;span class="na"&gt;functions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;hello&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;handler&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;handler.hello&lt;/span&gt;
    &lt;span class="na"&gt;events&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;http&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;hello&lt;/span&gt;
          &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;get&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;Explanation:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;service&lt;/code&gt;: Name of your Lambda service.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;provider&lt;/code&gt;: AWS settings, including the region and runtime.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;functions&lt;/code&gt;: The Lambda function definition.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;events&lt;/code&gt;: Triggering the Lambda through an HTTP request.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔥 &lt;strong&gt;6. Write the Lambda Function&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Open the &lt;code&gt;handler.js&lt;/code&gt; file and add the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;hello&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&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="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;statusCode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello from Lambda!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ This function returns a simple JSON response.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 &lt;strong&gt;7. Deploy the Lambda Function&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Deploy your Lambda function to AWS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;serverless deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once deployed, you’ll see the API Gateway endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Service deployed to: https://&amp;lt;your-api-id&amp;gt;.execute-api.&amp;lt;region&amp;gt;.amazonaws.com/dev/hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🌐 &lt;strong&gt;8. Test the Lambda Function&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You can test the function using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://&amp;lt;your-api-id&amp;gt;.execute-api.&amp;lt;region&amp;gt;.amazonaws.com/dev/hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;serverless invoke &lt;span class="nt"&gt;-f&lt;/span&gt; hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚙️ &lt;strong&gt;9. Cleaning Up&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To remove the Lambda function and free up resources:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;serverless remove
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ✅ &lt;strong&gt;Key Takeaways&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Serverless Framework&lt;/strong&gt; simplifies AWS Lambda deployment.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Scaling:&lt;/strong&gt; No need to manage infrastructure.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost-Efficient:&lt;/strong&gt; You only pay for what you use.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick Deployment:&lt;/strong&gt; Easily create and deploy Lambda functions with minimal configuration.
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🚀 &lt;strong&gt;Next Steps&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add more Lambda functions.
&lt;/li&gt;
&lt;li&gt;Integrate with AWS services like S3, DynamoDB, and API Gateway.
&lt;/li&gt;
&lt;li&gt;Optimize and secure your serverless functions.
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloud</category>
      <category>aws</category>
      <category>lambda</category>
      <category>azure</category>
    </item>
    <item>
      <title>Redis: A Powerful In-Memory Data Store</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Tue, 18 Mar 2025 06:55:17 +0000</pubDate>
      <link>https://forem.com/aryan015/redis-a-powerful-in-memory-data-store-4lo7</link>
      <guid>https://forem.com/aryan015/redis-a-powerful-in-memory-data-store-4lo7</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Redis (Remote Dictionary Server) is an open-source, in-memory data store that functions as a key-value database, cache, and message broker. Known for its lightning-fast performance, Redis is widely used in real-time applications, such as gaming leaderboards, session storage, and caching frequently accessed data. With support for multiple data structures and atomic operations, Redis has become a go-to solution for enhancing application performance and scalability.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features of Redis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;In-Memory Storage&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Redis stores all data in RAM, making it extremely fast with low latency.&lt;/li&gt;
&lt;li&gt;Ideal for caching and real-time analytics.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Data Structures&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Redis supports a variety of data types:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strings:&lt;/strong&gt; &lt;code&gt;SET&lt;/code&gt;, &lt;code&gt;GET&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lists:&lt;/strong&gt; &lt;code&gt;LPUSH&lt;/code&gt;, &lt;code&gt;LRANGE&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hashes:&lt;/strong&gt; &lt;code&gt;HSET&lt;/code&gt;, &lt;code&gt;HGET&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sets:&lt;/strong&gt; &lt;code&gt;SADD&lt;/code&gt;, &lt;code&gt;SREM&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sorted Sets:&lt;/strong&gt; &lt;code&gt;ZADD&lt;/code&gt;, &lt;code&gt;ZREM&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Bitmaps, HyperLogLogs, and Streams.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Persistence&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Despite being in-memory, Redis offers &lt;strong&gt;persistence&lt;/strong&gt; using:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RDB (Redis Database):&lt;/strong&gt; Snapshots of data saved at regular intervals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AOF (Append Only File):&lt;/strong&gt; Logs every write operation for durability.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Replication &amp;amp; Clustering&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Redis supports &lt;strong&gt;master-slave replication&lt;/strong&gt;, enabling read scalability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redis Cluster&lt;/strong&gt; allows horizontal scaling by partitioning data across multiple nodes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. &lt;strong&gt;Pub/Sub Messaging&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Redis provides a &lt;strong&gt;Publish/Subscribe (Pub/Sub)&lt;/strong&gt; mechanism, making it suitable for event notification systems and real-time communication.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Use Cases of Redis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;Caching&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Redis is commonly used as a cache layer in web applications to reduce database load.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Caching API responses or session data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;Session Management&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Storing user sessions for faster authentication in web apps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Storing JWT tokens or temporary authentication data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;Rate Limiting&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Redis helps implement rate limiting by tracking the number of requests from a user within a time frame.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Preventing API abuse by limiting requests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;Real-Time Analytics&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Redis processes large volumes of data quickly, making it suitable for real-time analytics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Tracking page views or clicks on a website.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;Message Queues&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Redis serves as a lightweight message broker.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Delayed job execution or task queues.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Redis vs. Other Databases
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Feature&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Redis&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Memcached&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;MongoDB&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Storage Type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;In-memory&lt;/td&gt;
&lt;td&gt;In-memory&lt;/td&gt;
&lt;td&gt;Disk (document-based)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Persistence&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;RDB, AOF&lt;/td&gt;
&lt;td&gt;No persistence&lt;/td&gt;
&lt;td&gt;Fully persistent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Structures&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Strings, Lists, Sets&lt;/td&gt;
&lt;td&gt;Strings&lt;/td&gt;
&lt;td&gt;Documents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Replication&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Master-slave, Cluster&lt;/td&gt;
&lt;td&gt;Multi-threaded architecture&lt;/td&gt;
&lt;td&gt;Replica sets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Use Case&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cache, Session store&lt;/td&gt;
&lt;td&gt;Cache only&lt;/td&gt;
&lt;td&gt;NoSQL database&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Redis Commands and Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔥 &lt;strong&gt;Set and Get a Key:&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;SET username &lt;span class="s2"&gt;"Aryan"&lt;/span&gt;
GET username
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔥 &lt;strong&gt;Increment and Decrement:&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;INCR counter    &lt;span class="c"&gt;# Increments by 1&lt;/span&gt;
DECR counter    &lt;span class="c"&gt;# Decrements by 1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔥 &lt;strong&gt;List Operations:&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;LPUSH students &lt;span class="s2"&gt;"John"&lt;/span&gt; &lt;span class="s2"&gt;"Alice"&lt;/span&gt;  &lt;span class="c"&gt;# Add elements to the list&lt;/span&gt;
LRANGE students 0 &lt;span class="nt"&gt;-1&lt;/span&gt;           &lt;span class="c"&gt;# Retrieve all elements&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔥 &lt;strong&gt;Hash Operations:&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;HSET user:1001 name &lt;span class="s2"&gt;"Aryan"&lt;/span&gt; age &lt;span class="s2"&gt;"25"&lt;/span&gt;
HGET user:1001 name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔥 &lt;strong&gt;Expiration and TTL:&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;SET session:1234 &lt;span class="s2"&gt;"active"&lt;/span&gt;
EXPIRE session:1234 60   &lt;span class="c"&gt;# Expires after 60 seconds&lt;/span&gt;
TTL session:1234         &lt;span class="c"&gt;# Check time-to-live&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Benefits of Redis
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;Speed:&lt;/strong&gt; In-memory operations result in blazing-fast read/write speeds.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Flexibility:&lt;/strong&gt; Supports multiple data types for versatile use cases.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Scalability:&lt;/strong&gt; Easy to scale horizontally with Redis Cluster.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Reliability:&lt;/strong&gt; Offers persistence through snapshots and logs.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Simplicity:&lt;/strong&gt; Easy to use with simple and consistent commands.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges and Limitations
&lt;/h2&gt;

&lt;p&gt;❌ &lt;strong&gt;Memory-Intensive:&lt;/strong&gt; As an in-memory database, Redis requires large amounts of RAM for bigger datasets.&lt;br&gt;&lt;br&gt;
❌ &lt;strong&gt;Limited Query Capabilities:&lt;/strong&gt; Lacks the complex querying features of traditional RDBMS.&lt;br&gt;&lt;br&gt;
❌ &lt;strong&gt;Persistence Trade-off:&lt;/strong&gt; While Redis supports persistence, it is not as robust as disk-based databases.&lt;br&gt;&lt;br&gt;
❌ &lt;strong&gt;Single-threaded Performance:&lt;/strong&gt; Although Redis handles multiple connections concurrently, it uses a single-threaded model, which can be a bottleneck under heavy CPU-bound operations.  &lt;/p&gt;




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

&lt;p&gt;Redis is a powerful in-memory data store that offers blazing-fast performance and versatility. Whether used for caching, message queues, or real-time analytics, Redis significantly boosts application performance. Its simplicity, speed, and support for various data structures make it a valuable tool in modern web and cloud-based applications.&lt;/p&gt;

&lt;p&gt;🔥 &lt;strong&gt;Have you used Redis in your projects? Share your experience in the comments!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>redis</category>
      <category>node</category>
      <category>express</category>
      <category>laravel</category>
    </item>
    <item>
      <title>Static Site Generation (SSG) vs. Incremental Static Regeneration (ISR) in Modern Web Development</title>
      <dc:creator>aryan015</dc:creator>
      <pubDate>Sun, 16 Mar 2025 03:31:27 +0000</pubDate>
      <link>https://forem.com/aryan015/static-site-generation-ssg-vs-incremental-static-regeneration-isr-in-modern-web-development-4h50</link>
      <guid>https://forem.com/aryan015/static-site-generation-ssg-vs-incremental-static-regeneration-isr-in-modern-web-development-4h50</guid>
      <description>&lt;p&gt;When building web applications, &lt;strong&gt;performance and scalability&lt;/strong&gt; are critical. &lt;strong&gt;Static Site Generation (SSG)&lt;/strong&gt; and &lt;strong&gt;Incremental Static Regeneration (ISR)&lt;/strong&gt; are two powerful techniques that help developers create fast, SEO-friendly, and efficient web experiences.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll explore &lt;strong&gt;SSG&lt;/strong&gt; and &lt;strong&gt;ISR&lt;/strong&gt;, how they work, their advantages, and when to use each.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;What is Static Site Generation (SSG)?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Static Site Generation (SSG)&lt;/strong&gt; is a method where &lt;strong&gt;HTML pages are generated at build time&lt;/strong&gt; and served as static files. These pre-rendered pages ensure fast loading speeds and improved SEO.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How SSG Works?&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;At &lt;strong&gt;build time&lt;/strong&gt;, the framework generates static HTML pages from dynamic content.&lt;/li&gt;
&lt;li&gt;These static pages are deployed to a CDN or hosting service.&lt;/li&gt;
&lt;li&gt;When a user requests a page, it is served instantly &lt;strong&gt;without any server processing&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Pros of SSG:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Super Fast Performance&lt;/strong&gt; – Pages are pre-built and served instantly.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Better SEO&lt;/strong&gt; – Search engines can easily crawl and index pages.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Reduced Server Load&lt;/strong&gt; – No need to process requests dynamically.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Works Offline&lt;/strong&gt; – Since the pages are static, they can be cached for offline access.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Cons of SSG:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;❌ &lt;strong&gt;Slow Build Times&lt;/strong&gt; – If the site has many pages, builds can take longer.&lt;/li&gt;
&lt;li&gt;❌ &lt;strong&gt;Not Suitable for Frequently Changing Data&lt;/strong&gt; – Since pages are built once, updates require a full rebuild.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Common Use Cases for SSG:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Blogs and News Websites&lt;/li&gt;
&lt;li&gt;Marketing &amp;amp; Landing Pages&lt;/li&gt;
&lt;li&gt;Documentation Sites (e.g., Next.js, Docusaurus)&lt;/li&gt;
&lt;li&gt;Portfolio Websites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠 &lt;strong&gt;Popular Frameworks for SSG:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;Gatsby&lt;/li&gt;
&lt;li&gt;Hugo&lt;/li&gt;
&lt;li&gt;Jekyll&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;What is Incremental Static Regeneration (ISR)?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Incremental Static Regeneration (ISR)&lt;/strong&gt; is an advanced version of SSG that allows &lt;strong&gt;real-time updates to static pages without rebuilding the entire site&lt;/strong&gt;. This means that you can get the performance benefits of SSG while still handling dynamic content updates efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How ISR Works?&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The site is initially generated &lt;strong&gt;at build time&lt;/strong&gt; like SSG.&lt;/li&gt;
&lt;li&gt;When a user requests a page, it serves the pre-rendered static version.&lt;/li&gt;
&lt;li&gt;If the page needs to be updated, the framework &lt;strong&gt;regenerates it in the background&lt;/strong&gt; and caches the new version for future requests.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Pros of ISR:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Faster Builds&lt;/strong&gt; – Only specific pages are updated instead of the whole site.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Handles Dynamic Content&lt;/strong&gt; – Content updates can be reflected &lt;strong&gt;without redeploying&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Improved Performance&lt;/strong&gt; – Users always get a cached version while updates happen asynchronously.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Ideal for Large Websites&lt;/strong&gt; – Useful for e-commerce sites, news platforms, or apps with frequent content changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Cons of ISR:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;❌ &lt;strong&gt;Slightly Slower Initial Request&lt;/strong&gt; – If the page is being regenerated, the first user might experience a delay.&lt;/li&gt;
&lt;li&gt;❌ &lt;strong&gt;Complex Caching&lt;/strong&gt; – Requires proper cache invalidation strategies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Common Use Cases for ISR:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;News Websites (frequent updates)&lt;/li&gt;
&lt;li&gt;E-commerce Stores (product availability changes)&lt;/li&gt;
&lt;li&gt;Real-time Event Listings&lt;/li&gt;
&lt;li&gt;Large Blogs with Many Posts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠 &lt;strong&gt;Popular Framework for ISR:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt; (with &lt;code&gt;revalidate&lt;/code&gt; property in &lt;code&gt;getStaticProps&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;SSG vs. ISR: Key Differences&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;SSG (Static Site Generation)&lt;/th&gt;
&lt;th&gt;ISR (Incremental Static Regeneration)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;🚀 Extremely Fast&lt;/td&gt;
&lt;td&gt;⚡ Fast with occasional delays&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SEO-Friendly&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Handles Dynamic Data&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ No (requires full rebuild)&lt;/td&gt;
&lt;td&gt;✅ Yes (updates pages without full rebuild)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Build Time&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;⏳ Can be slow for large sites&lt;/td&gt;
&lt;td&gt;🕒 Faster since pages regenerate incrementally&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best For&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Static content (blogs, portfolios, docs)&lt;/td&gt;
&lt;td&gt;Frequently updated content (news, e-commerce)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;When Should You Use SSG or ISR?&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use SSG&lt;/strong&gt; if your content is mostly &lt;strong&gt;static&lt;/strong&gt; and does not change frequently (e.g., blogs, portfolios, marketing pages).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use ISR&lt;/strong&gt; if your website has &lt;strong&gt;frequent updates&lt;/strong&gt; but you still want &lt;strong&gt;static-like performance&lt;/strong&gt; (e.g., e-commerce, news sites).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Both &lt;strong&gt;SSG and ISR&lt;/strong&gt; are powerful techniques that optimize &lt;strong&gt;speed, SEO, and scalability&lt;/strong&gt;. If you're using &lt;strong&gt;Next.js&lt;/strong&gt;, you can combine both approaches to get the best of &lt;strong&gt;performance and flexibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Which approach do you prefer for your web projects? Let me know in the comments! 🚀&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>node</category>
      <category>express</category>
      <category>laravel</category>
    </item>
  </channel>
</rss>
