<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Yafi Alhakim</title>
<link>https://yaffalhakim1.github.io/</link>
<description>Fullstack Engineer from Indonesia, currently at MySkill.id. I build for the web and the desktop — fast pages, honest APIs, and interfaces that stay out of the way.</description>
<atom:link href="https://yaffalhakim1.github.io/rss.xml" rel="self" type="application/rss+xml" />
<item>
<title>Variables: The &quot;Mutability Contract&quot;</title>
<link>https://yaffalhakim1.github.io/blog/variables-the-mutability-contract</link>
<description>In JavaScript, you use let and const for everything. In Rust, variables are Immutable by Default. This is a strict Mutability Contract that ensures yo...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/variables-the-mutability-contract</guid>
</item>
<item>
<title>Traits: The &quot;Contract&quot; System</title>
<link>https://yaffalhakim1.github.io/blog/traits-the-contract-system</link>
<description>&gt; ABSTRACT: 🧩 Analogy for Frontend Developers &gt; A Trait in Rust is exactly like an interface in TypeScript. &gt; &gt; Think of a Trait as a Contract or ...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/traits-the-contract-system</guid>
</item>
<item>
<title>Testing: The &quot;Quality Contract&quot;</title>
<link>https://yaffalhakim1.github.io/blog/testing-the-quality-contract</link>
<description>Coming from a background of Jest, Vitest, or Mocha, you&apos;ll find Rust&apos;s built-in testing suite incredibly refreshing. No extra dependencies are needed ...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/testing-the-quality-contract</guid>
</item>
<item>
<title>Structs &amp; Enums: The &quot;Blueprint&quot; and &quot;State Machine&quot;</title>
<link>https://yaffalhakim1.github.io/blog/structs-enums-the-blueprint-and-state-machine</link>
<description>In JavaScript, you often use plain objects for everything. In Rust, we use Structs and Enums to model data with absolute precision. Think of it as the...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/structs-enums-the-blueprint-and-state-machine</guid>
</item>
<item>
<title>Strings: The &quot;UTF-8 Narrative&quot;</title>
<link>https://yaffalhakim1.github.io/blog/strings-the-utf-8-narrative</link>
<description>In JavaScript, a &quot;string&quot; is just a string. Whether it&apos;s a literal or a variable, it behaves the same. In Rust, Strings are much more complex because ...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/strings-the-utf-8-narrative</guid>
</item>
<item>
<title>Smart Pointers: The &quot;Specialized Containers&quot;</title>
<link>https://yaffalhakim1.github.io/blog/smart-pointers-the-specialized-containers</link>
<description>In JavaScript, most &quot;pointing&quot; is hidden. Every object or array is actually a reference (a pointer). In Rust, pointers are explicit, and Smart Pointer...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/smart-pointers-the-specialized-containers</guid>
</item>
<item>
<title>Primitive Types: The &quot;Core Building Blocks&quot;</title>
<link>https://yaffalhakim1.github.io/blog/primitive-types-the-core-building-blocks</link>
<description>In JavaScript, you have one &quot;number&quot; type and one &quot;string&quot; type. In Rust, you have Scalar and Compound primitives that define the physical shape and s...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/primitive-types-the-core-building-blocks</guid>
</item>
<item>
<title>Ownership: The &quot;Relay Race&quot; of Memory</title>
<link>https://yaffalhakim1.github.io/blog/ownership-the-relay-race-of-memory</link>
<description>In JavaScript, you don&apos;t worry about memory because the Garbage Collector cleans it up for you like a background janitor. In Rust, Ownership takes its...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/ownership-the-relay-race-of-memory</guid>
</item>
<item>
<title>Modules &amp; Organization</title>
<link>https://yaffalhakim1.github.io/blog/modules-organization</link>
<description>Rust&apos;s modules are similar to JS/TS files and folders, but with much more explicit control over visibility. &gt; ABSTRACT: 🧩 Analogy for Frontend Deve...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/modules-organization</guid>
</item>
<item>
<title>Macros &amp; Patterns: The &quot;Metaprogramming Magic&quot;</title>
<link>https://yaffalhakim1.github.io/blog/macros-patterns-the-metaprogramming-magic</link>
<description>If you&apos;ve reached this part of Rust, you&apos;re looking at the tools that power the libraries you&apos;ve been using (like vec!, println!, or serde). These are...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/macros-patterns-the-metaprogramming-magic</guid>
</item>
<item>
<title>Lifetimes: The &quot;Timeline Contract&quot;</title>
<link>https://yaffalhakim1.github.io/blog/lifetimes-the-timeline-contract</link>
<description>Lifetimes are the most unique feature of Rust. You have probably never encountered them in JavaScript or TypeScript because the browser&apos;s Garbage Coll...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/lifetimes-the-timeline-contract</guid>
</item>
<item>
<title>Iterators &amp; Closures: The &quot;Functional Powerhouse&quot;</title>
<link>https://yaffalhakim1.github.io/blog/iterators-closures-the-functional-powerhouse</link>
<description>If you&apos;re coming from modern JavaScript, you&apos;re already used to Functional Programming. You use .map(), .filter(), and .reduce() every day. In Rust,...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/iterators-closures-the-functional-powerhouse</guid>
</item>
<item>
<title>Getting Started: The &quot;Hello World&quot; Narrative</title>
<link>https://yaffalhakim1.github.io/blog/getting-started-the-hello-world-narrative</link>
<description>Starting with Rust isn&apos;t just about learning a new language; it&apos;s about adopting a Professional Toolchain. While you use npm or yarn for JS, in Rust, ...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/getting-started-the-hello-world-narrative</guid>
</item>
<item>
<title>Generics: The &quot;Template Contract&quot;</title>
<link>https://yaffalhakim1.github.io/blog/generics-the-template-contract</link>
<description>If you are a frontend developer coming from TypeScript, you actually already understand the core concept of Generics in Rust! They solve the exact sam...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/generics-the-template-contract</guid>
</item>
<item>
<title>Functions: The &quot;Expression Narrative&quot;</title>
<link>https://yaffalhakim1.github.io/blog/functions-the-expression-narrative</link>
<description>In JavaScript, functions often feel like a playground of &quot;statements&quot; (lines of code that just do stuff). In Rust, functions are structured as a Narra...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/functions-the-expression-narrative</guid>
</item>
<item>
<title>Error Handling: The &quot;Safety Net Contract&quot;</title>
<link>https://yaffalhakim1.github.io/blog/error-handling-the-safety-net-contract</link>
<description>In JavaScript, errors are &quot;invisible.&quot; You don&apos;t know if a function will return null, undefined, or throw a hidden exception until your code crashes i...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/error-handling-the-safety-net-contract</guid>
</item>
<item>
<title>Control Flow: The &quot;Expression Engine&quot;</title>
<link>https://yaffalhakim1.github.io/blog/control-flow-the-expression-engine</link>
<description>In JavaScript, if/else is a Statement (it does something). In Rust, if/else and match are Expressions (they evaluate to a value). Think of Rust&apos;s co...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/control-flow-the-expression-engine</guid>
</item>
<item>
<title>Concurrency: The &quot;Fearless Threads&quot;</title>
<link>https://yaffalhakim1.github.io/blog/concurrency-the-fearless-threads</link>
<description>In modern JavaScript, you use Promises (async/await) or Web Workers for &quot;concurrency.&quot; In Rust, you have OS-level threads (std::thread). These are muc...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/concurrency-the-fearless-threads</guid>
</item>
<item>
<title>Collections: The &quot;Dynamic Containers&quot;</title>
<link>https://yaffalhakim1.github.io/blog/collections-the-dynamic-containers</link>
<description>In JavaScript, every Array or Object is dynamic. You can add or remove elements whenever you want. In Rust, we use Collections when we need that same ...</description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/collections-the-dynamic-containers</guid>
</item>
<item>
<title>Rust for Frontend Developers:  Mastering Ownership &amp; Borrowing</title>
<link>https://yaffalhakim1.github.io/blog/rust-for-frontend-developers-mastering-ownership-borrowing--deleted</link>
<description>If you&apos;ve ever felt like the JavaScript garbage collector was doing &quot;magic&quot; behind the scenes, Rust is about to pull back the curtain. Moving from a m...</description>
<pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/rust-for-frontend-developers-mastering-ownership-borrowing--deleted</guid>
</item>
<item>
<title>Mastering the Foundations of Rust: A Guide for Frontend Developers</title>
<link>https://yaffalhakim1.github.io/blog/mastering-the-foundations-of-rust-a-guide-for-frontend-developers--deleted</link>
<description>Before diving into dynamic collections like vectors, the sources outline a specific progression of core concepts that every Rust programmer should und...</description>
<pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/mastering-the-foundations-of-rust-a-guide-for-frontend-developers--deleted</guid>
</item>
<item>
<title>Engineering a Better Auto Perfect Guard for Sword &amp; Shield in Monster Hunter Wilds</title>
<link>https://yaffalhakim1.github.io/blog/engineering-a-better-auto-perfect-guard-for-sword-and-shield-in-monster-hunter-wilds</link>
<description>Learning from Existing Mods and Building a Better Auto Perfect Guard for SnS When I decided to build an Auto Perfect Guard for Sword &amp; Shield (SnS) i...</description>
<pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/engineering-a-better-auto-perfect-guard-for-sword-and-shield-in-monster-hunter-wilds</guid>
</item>
<item>
<title>Deploy Next.js 15 &amp; Express Backend to cPanel: A Battle-Tested Guide</title>
<link>https://yaffalhakim1.github.io/blog/deploy-nextjs-15-and-express-backend-to-cpanel-a-battle-tested-guide</link>
<description>&gt; What I learned from a frustrating but educational deployment journey Deploying modern JavaScript frameworks to traditional cPanel hosting can feel ...</description>
<pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/deploy-nextjs-15-and-express-backend-to-cpanel-a-battle-tested-guide</guid>
</item>
<item>
<title>Matching Image Height to Dynamic Content with CSS Grid</title>
<link>https://yaffalhakim1.github.io/blog/matching-image-height-to-dynamic-content-with-css-grid</link>
<description>Have you ever built a split-screen layout where one side is a long form, and the other is an image? Often, the image either fails to fill the vertical...</description>
<pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/matching-image-height-to-dynamic-content-with-css-grid</guid>
</item>
<item>
<title>How to Create a Performant &quot;Listening&quot; Table of Contents in React</title>
<link>https://yaffalhakim1.github.io/blog/how-to-create-a-performant-listening-table-of-contents-in-react</link>
<description>Building a Table of Contents (TOC) that &quot;listens&quot; to your scroll position is a great way to improve UX, especially for long-form content like Terms an...</description>
<pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/how-to-create-a-performant-listening-table-of-contents-in-react</guid>
</item>
<item>
<title>Deploying React Router v7 with Docker to VPS: A Complete CI/CD Guide</title>
<link>https://yaffalhakim1.github.io/blog/deploying-react-router-v7-with-docker-to-vps-a-complete-cicd-guide</link>
<description>--- Introduction Deploying a modern React Router v7 application to production requires more than just copying files to a server. In this comprehens...</description>
<pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/deploying-react-router-v7-with-docker-to-vps-a-complete-cicd-guide</guid>
</item>
<item>
<title>Building a Universal &quot;Scroll-To&quot; Hook in React &amp; Next.js</title>
<link>https://yaffalhakim1.github.io/blog/building-a-universal-scroll-to-hook-in-react-and-nextjs</link>
<description>On a landing page, navigation usually involves smooth scrolling to sections. However, once you add multiple pages (like a Blog or FAQ), a simple eleme...</description>
<pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/building-a-universal-scroll-to-hook-in-react-and-nextjs</guid>
</item>
<item>
<title>Markdown Guide</title>
<link>https://yaffalhakim1.github.io/blog/markdown-guide</link>
<description>A guide to all supported Markdown features in Breeze theme.</description>
<pubDate>Fri, 02 Jan 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/markdown-guide</guid>
</item>
<item>
<title>Hello World - Welcome to Breeze</title>
<link>https://yaffalhakim1.github.io/blog/hello-world</link>
<description>Welcome to Breeze, a minimal Astro theme for personal websites.</description>
<pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/hello-world</guid>
</item>
<item>
<title>My First Open-Source Contribution Translating ReactJS Pages to Indonesian Language</title>
<link>https://yaffalhakim1.github.io/blog/my-first-open-source-contribution-translating-reactjs-pages-to-indonesian-language</link>
<description>Hi, I&apos;m Yafi, and I recently had the opportunity to contribute to the open-source project ReactJS by translating some of its pages to Indonesian langu...</description>
<pubDate>Wed, 07 Aug 2024 00:00:00 +0000</pubDate>
<guid>https://yaffalhakim1.github.io/blog/my-first-open-source-contribution-translating-reactjs-pages-to-indonesian-language</guid>
</item>
</channel>
</rss>
