<?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: Shivam</title>
    <description>The latest articles on Forem by Shivam (@shivam_nilay).</description>
    <link>https://forem.com/shivam_nilay</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%2F2686836%2F9450d812-2588-40e6-9bb6-5cb34ffed805.jpg</url>
      <title>Forem: Shivam</title>
      <link>https://forem.com/shivam_nilay</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shivam_nilay"/>
    <language>en</language>
    <item>
      <title>🚀 I Just Launched My Interactive Developer Portfolio!</title>
      <dc:creator>Shivam</dc:creator>
      <pubDate>Sun, 12 Oct 2025 13:49:09 +0000</pubDate>
      <link>https://forem.com/shivam_nilay/i-just-launched-my-interactive-developer-portfolio-4nj7</link>
      <guid>https://forem.com/shivam_nilay/i-just-launched-my-interactive-developer-portfolio-4nj7</guid>
      <description>&lt;p&gt;Hey folks 👋&lt;/p&gt;

&lt;p&gt;I’ve been working on something special, my interactive developer portfolio, built to look and feel like a VS Code IDE and a Terminal.&lt;/p&gt;

&lt;p&gt;It’s a static site but it’s designed to feel like a real coding environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://shivamhere.fyi" rel="noopener noreferrer"&gt;Visit My Portfolio&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>frontend</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Launching My Fullstack Auth Template (Go + Next.js) — Email Verification, JWT, Redis, Docker &amp; More</title>
      <dc:creator>Shivam</dc:creator>
      <pubDate>Wed, 23 Apr 2025 09:37:52 +0000</pubDate>
      <link>https://forem.com/shivam_nilay/launching-my-fullstack-auth-template-go-nextjs-email-verification-jwt-redis-docker-more-174m</link>
      <guid>https://forem.com/shivam_nilay/launching-my-fullstack-auth-template-go-nextjs-email-verification-jwt-redis-docker-more-174m</guid>
      <description>&lt;p&gt;Hey devs,&lt;/p&gt;

&lt;p&gt;I've been working on building clean and secure auth flows for my own side projects, and decided to bundle everything into a plug-and-play auth starter template built with Golang (Gin) and Next.js.&lt;/p&gt;

&lt;p&gt;If you're building a SaaS, MVP, or just tired of rewriting the same login logic over and over — this is for you.&lt;/p&gt;

&lt;p&gt;🔐 What It Includes&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Email verification with secure token links&lt;/li&gt;
&lt;li&gt;🔐 JWT-based auth with HttpOnly cookie sessions&lt;/li&gt;
&lt;li&gt;🔁 Logout from all devices (Redis-backed session tracking)&lt;/li&gt;
&lt;li&gt;🐘 PostgreSQL + 🐳 Redis setup (via Docker)&lt;/li&gt;
&lt;li&gt;🌱 Clean and extensible folder structure&lt;/li&gt;
&lt;li&gt;💬 .env examples for both frontend &amp;amp; backend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🧱 Tech Stack&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend: Go (Gin)&lt;/li&gt;
&lt;li&gt;Frontend: Next.js (App Router) + TypeScript&lt;/li&gt;
&lt;li&gt;Database: PostgreSQL&lt;/li&gt;
&lt;li&gt;Cache: Redis&lt;/li&gt;
&lt;li&gt;Deployment Ready: Docker Compose&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Why I Built It&lt;br&gt;
Most templates either go too deep or miss the critical stuff like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proper email verification&lt;/li&gt;
&lt;li&gt;Clean session invalidation&lt;/li&gt;
&lt;li&gt;Easy Docker-based dev setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I made something minimal yet production-grade — ideal for indie hackers, founders, and solo devs who want auth done right from day one.&lt;/p&gt;

&lt;p&gt;📦 Get the Template&lt;br&gt;
&lt;a href="https://shivnilay.gumroad.com/l/xgfcq" rel="noopener noreferrer"&gt;Get it for $79 on Gumroad&lt;/a&gt;&lt;br&gt;
&lt;a href="https://stockedcode.lemonsqueezy.com/buy/a6ebb7ab-2698-446b-b764-9c6ae90bac1e" rel="noopener noreferrer"&gt;Buy on Lemon Squeezy for INR 6599&lt;/a&gt;&lt;br&gt;
Use code &lt;strong&gt;DEVLAUNCH20&lt;/strong&gt; for 20% OFF (limited to 20 buyers)&lt;/p&gt;

&lt;p&gt;🙌 Would love your feedback!&lt;br&gt;
Let me know what you'd love to see in future versions: OAuth logins, email templates, forgot password, etc.&lt;/p&gt;

&lt;p&gt;Feel free to reach out at &lt;a href="mailto:connect@shivamhere.fyi"&gt;connect@shivamhere.fyi&lt;/a&gt; — happy to help!&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br&gt;
Shivam&lt;br&gt;
Building in public 🛠️&lt;/p&gt;

</description>
      <category>go</category>
      <category>nextjs</category>
      <category>typescript</category>
      <category>jwt</category>
    </item>
    <item>
      <title>Ever Wondered How TCP Connections Work? This Visual Explains It All.</title>
      <dc:creator>Shivam</dc:creator>
      <pubDate>Tue, 15 Apr 2025 20:30:12 +0000</pubDate>
      <link>https://forem.com/shivam_nilay/ever-wondered-how-tcp-connections-work-this-visual-explains-it-all-ki6</link>
      <guid>https://forem.com/shivam_nilay/ever-wondered-how-tcp-connections-work-this-visual-explains-it-all-ki6</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6jmqxhadxa59qxelnda.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6jmqxhadxa59qxelnda.png" alt="Image description" width="800" height="725"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Initiation:&lt;/strong&gt; The image depicts a client initiating a connection to a server. The client sends a SYN packet, indicating its desire to establish a connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Agreement:&lt;/strong&gt; The server acknowledges the client's request with a SYN-ACK packet, confirming its willingness to connect and proposing sequence numbers for the communication.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Confirmation:&lt;/strong&gt; The client receives the SYN-ACK and sends an ACK packet back to the server, finalizing the connection establishment and confirming the sequence numbers.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>tcp</category>
      <category>networking</category>
    </item>
    <item>
      <title>These TypeScript Utility Types Will Give You a Head Start</title>
      <dc:creator>Shivam</dc:creator>
      <pubDate>Mon, 14 Apr 2025 15:40:16 +0000</pubDate>
      <link>https://forem.com/shivam_nilay/these-7-typescript-utility-types-will-give-you-a-head-start-alk</link>
      <guid>https://forem.com/shivam_nilay/these-7-typescript-utility-types-will-give-you-a-head-start-alk</guid>
      <description>&lt;p&gt;Mastering utility types early helps you write cleaner and safer TypeScript.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frehl669n7e7qnse8oy0e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frehl669n7e7qnse8oy0e.png" alt="Image description" width="800" height="1404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recap&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;Partial&lt;/code&gt; when some props can be optional&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;Pick&lt;/code&gt;/&lt;code&gt;Omit&lt;/code&gt; to customize interfaces&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;Record&lt;/code&gt; to map keys to values like enums&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Save this post if it helped! 💙&lt;/p&gt;

</description>
      <category>typescript</category>
    </item>
  </channel>
</rss>
