<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Posts on Birdor Blog</title>
		<link>https://blog.birdor.com/posts/</link>
		<description>Recent content in Posts on Birdor Blog</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Tue, 30 Dec 2025 20:30:00 +0800</lastBuildDate>
		
			<atom:link href="https://blog.birdor.com/posts/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Plumego Advanced Guide: Designing Explicit, Scalable Go Services</title>
				<link>https://blog.birdor.com/plumego-advanced-guide/</link>
				<pubDate>Tue, 30 Dec 2025 20:30:00 +0800</pubDate>
				<guid>https://blog.birdor.com/plumego-advanced-guide/</guid>
				<description>&lt;h1 id=&#34;plumego-advanced-guide-designing-explicit-scalable-go-services&#34;&gt;Plumego Advanced Guide: Designing Explicit, Scalable Go Services&lt;/h1&gt;&#xA;&lt;h2 id=&#34;introduction-beyond-the-basics&#34;&gt;Introduction: Beyond the Basics&lt;/h2&gt;&#xA;&lt;p&gt;The introductory Plumego documentation explains &lt;em&gt;what&lt;/em&gt; Plumego is and &lt;em&gt;why&lt;/em&gt; it exists. This guide focuses on a different question:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;How do you design serious, long-lived systems with Plumego?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;This article assumes that you already understand:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Go fundamentals&lt;/li&gt;&#xA;&lt;li&gt;HTTP server basics&lt;/li&gt;&#xA;&lt;li&gt;The core Plumego APIs&lt;/li&gt;&#xA;&lt;li&gt;The philosophy of explicitness&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;What follows is an advanced, production-oriented tutorial. We will explore architectural patterns, not just APIs. The emphasis is on &lt;strong&gt;design decisions&lt;/strong&gt;, &lt;strong&gt;trade-offs&lt;/strong&gt;, and &lt;strong&gt;operational correctness&lt;/strong&gt;—the areas where Plumego provides leverage without hiding complexity.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Plumego: A Deliberate Go Framework for Engineers Who Value Explicitness</title>
				<link>https://blog.birdor.com/introducing-plumego-go-framework/</link>
				<pubDate>Tue, 30 Dec 2025 19:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/introducing-plumego-go-framework/</guid>
				<description>&lt;h2 id=&#34;introduction-why-another-go-framework&#34;&gt;Introduction: Why Another Go Framework?&lt;/h2&gt;&#xA;&lt;p&gt;The Go ecosystem does not suffer from a lack of web frameworks. From minimalist routers to batteries-included solutions, developers can choose from a wide spectrum of abstractions. Yet, despite this abundance, many experienced teams eventually encounter a recurring problem:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Their framework either does too little to guide large systems, or too much to stay out of the way.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/spcent/plumego&#34;&gt;&lt;strong&gt;Plumego&lt;/strong&gt;&lt;/a&gt; exists in the narrow but important space between these extremes.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Introducing Birdor Tools — A Calm, Developer-Friendly Toolbox for the Modern Web</title>
				<link>https://blog.birdor.com/birdor-tools-launch/</link>
				<pubDate>Sat, 29 Nov 2025 09:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/birdor-tools-launch/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://birdor.com/tools&#34;&gt;Birdor Tools&lt;/a&gt; is now live.&lt;/p&gt;&#xA;&lt;p&gt;A quiet companion for developers, built with the belief that &lt;strong&gt;good tools should feel calm, predictable, and pleasant to use&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Welcome to a place where engineering is simple again.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-is-birdor-tools&#34;&gt;What Is Birdor Tools?&lt;/h2&gt;&#xA;&lt;p&gt;Birdor Tools is a &lt;strong&gt;developer-first toolbox and knowledge hub&lt;/strong&gt;, designed to combine:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;High-traffic foundational tools&lt;/strong&gt;&lt;br&gt;&#xA;JSON formatter, UUID/Nanoid generator, Base64/Hash utilities, Regex tester, Cron visualizer, etc.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Enhanced, AI-assisted developer tools&lt;/strong&gt;&lt;br&gt;&#xA;Clear, deterministic output — not hallucinations.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SaaS-ready APIs for production use&lt;/strong&gt;&lt;br&gt;&#xA;Reliable, rate-limited, globally cached.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;It is not a “tool dump”.&lt;br&gt;&#xA;It is a &lt;strong&gt;curated, intentional, long-term product&lt;/strong&gt; that emphasizes:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Birdor Update — Unified Badges, Prebuild Changelog Pipeline, and New &#39;What is Birdor&#39; Page (2025-11-29)</title>
				<link>https://blog.birdor.com/changelog-2025-11-29/</link>
				<pubDate>Sat, 29 Nov 2025 00:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/changelog-2025-11-29/</guid>
				<description>&lt;p&gt;This update brings UI improvements, infrastructure enhancements, and a major new documentation feature: the official &lt;strong&gt;“What is Birdor?”&lt;/strong&gt; product overview page.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;unified-updated-badge&#34;&gt;Unified Updated Badge&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; tool&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; ui-badges&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;&#xA;&lt;p&gt;Introduced the universal &amp;ldquo;● Updated&amp;rdquo; badge for use across Tools, Docs, and the Changelog.&lt;/p&gt;&#xA;&lt;h3 id=&#34;details&#34;&gt;Details&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Supports &lt;strong&gt;● Updated&lt;/strong&gt; and &lt;strong&gt;✨ New&lt;/strong&gt; variants.&lt;/li&gt;&#xA;&lt;li&gt;Integrated in the Tools grid, Docs notice bar, and Changelog entries.&lt;/li&gt;&#xA;&lt;li&gt;Ensures consistent visual language for updates across the product.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;links&#34;&gt;Links&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://birdor.com/tools&#34;&gt;Tools&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;md--json-changelog-build-pipeline&#34;&gt;MD → JSON Changelog Build Pipeline&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; infra&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; build&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;</description>
			</item>
			<item>
				<title>Birdor Tools &amp; Docs Update — JWT HS512, JSON Tree Collapsing, Changelog Launch (2025-11-28)</title>
				<link>https://blog.birdor.com/changelog-2025-11-28/</link>
				<pubDate>Fri, 28 Nov 2025 00:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/changelog-2025-11-28/</guid>
				<description>&lt;p&gt;This update brings enhancements across multiple Birdor tools and introduces the official &lt;strong&gt;Changelog system&lt;/strong&gt;, providing a public and structured way to track product improvements.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;jwt-debugger-hs512-support-and-expiry-hints&#34;&gt;JWT Debugger: HS512 Support and Expiry Hints&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; tool&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; jwt-debugger&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;&#xA;&lt;p&gt;Added HS512 verification and clearer interpretation for JWT time-based claims.&lt;/p&gt;&#xA;&lt;h3 id=&#34;details&#34;&gt;Details&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;HS512&lt;/strong&gt; is now available alongside HS256 and HS384.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;exp&lt;/code&gt;, &lt;code&gt;iat&lt;/code&gt;, and &lt;code&gt;nbf&lt;/code&gt; claims now show &lt;strong&gt;human-readable timestamps&lt;/strong&gt;, improving clarity during debugging.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;links&#34;&gt;Links&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://birdor.com/tools/jwt-debugger&#34;&gt;JWT Debugger&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;json-formatter-smarter-tree-collapsing&#34;&gt;JSON Formatter: Smarter Tree Collapsing&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; tool&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; json-formatter&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python Beginner Handbook</title>
				<link>https://blog.birdor.com/python-beginner-handbook/</link>
				<pubDate>Thu, 27 Nov 2025 20:27:00 +0800</pubDate>
				<guid>https://blog.birdor.com/python-beginner-handbook/</guid>
				<description>&lt;p&gt;Python is simple to learn, expressive to write, and powerful enough to build systems of any scale — from automation scripts to backend APIs and machine learning pipelines.&lt;/p&gt;&#xA;&lt;p&gt;This handbook contains &lt;strong&gt;20 concise, developer-friendly chapters&lt;/strong&gt;, each focusing on practical understanding and working examples.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;chapter-1--what-is-python--why-it-matters&#34;&gt;Chapter 1 — What Is Python &amp;amp; Why It Matters&lt;/h2&gt;&#xA;&lt;p&gt;Python is a high-level, cross-platform, readable language created in 1991.&lt;br&gt;&#xA;Its design goals:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;readability&lt;/li&gt;&#xA;&lt;li&gt;developer productivity&lt;/li&gt;&#xA;&lt;li&gt;“batteries-included” standard library&lt;/li&gt;&#xA;&lt;li&gt;large ecosystem of packages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Python powers:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python vs Go vs Rust — A Calm, Developer-Focused Comparison</title>
				<link>https://blog.birdor.com/python-vs-go-vs-rust/</link>
				<pubDate>Thu, 27 Nov 2025 20:21:00 +0800</pubDate>
				<guid>https://blog.birdor.com/python-vs-go-vs-rust/</guid>
				<description>&lt;p&gt;A Calm, Developer-Focused Comparison&lt;/p&gt;&#xA;&lt;p&gt;Python, Go, and Rust are three of the most influential languages in modern software engineering.&lt;br&gt;&#xA;They represent &lt;strong&gt;three different philosophies&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Python:&lt;/strong&gt; simplicity &amp;amp; productivity&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Go:&lt;/strong&gt; concurrency, cloud, and production reliability&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rust:&lt;/strong&gt; memory safety &amp;amp; high performance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This article provides a &lt;strong&gt;clear, concise, and practical Birdor-style comparison&lt;/strong&gt; to help you decide which language fits your next project.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-design-philosophy-what-each-language-values&#34;&gt;1. Design Philosophy: What Each Language Values&lt;/h2&gt;&#xA;&lt;h3 id=&#34;python--readable-expressive-productive&#34;&gt;Python — &lt;em&gt;Readable, expressive, productive&lt;/em&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Python prioritizes &lt;strong&gt;human time over machine time&lt;/strong&gt;.&lt;br&gt;&#xA;The design is optimized for:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Birdor Website Update — SEO Enhancements &amp; GitHub Header Link (2025-11-27)</title>
				<link>https://blog.birdor.com/changelog-2025-11-27/</link>
				<pubDate>Thu, 27 Nov 2025 00:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/changelog-2025-11-27/</guid>
				<description>&lt;p&gt;This update introduces a comprehensive SEO improvement for all Birdor tool pages and a usability enhancement with the addition of a GitHub link in the site header.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;seo-metadata-added-for-all-tools&#34;&gt;SEO Metadata Added for All Tools&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; website&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; seo&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;&#xA;&lt;p&gt;Standardized per-tool SEO metadata across the Tools section, ensuring consistent and clear presentation for search engines and social previews.&lt;/p&gt;&#xA;&lt;h3 id=&#34;details&#34;&gt;Details&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added SEO configs for &lt;strong&gt;JSON&lt;/strong&gt;, &lt;strong&gt;JWT&lt;/strong&gt;, &lt;strong&gt;URL&lt;/strong&gt;, &lt;strong&gt;Base64&lt;/strong&gt;, and &lt;strong&gt;UUID&lt;/strong&gt; tools.&lt;/li&gt;&#xA;&lt;li&gt;Introduced global SEO helper templates for consistent rendering.&lt;/li&gt;&#xA;&lt;li&gt;Improved &lt;strong&gt;Open Graph&lt;/strong&gt; metadata for link previews and sharing across platforms.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;links&#34;&gt;Links&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://birdor.com/tools&#34;&gt;Tools&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;github-icon-added-to-site-header&#34;&gt;GitHub Icon Added to Site Header&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; website&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; header&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Sample Game</title>
				<link>https://blog.birdor.com/lua-game-dev-ch20/</link>
				<pubDate>Wed, 26 Nov 2025 13:24:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch20/</guid>
				<description>A practical, end-to-end handbook on using Lua to build modern games — from core syntax to engine architecture, AI, netcode and shipping.</description>
			</item>
			<item>
				<title>Lua for Game Development — Complete Book</title>
				<link>https://blog.birdor.com/lua-game-dev-ch0/</link>
				<pubDate>Wed, 26 Nov 2025 13:20:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch0/</guid>
				<description>A complete, practical, production-ready guide to using Lua for modern game development — from syntax basics to engine architecture, AI, networking, tools and full deployment.</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 19: Packaging, Deployment, Localization &amp; Release Pipeline</title>
				<link>https://blog.birdor.com/lua-game-dev-ch19/</link>
				<pubDate>Wed, 26 Nov 2025 13:14:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch19/</guid>
				<description>&lt;p&gt;You&amp;rsquo;ve built your game.&lt;/p&gt;&#xA;&lt;p&gt;Now you must &lt;strong&gt;ship it&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Shipping a game is an engineering discipline in itself, requiring:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;packaging&lt;/li&gt;&#xA;&lt;li&gt;build automation&lt;/li&gt;&#xA;&lt;li&gt;deployment to multiple platforms&lt;/li&gt;&#xA;&lt;li&gt;patching &amp;amp; updates&lt;/li&gt;&#xA;&lt;li&gt;asset pipelines&lt;/li&gt;&#xA;&lt;li&gt;localization&lt;/li&gt;&#xA;&lt;li&gt;DLC &amp;amp; mod support&lt;/li&gt;&#xA;&lt;li&gt;crash reporting&lt;/li&gt;&#xA;&lt;li&gt;analytics&lt;/li&gt;&#xA;&lt;li&gt;CI/CD workflows&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua games can ship to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Windows&lt;/li&gt;&#xA;&lt;li&gt;macOS&lt;/li&gt;&#xA;&lt;li&gt;Linux&lt;/li&gt;&#xA;&lt;li&gt;Web (HTML5)&lt;/li&gt;&#xA;&lt;li&gt;iOS&lt;/li&gt;&#xA;&lt;li&gt;Android&lt;/li&gt;&#xA;&lt;li&gt;Steam Deck&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter shows how to build a full &lt;strong&gt;release pipeline&lt;/strong&gt;, regardless of engine.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-build-artifacts-what-needs-to-be-packaged&#34;&gt;1. Build Artifacts: What Needs to Be Packaged?&lt;/h2&gt;&#xA;&lt;p&gt;You must package:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 18: Engine Architecture, ECS, Plugins &amp; Optimization</title>
				<link>https://blog.birdor.com/lua-game-dev-ch18/</link>
				<pubDate>Wed, 26 Nov 2025 13:10:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch18/</guid>
				<description>&lt;p&gt;To complete your Lua game development knowledge, you must understand how to &lt;strong&gt;design a full engine&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;entity management&lt;/li&gt;&#xA;&lt;li&gt;components&lt;/li&gt;&#xA;&lt;li&gt;systems&lt;/li&gt;&#xA;&lt;li&gt;module lifecycle&lt;/li&gt;&#xA;&lt;li&gt;asset management&lt;/li&gt;&#xA;&lt;li&gt;scripting pipelines&lt;/li&gt;&#xA;&lt;li&gt;performance tuning&lt;/li&gt;&#xA;&lt;li&gt;optimization patterns&lt;/li&gt;&#xA;&lt;li&gt;debugging &amp;amp; profiling&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua excels as an engine scripting language due to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;fast VM&lt;/li&gt;&#xA;&lt;li&gt;low memory footprint&lt;/li&gt;&#xA;&lt;li&gt;simple integration with C/C++&lt;/li&gt;&#xA;&lt;li&gt;natural data-driven design&lt;/li&gt;&#xA;&lt;li&gt;coroutine support&lt;/li&gt;&#xA;&lt;li&gt;quick iteration&lt;/li&gt;&#xA;&lt;li&gt;extensibility&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter finalizes the architecture needed for professional, scalable Lua game engines.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 17: Save Systems, Persistence, Serialization &amp; Content Pipelines</title>
				<link>https://blog.birdor.com/lua-game-dev-ch17/</link>
				<pubDate>Wed, 26 Nov 2025 13:05:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch17/</guid>
				<description>&lt;p&gt;A modern game needs:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;reliable &lt;strong&gt;save/load systems&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;world state persistence&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;player progression&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;inventory &amp;amp; quests&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;NPCs and simulation state&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;safe serialization &amp;amp; versioning&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;replay systems&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;modding and content pipelines&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua is &lt;em&gt;ideal&lt;/em&gt; for all of this:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tables serialize well&lt;/li&gt;&#xA;&lt;li&gt;code is data, data is code&lt;/li&gt;&#xA;&lt;li&gt;tables are readable and versionable&lt;/li&gt;&#xA;&lt;li&gt;hot reload simplifies pipelines&lt;/li&gt;&#xA;&lt;li&gt;modding = just load more Lua files&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter builds a complete system that scales from small to AAA-style persistence.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 16: Multiplayer, Netcode, Sync Models &amp; Lag Compensation</title>
				<link>https://blog.birdor.com/lua-game-dev-ch16/</link>
				<pubDate>Wed, 26 Nov 2025 13:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch16/</guid>
				<description>&lt;p&gt;Multiplayer is &lt;strong&gt;the hardest part&lt;/strong&gt; of game development.&lt;br&gt;&#xA;This chapter covers the exact models used by:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fortnite&lt;/li&gt;&#xA;&lt;li&gt;Apex Legends&lt;/li&gt;&#xA;&lt;li&gt;Overwatch&lt;/li&gt;&#xA;&lt;li&gt;Rocket League&lt;/li&gt;&#xA;&lt;li&gt;Factorio&lt;/li&gt;&#xA;&lt;li&gt;StarCraft II&lt;/li&gt;&#xA;&lt;li&gt;Roblox&lt;/li&gt;&#xA;&lt;li&gt;Unity Netcode / Unreal replication&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;You will learn the following sync models:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Lockstep (deterministic strategy / SLG)&lt;/li&gt;&#xA;&lt;li&gt;Snapshot interpolation (action games)&lt;/li&gt;&#xA;&lt;li&gt;Client-side prediction &amp;amp; reconciliation&lt;/li&gt;&#xA;&lt;li&gt;Entity replication (position/rotation/state)&lt;/li&gt;&#xA;&lt;li&gt;Combat sync&lt;/li&gt;&#xA;&lt;li&gt;Bullet/projectile sync&lt;/li&gt;&#xA;&lt;li&gt;Lag compensation (server rewind, hit-scan)&lt;/li&gt;&#xA;&lt;li&gt;Anti-cheat considerations&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Lua is excellent for netcode:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 15: UI Systems, HUD, Menus &amp; Data Binding</title>
				<link>https://blog.birdor.com/lua-game-dev-ch15/</link>
				<pubDate>Wed, 26 Nov 2025 12:50:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch15/</guid>
				<description>&lt;p&gt;UI is the backbone of:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;inventories&lt;/li&gt;&#xA;&lt;li&gt;crafting&lt;/li&gt;&#xA;&lt;li&gt;equipment menus&lt;/li&gt;&#xA;&lt;li&gt;quests &amp;amp; story&lt;/li&gt;&#xA;&lt;li&gt;shops&lt;/li&gt;&#xA;&lt;li&gt;minimaps&lt;/li&gt;&#xA;&lt;li&gt;HUD overlays&lt;/li&gt;&#xA;&lt;li&gt;dialogue&lt;/li&gt;&#xA;&lt;li&gt;pause menu&lt;/li&gt;&#xA;&lt;li&gt;game settings&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua is excellent for UI logic because:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;UI widgets map naturally to tables&lt;/li&gt;&#xA;&lt;li&gt;easy event dispatch&lt;/li&gt;&#xA;&lt;li&gt;hot-reload speeds iteration&lt;/li&gt;&#xA;&lt;li&gt;data binding = reactive UI&lt;/li&gt;&#xA;&lt;li&gt;timeline-based animations work perfectly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter builds a modern, scalable &lt;strong&gt;UI framework&lt;/strong&gt; in Lua.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h1 id=&#34;1-ui-widget-system&#34;&gt;1. UI Widget System&lt;/h1&gt;&#xA;&lt;p&gt;UI widgets are components:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;panels&lt;/li&gt;&#xA;&lt;li&gt;labels&lt;/li&gt;&#xA;&lt;li&gt;buttons&lt;/li&gt;&#xA;&lt;li&gt;images/icons&lt;/li&gt;&#xA;&lt;li&gt;windows&lt;/li&gt;&#xA;&lt;li&gt;scroll lists&lt;/li&gt;&#xA;&lt;li&gt;tooltips&lt;/li&gt;&#xA;&lt;li&gt;HUD overlays&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;We define a generic widget base class.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 14: Combat AI, Behavior Trees, Utility AI &amp; Enemy Design</title>
				<link>https://blog.birdor.com/lua-game-dev-ch14/</link>
				<pubDate>Wed, 26 Nov 2025 12:40:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch14/</guid>
				<description>&lt;p&gt;Combat AI determines the &lt;strong&gt;challenge, pacing, and tension&lt;/strong&gt; of any action game.&lt;/p&gt;&#xA;&lt;p&gt;Modern games use:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;State Machines&lt;/strong&gt; (simple AI)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Behavior Trees&lt;/strong&gt; (modular, readable)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Utility AI&lt;/strong&gt; (dynamic decisions)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Blackboards&lt;/strong&gt; (shared memory)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Squad AI&lt;/strong&gt; (formations, flanking, roles)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Boss AI&lt;/strong&gt; (scripted phases + BT nodes)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua&amp;rsquo;s flexibility makes it ideal for building AI layers.&lt;/p&gt;&#xA;&lt;p&gt;This chapter builds:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Enemy archetypes&lt;/li&gt;&#xA;&lt;li&gt;Finite State Machine (FSM) combat AI&lt;/li&gt;&#xA;&lt;li&gt;Behavior Tree engine&lt;/li&gt;&#xA;&lt;li&gt;Utility-based decision system&lt;/li&gt;&#xA;&lt;li&gt;Aggro &amp;amp; threat systems&lt;/li&gt;&#xA;&lt;li&gt;Group tactics (flank, assist, swarm)&lt;/li&gt;&#xA;&lt;li&gt;Boss scripting (phases, triggers, timelines)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h1 id=&#34;1-enemy-archetypes&#34;&gt;1. Enemy Archetypes&lt;/h1&gt;&#xA;&lt;p&gt;Define enemies in data:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 13: NPCs, Town Simulation, Factions &amp; AI Routines</title>
				<link>https://blog.birdor.com/lua-game-dev-ch13/</link>
				<pubDate>Wed, 26 Nov 2025 12:30:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch13/</guid>
				<description>&lt;p&gt;NPCs breathe life into any game world:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;villagers with schedules&lt;/li&gt;&#xA;&lt;li&gt;merchants with stock&lt;/li&gt;&#xA;&lt;li&gt;guards who patrol&lt;/li&gt;&#xA;&lt;li&gt;hostile factions&lt;/li&gt;&#xA;&lt;li&gt;relationships&lt;/li&gt;&#xA;&lt;li&gt;dialogue that reacts to story flags&lt;/li&gt;&#xA;&lt;li&gt;simulation (hunger, work, needs)&lt;/li&gt;&#xA;&lt;li&gt;towns that evolve over time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua is perfect for simulation layers:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lightweight logic&lt;/li&gt;&#xA;&lt;li&gt;hot reload&lt;/li&gt;&#xA;&lt;li&gt;easy-to-edit behavior packages&lt;/li&gt;&#xA;&lt;li&gt;clean data-driven content&lt;/li&gt;&#xA;&lt;li&gt;integrates with quests, story, and world triggers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter builds:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;NPC definitions&lt;/li&gt;&#xA;&lt;li&gt;Behavior packages (wander, talk, patrol, work)&lt;/li&gt;&#xA;&lt;li&gt;Daily schedules (day/night cycles)&lt;/li&gt;&#xA;&lt;li&gt;Merchant system&lt;/li&gt;&#xA;&lt;li&gt;Factions &amp;amp; reputation&lt;/li&gt;&#xA;&lt;li&gt;Town simulation&lt;/li&gt;&#xA;&lt;li&gt;Social interactions&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h1 id=&#34;1-npc-definitions-data-driven&#34;&gt;1. NPC Definitions (Data-Driven)&lt;/h1&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;npcs/&#xA;villagers.lua&#xA;merchants.lua&#xA;guards.lua&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;11-example-npc-definition&#34;&gt;1.1 Example NPC Definition&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-lua&#34; data-lang=&#34;lua&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;elder&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Village Elder&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sprite&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;npc_elder&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;faction&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;village&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;behaviors&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;talk&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;idle&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;dialogue&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;elder_intro&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;schedule&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;   &lt;span class=&#34;n&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sleep&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;   &lt;span class=&#34;n&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;idle&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;walk_square&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;home&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sleep&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;NPC = data + behaviors + dialogue + schedule.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 12: Quests, Missions, Dialogue Trees &amp; Story Progression</title>
				<link>https://blog.birdor.com/lua-game-dev-ch12/</link>
				<pubDate>Wed, 26 Nov 2025 12:20:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch12/</guid>
				<description>&lt;p&gt;Modern games rely heavily on structured progression systems:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Main story quests&lt;/li&gt;&#xA;&lt;li&gt;Side quests&lt;/li&gt;&#xA;&lt;li&gt;Dynamic missions&lt;/li&gt;&#xA;&lt;li&gt;Dialogue trees&lt;/li&gt;&#xA;&lt;li&gt;NPC interactions&lt;/li&gt;&#xA;&lt;li&gt;World state &amp;amp; flags&lt;/li&gt;&#xA;&lt;li&gt;Branching narrative&lt;/li&gt;&#xA;&lt;li&gt;Story checkpoints&lt;/li&gt;&#xA;&lt;li&gt;Rewards&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua is ideal for this:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Data-driven quest definitions&lt;/li&gt;&#xA;&lt;li&gt;Easy branching logic&lt;/li&gt;&#xA;&lt;li&gt;Hot reload for dialogue systems&lt;/li&gt;&#xA;&lt;li&gt;Clean JSON-like scripting&lt;/li&gt;&#xA;&lt;li&gt;Integrates perfectly with triggers, inventory, UI, and levels&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter introduces a &lt;strong&gt;complete quest system&lt;/strong&gt; used in RPGs, action games, and open-world titles.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 11: Inventory, Items, Equipment, Crafting &amp; Data-Driven Content</title>
				<link>https://blog.birdor.com/lua-game-dev-ch11/</link>
				<pubDate>Wed, 26 Nov 2025 12:10:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch11/</guid>
				<description>&lt;p&gt;Inventory and item systems are essential for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RPGs&lt;/li&gt;&#xA;&lt;li&gt;Action RPGs&lt;/li&gt;&#xA;&lt;li&gt;Survival games&lt;/li&gt;&#xA;&lt;li&gt;Roguelikes&lt;/li&gt;&#xA;&lt;li&gt;Adventure/Metroidvania&lt;/li&gt;&#xA;&lt;li&gt;Open-world games&lt;/li&gt;&#xA;&lt;li&gt;SLG/Strategy games&lt;/li&gt;&#xA;&lt;li&gt;Loot-based games&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua is &lt;strong&gt;perfect&lt;/strong&gt; for building these systems:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Data-driven items (Lua tables)&lt;/li&gt;&#xA;&lt;li&gt;Hot-reloadable item definitions&lt;/li&gt;&#xA;&lt;li&gt;Easy extensions (rarities, tags, effects)&lt;/li&gt;&#xA;&lt;li&gt;Modular inventory logic&lt;/li&gt;&#xA;&lt;li&gt;Crafting formulas as tables&lt;/li&gt;&#xA;&lt;li&gt;Shops using item IDs&lt;/li&gt;&#xA;&lt;li&gt;Persistent save/load&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter builds a complete, modern item ecosystem.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-item-definitions-data-driven&#34;&gt;1. Item Definitions (Data-Driven)&lt;/h2&gt;&#xA;&lt;p&gt;All items are defined as &lt;strong&gt;Lua tables&lt;/strong&gt;.&lt;br&gt;&#xA;This is how most professional games implement content pipelines.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 8: Animation Systems, Cameras, Cutscenes &amp; Timeline Scripting</title>
				<link>https://blog.birdor.com/lua-game-dev-ch8/</link>
				<pubDate>Wed, 26 Nov 2025 10:24:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch8/</guid>
				<description>&lt;p&gt;Animation and cinematic systems transform raw gameplay into a polished, emotional experience.&lt;br&gt;&#xA;Lua is ideal for sequencing, orchestration, animation management, and camera scripting because:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Coroutine syntax is perfect for timelines.&lt;/li&gt;&#xA;&lt;li&gt;Hot reload accelerates iteration.&lt;/li&gt;&#xA;&lt;li&gt;Data-driven tables make timelines readable.&lt;/li&gt;&#xA;&lt;li&gt;Engines expose animation/camera APIs easily.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In this chapter we build:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Animation state machines&lt;/li&gt;&#xA;&lt;li&gt;Sprite animation system&lt;/li&gt;&#xA;&lt;li&gt;Camera follow/zoom/lerp&lt;/li&gt;&#xA;&lt;li&gt;Timeline scripting engine&lt;/li&gt;&#xA;&lt;li&gt;Dialogue system&lt;/li&gt;&#xA;&lt;li&gt;Cutscenes (with coroutines)&lt;/li&gt;&#xA;&lt;li&gt;Screen/camera effects (shake, flash, fade)&lt;/li&gt;&#xA;&lt;li&gt;Sequencers for complex cinematic flows&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h1 id=&#34;1-animation-state-machines-asm&#34;&gt;1. Animation State Machines (ASM)&lt;/h1&gt;&#xA;&lt;p&gt;Most games rely on an animation finite-state-machine:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 7: UI Systems, HUD, Widgets, Event Binding, and Lua-Driven UI Architecture</title>
				<link>https://blog.birdor.com/lua-game-dev-ch7/</link>
				<pubDate>Wed, 26 Nov 2025 10:20:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch7/</guid>
				<description>&lt;p&gt;User interfaces are a core part of game development:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;HUD (health bars, minimaps, ammo counters)&lt;/li&gt;&#xA;&lt;li&gt;Menus (pause, settings, inventory)&lt;/li&gt;&#xA;&lt;li&gt;In-game shops&lt;/li&gt;&#xA;&lt;li&gt;UI alerts and notifications&lt;/li&gt;&#xA;&lt;li&gt;Pop-up windows and dialogs&lt;/li&gt;&#xA;&lt;li&gt;Touch UI for mobile&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua excels here because UI scripting requires:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Flexibility&lt;/li&gt;&#xA;&lt;li&gt;Fast iteration&lt;/li&gt;&#xA;&lt;li&gt;Easy updates&lt;/li&gt;&#xA;&lt;li&gt;Data binding&lt;/li&gt;&#xA;&lt;li&gt;Coroutine-friendly animations&lt;/li&gt;&#xA;&lt;li&gt;Modular components&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter teaches you how to build &lt;strong&gt;a complete UI architecture&lt;/strong&gt; in Lua.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-the-goals-of-a-good-ui-architecture&#34;&gt;1. The Goals of a Good UI Architecture&lt;/h2&gt;&#xA;&lt;p&gt;A production UI system must be:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 10: Audio, Particles, VFX &amp; Feedback Systems</title>
				<link>https://blog.birdor.com/lua-game-dev-ch10/</link>
				<pubDate>Tue, 25 Nov 2025 23:55:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch10/</guid>
				<description>&lt;p&gt;Great gameplay is not only logic, animation, and UI.&lt;/p&gt;&#xA;&lt;p&gt;It is &lt;strong&gt;FEEL&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Games become satisfying through:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;impactful audio&lt;/li&gt;&#xA;&lt;li&gt;juicy hit feedback&lt;/li&gt;&#xA;&lt;li&gt;particles &amp;amp; sparks&lt;/li&gt;&#xA;&lt;li&gt;camera shake&lt;/li&gt;&#xA;&lt;li&gt;screen flashes&lt;/li&gt;&#xA;&lt;li&gt;slow motion&lt;/li&gt;&#xA;&lt;li&gt;dynamic music&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Lua excels at orchestrating these effects.&lt;/p&gt;&#xA;&lt;p&gt;This chapter will show how to design a complete &lt;strong&gt;feedback system&lt;/strong&gt; using Lua.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-audio-architecture&#34;&gt;1. Audio Architecture&lt;/h2&gt;&#xA;&lt;p&gt;Audio usually comes in three categories:&lt;/p&gt;&#xA;&lt;h3 id=&#34;sound-effects-sfx&#34;&gt;Sound Effects (SFX)&lt;/h3&gt;&#xA;&lt;p&gt;Attacks, footsteps, explosions.&lt;/p&gt;&#xA;&lt;h3 id=&#34;background-music-bgm&#34;&gt;Background Music (BGM)&lt;/h3&gt;&#xA;&lt;p&gt;Looping tracks.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 9: Scenes, Levels, World Systems &amp; Spawning</title>
				<link>https://blog.birdor.com/lua-game-dev-ch9/</link>
				<pubDate>Tue, 25 Nov 2025 23:20:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch9/</guid>
				<description>&lt;p&gt;Modern games have &lt;strong&gt;scenes, levels, maps, spawn waves, world streaming, checkpoints&lt;/strong&gt;, and &lt;strong&gt;persistent game states&lt;/strong&gt;.&lt;br&gt;&#xA;Lua’s lightweight and data-driven nature makes it perfect for orchestrating:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Level loading/unloading&lt;/li&gt;&#xA;&lt;li&gt;Map systems (tile-based or object-based)&lt;/li&gt;&#xA;&lt;li&gt;Trigger zones and events&lt;/li&gt;&#xA;&lt;li&gt;Spawn systems (enemies, loot, NPCs)&lt;/li&gt;&#xA;&lt;li&gt;World progression&lt;/li&gt;&#xA;&lt;li&gt;Checkpoints/Save systems&lt;/li&gt;&#xA;&lt;li&gt;Streaming large worlds&lt;/li&gt;&#xA;&lt;li&gt;Scene transitions &amp;amp; layering&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In this chapter, we build a &lt;strong&gt;full world architecture&lt;/strong&gt; that can be extended to RPGs, shooters, platformers, adventure games, and SLG games.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 6: AI Systems — BT, FSM, Utility AI, GOAP, Navigation, Hybrid AI</title>
				<link>https://blog.birdor.com/lua-game-dev-ch6/</link>
				<pubDate>Tue, 25 Nov 2025 20:11:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch6/</guid>
				<description>&lt;p&gt;Game AI is one of Lua’s strongest domains.&lt;br&gt;&#xA;Lua scripts drive NPCs in:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;World of Warcraft&lt;/li&gt;&#xA;&lt;li&gt;Don&amp;rsquo;t Starve&lt;/li&gt;&#xA;&lt;li&gt;CryEngine titles&lt;/li&gt;&#xA;&lt;li&gt;Roblox (Luau)&lt;/li&gt;&#xA;&lt;li&gt;Cocos2d-x Lua games&lt;/li&gt;&#xA;&lt;li&gt;Thousands of mobile/indie games&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Game studios rely heavily on Lua due to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ease of scripting&lt;/li&gt;&#xA;&lt;li&gt;Data-driven behavior&lt;/li&gt;&#xA;&lt;li&gt;Fast iteration&lt;/li&gt;&#xA;&lt;li&gt;Easy debugging and hot reload&lt;/li&gt;&#xA;&lt;li&gt;Coroutine-based timelines&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter covers all major AI paradigms used in modern games:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;FSM (Finite State Machines)&lt;/li&gt;&#xA;&lt;li&gt;Behavior Trees (BT)&lt;/li&gt;&#xA;&lt;li&gt;Utility AI (Score-based decision AI)&lt;/li&gt;&#xA;&lt;li&gt;GOAP (Goal-Oriented Action Planning)&lt;/li&gt;&#xA;&lt;li&gt;Navigation patterns&lt;/li&gt;&#xA;&lt;li&gt;Blackboard memory systems&lt;/li&gt;&#xA;&lt;li&gt;Hybrid AI architecture for bosses&lt;/li&gt;&#xA;&lt;li&gt;Performance tuning for large AI crowds&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-finite-state-machines-fsm&#34;&gt;1. Finite State Machines (FSM)&lt;/h2&gt;&#xA;&lt;p&gt;FSMs are simple, predictable, and great for:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 5: Combat Systems, Hitboxes, Stats, Buffs, and Abilities</title>
				<link>https://blog.birdor.com/lua-game-dev-ch5/</link>
				<pubDate>Tue, 25 Nov 2025 20:03:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch5/</guid>
				<description>&lt;p&gt;Combat systems are the backbone of many games:&lt;br&gt;&#xA;RPGs, action games, shooters, platformers, MOBAs, and roguelikes.&lt;/p&gt;&#xA;&lt;p&gt;This chapter explains how to implement &lt;strong&gt;real combat architecture&lt;/strong&gt; in Lua:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Entity stats &amp;amp; modifiers&lt;/li&gt;&#xA;&lt;li&gt;Damage pipeline&lt;/li&gt;&#xA;&lt;li&gt;Hitboxes &amp;amp; hurtboxes&lt;/li&gt;&#xA;&lt;li&gt;Buffs, debuffs, DOTs, HOTs&lt;/li&gt;&#xA;&lt;li&gt;Cooldowns &amp;amp; cast times&lt;/li&gt;&#xA;&lt;li&gt;Skill/ability system&lt;/li&gt;&#xA;&lt;li&gt;Combat logs &amp;amp; replay&lt;/li&gt;&#xA;&lt;li&gt;Network-sync-friendly updates&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;This is a &lt;strong&gt;complete combat architecture&lt;/strong&gt;, not a toy example.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-entity-stats-base--modifiers&#34;&gt;1. Entity Stats (Base + Modifiers)&lt;/h2&gt;&#xA;&lt;p&gt;Stats usually come from:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 4: Building a Full Lua Game Architecture</title>
				<link>https://blog.birdor.com/lua-game-dev-ch4/</link>
				<pubDate>Tue, 25 Nov 2025 20:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch4/</guid>
				<description>&lt;p&gt;This chapter teaches you how to design a &lt;strong&gt;complete Lua game architecture&lt;/strong&gt;—the same structure used by real production engines.&lt;/p&gt;&#xA;&lt;p&gt;We will build:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A robust game loop&lt;/li&gt;&#xA;&lt;li&gt;Scene management (stack-based)&lt;/li&gt;&#xA;&lt;li&gt;Systems &amp;amp; update flow&lt;/li&gt;&#xA;&lt;li&gt;Input abstraction&lt;/li&gt;&#xA;&lt;li&gt;Resource manager&lt;/li&gt;&#xA;&lt;li&gt;Save/load system&lt;/li&gt;&#xA;&lt;li&gt;Hot reload support&lt;/li&gt;&#xA;&lt;li&gt;Debugging overlays &amp;amp; dev tools&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;A real game must be modular, testable, and reloadable.&lt;/p&gt;&#xA;&lt;p&gt;Lua excels here.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-the-game-loop-core-of-any-engine&#34;&gt;1. The Game Loop (Core of Any Engine)&lt;/h2&gt;&#xA;&lt;p&gt;All engines—Unity, Unreal, Godot, Defold, Cocos2dx-lua, Corona, LÖVE—follow the same idea:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 3: Practical Patterns for Real Games</title>
				<link>https://blog.birdor.com/lua-game-dev-ch3/</link>
				<pubDate>Tue, 25 Nov 2025 19:58:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch3/</guid>
				<description>&lt;p&gt;Modern game development relies heavily on Lua’s flexibility.&lt;br&gt;&#xA;Studios consistently use a set of &lt;strong&gt;Lua architectural patterns&lt;/strong&gt; to build clean, scalable, and maintainable game logic.&lt;/p&gt;&#xA;&lt;p&gt;This chapter presents the patterns used in:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2D/3D indie engines&lt;/li&gt;&#xA;&lt;li&gt;AAA game scripting systems&lt;/li&gt;&#xA;&lt;li&gt;LiveOps / network games&lt;/li&gt;&#xA;&lt;li&gt;Modular UI systems&lt;/li&gt;&#xA;&lt;li&gt;Defold / Love2D / Roblox (Luau) / Cocos2d-x Lua&lt;/li&gt;&#xA;&lt;li&gt;Custom C++ engines with embedded Lua&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;We will cover:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Entity &amp;amp; component architecture (ECS-friendly)&lt;/li&gt;&#xA;&lt;li&gt;Messaging &amp;amp; event buses&lt;/li&gt;&#xA;&lt;li&gt;Timer systems &amp;amp; schedulers&lt;/li&gt;&#xA;&lt;li&gt;Finite state machines (FSM)&lt;/li&gt;&#xA;&lt;li&gt;Behavior trees (BT) in pure Lua&lt;/li&gt;&#xA;&lt;li&gt;Tweening &amp;amp; animation patterns&lt;/li&gt;&#xA;&lt;li&gt;Modular game script structure&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;This is the first “serious engineering” chapter in the book.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 2: Language Essentials</title>
				<link>https://blog.birdor.com/lua-game-dev-ch2/</link>
				<pubDate>Tue, 25 Nov 2025 19:52:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch2/</guid>
				<description>&lt;p&gt;Lua’s syntax is small, elegant, and optimized for scripting game logic.&lt;br&gt;&#xA;This chapter teaches Lua through a &lt;strong&gt;game development lens&lt;/strong&gt;, focusing on features you will &lt;em&gt;actually use&lt;/em&gt; when scripting AI, animations, UI, events, gameplay systems, or tools.&lt;/p&gt;&#xA;&lt;p&gt;This is not a language textbook.&lt;br&gt;&#xA;This is Lua for building &lt;strong&gt;real games&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-the-building-blocks-of-lua&#34;&gt;1. The Building Blocks of Lua&lt;/h2&gt;&#xA;&lt;p&gt;Lua’s core types:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;nil&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;number&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;string&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;table&lt;/code&gt;← &lt;strong&gt;the most important type&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;function&lt;/code&gt; ← &lt;strong&gt;first-class citizen&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;There are no classes, arrays, or objects—&lt;strong&gt;tables&lt;/strong&gt; represent all of these.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua for Game Development — Chapter 1: Why Lua?</title>
				<link>https://blog.birdor.com/lua-game-dev-ch1/</link>
				<pubDate>Tue, 25 Nov 2025 19:48:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-game-dev-ch1/</guid>
				<description>&lt;p&gt;Lua is one of the most influential technologies in game development.&lt;br&gt;&#xA;It is lightweight, embeddable, fast, expressive, and battle-tested across decades.&lt;/p&gt;&#xA;&lt;p&gt;In this chapter, we explore &lt;strong&gt;why Lua is still the #1 scripting language for games&lt;/strong&gt;, how it fits into modern engines, and the core principles that make Lua unique.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-what-makes-lua-special&#34;&gt;1. What Makes Lua Special?&lt;/h2&gt;&#xA;&lt;p&gt;Lua was designed with &lt;em&gt;one&lt;/em&gt; mission:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;A small, fast scripting language that can glue complex systems together.&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua Deep Dive: Coroutines, State Machines, DSLs, and Game Scripting Architecture</title>
				<link>https://blog.birdor.com/lua-deep-dive/</link>
				<pubDate>Tue, 25 Nov 2025 19:21:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-deep-dive/</guid>
				<description>&lt;p&gt;Lua is not just a lightweight script language.&lt;br&gt;&#xA;It is a &lt;strong&gt;runtime toolbox&lt;/strong&gt; capable of building state machines, pipelines, schedulers, entity systems, and even domain-specific languages (DSLs).&lt;/p&gt;&#xA;&lt;p&gt;This deep dive focuses on &lt;strong&gt;production-level techniques&lt;/strong&gt; heavily used in:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Game engines (Defold, Love2D, custom C/C++ engines)&lt;/li&gt;&#xA;&lt;li&gt;AI scripting&lt;/li&gt;&#xA;&lt;li&gt;UI scripting&lt;/li&gt;&#xA;&lt;li&gt;Simulation and animation&lt;/li&gt;&#xA;&lt;li&gt;Networking and asynchronous flows&lt;/li&gt;&#xA;&lt;li&gt;Configuration languages and DSLs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h1 id=&#34;1-coroutine-pipelines-the-real-power-of-lua&#34;&gt;1. Coroutine Pipelines (The Real Power of Lua)&lt;/h1&gt;&#xA;&lt;p&gt;Coroutines allow &lt;strong&gt;cooperative multitasking&lt;/strong&gt;, enabling sequential code that behaves like async flows.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua Advanced: Metatables, Coroutines, and Powerful Patterns</title>
				<link>https://blog.birdor.com/lua-advanced/</link>
				<pubDate>Tue, 25 Nov 2025 19:20:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-advanced/</guid>
				<description>&lt;p&gt;Lua is simple on the surface, but extremely powerful underneath.&lt;br&gt;&#xA;This article explores &lt;strong&gt;metatables&lt;/strong&gt;, &lt;strong&gt;metamethods&lt;/strong&gt;, &lt;strong&gt;coroutines&lt;/strong&gt;, advanced &lt;strong&gt;module design&lt;/strong&gt;, and a set of practical patterns used in games, tools, and embedded systems.&lt;/p&gt;&#xA;&lt;p&gt;All examples are fully runnable with standard Lua 5.3/5.4.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-metatables-luas-custom-behavior-engine&#34;&gt;1. Metatables: Lua’s Custom Behavior Engine&lt;/h2&gt;&#xA;&lt;p&gt;Metatables let you customize how tables behave—similar to operator overloading, custom indexing, inheritance, and more.&lt;/p&gt;&#xA;&lt;h3 id=&#34;11-basic-example-__index-fallback&#34;&gt;1.1 Basic Example: __index Fallback&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-lua&#34; data-lang=&#34;lua&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;defaults&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;player&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;setmetatable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;player&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;__index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;defaults&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;player.hp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;-- 100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;player.mp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;-- 50&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Explanation:&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Practical Introduction to Lua (Beginner Friendly)</title>
				<link>https://blog.birdor.com/lua-introduction/</link>
				<pubDate>Tue, 25 Nov 2025 19:16:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-introduction/</guid>
				<description>&lt;p&gt;Lua is a lightweight, embeddable scripting language widely used in game engines (Defold, Roblox, Corona), configuration systems, automation tools, and embedded platforms.&lt;/p&gt;&#xA;&lt;p&gt;This article gives you a &lt;strong&gt;clean, beginner-friendly introduction&lt;/strong&gt; with &lt;strong&gt;complete and runnable examples&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-setting-up-and-running-lua&#34;&gt;1. Setting Up and Running Lua&lt;/h2&gt;&#xA;&lt;h3 id=&#34;install-lua&#34;&gt;Install Lua&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;macOS&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install lua&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Linux (Ubuntu/Debian)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install lua5.4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Windows&lt;/strong&gt;&lt;br&gt;&#xA;Download binaries or use Lua for Windows.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;run-a-script&#34;&gt;Run a Script&lt;/h3&gt;&#xA;&lt;p&gt;Write &lt;code&gt;hello.lua&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-lua&#34; data-lang=&#34;lua&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello, Lua!&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Building a Tiny HTTP Server from Scratch with net &#43; bufio</title>
				<link>https://blog.birdor.com/tiny-http-server-net-bufio/</link>
				<pubDate>Tue, 25 Nov 2025 16:27:00 +0800</pubDate>
				<guid>https://blog.birdor.com/tiny-http-server-net-bufio/</guid>
				<description>&lt;p&gt;Go’s &lt;code&gt;net/http&lt;/code&gt; package is fantastic—but sometimes you want to &lt;strong&gt;see what’s really happening&lt;/strong&gt; under the hood.&lt;/p&gt;&#xA;&lt;p&gt;In this article, we’ll build a &lt;strong&gt;tiny HTTP/1.1 server from scratch&lt;/strong&gt;, using only:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;net&lt;/code&gt; — for TCP sockets&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;bufio&lt;/code&gt; — for buffered I/O&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;No &lt;code&gt;net/http&lt;/code&gt;, no handler interface, no magic.&lt;/p&gt;&#xA;&lt;p&gt;You’ll learn:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How HTTP/1.1 requests look on the wire&lt;/li&gt;&#xA;&lt;li&gt;How to parse the request line and headers&lt;/li&gt;&#xA;&lt;li&gt;How to build a minimal response (status line, headers, body)&lt;/li&gt;&#xA;&lt;li&gt;How to handle multiple connections with goroutines&lt;/li&gt;&#xA;&lt;li&gt;A tiny router for different paths&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This is not production code—it’s a &lt;strong&gt;learning tool&lt;/strong&gt;. But it’s a great way to deeply understand HTTP.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Deep Dive into Go’s net/http Internals</title>
				<link>https://blog.birdor.com/go-net-http-internals-deep-dive/</link>
				<pubDate>Tue, 25 Nov 2025 16:23:00 +0800</pubDate>
				<guid>https://blog.birdor.com/go-net-http-internals-deep-dive/</guid>
				<description>&lt;p&gt;Go’s &lt;code&gt;net/http&lt;/code&gt; package is deceptively simple on the surface—just call &lt;code&gt;http.ListenAndServe()&lt;/code&gt; and pass a handler. But beneath its minimal API lies a &lt;strong&gt;highly optimized&lt;/strong&gt;, &lt;strong&gt;battle-tested&lt;/strong&gt;, and &lt;strong&gt;beautifully engineered&lt;/strong&gt; HTTP runtime.&lt;/p&gt;&#xA;&lt;p&gt;This article explores the &lt;strong&gt;internal architecture, concurrency model, lifecycle, request handling flow, connection reuse, transport behaviors, and performance strategies&lt;/strong&gt; that make &lt;code&gt;net/http&lt;/code&gt; one of Go’s most iconic packages.&lt;/p&gt;&#xA;&lt;p&gt;This is a true &lt;em&gt;deep dive&lt;/em&gt;—use it to understand how Go’s HTTP stack really works under the hood.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Designing a High-Performance, Multi-Goroutine Socket Server in Go</title>
				<link>https://blog.birdor.com/go-high-performance-socket-server/</link>
				<pubDate>Tue, 25 Nov 2025 11:57:00 +0800</pubDate>
				<guid>https://blog.birdor.com/go-high-performance-socket-server/</guid>
				<description>&lt;p&gt;High-performance networking is one of Go’s strengths. With lightweight goroutines, a rich &lt;code&gt;net&lt;/code&gt; package, and strong concurrency primitives, Go is a great fit for building custom TCP servers, game backends, proxies, and internal protocols.&lt;/p&gt;&#xA;&lt;p&gt;In this article, we’ll &lt;strong&gt;design and implement a high-performance, multi-goroutine socket server&lt;/strong&gt; in Go, with an architecture you can evolve into a real-world production system.&lt;/p&gt;&#xA;&lt;p&gt;We’ll cover:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Architecture and design goals&lt;/li&gt;&#xA;&lt;li&gt;A baseline TCP server&lt;/li&gt;&#xA;&lt;li&gt;A multi-goroutine concurrency model&lt;/li&gt;&#xA;&lt;li&gt;Connection limits and backpressure&lt;/li&gt;&#xA;&lt;li&gt;Request handling with worker pools&lt;/li&gt;&#xA;&lt;li&gt;Graceful shutdown and observability&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-goals-and-design-principles&#34;&gt;1. Goals and Design Principles&lt;/h2&gt;&#xA;&lt;p&gt;We’ll design a server that:&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Deep Dive into Go’s net Package: Networking from First Principles</title>
				<link>https://blog.birdor.com/go-net-deep-dive/</link>
				<pubDate>Tue, 25 Nov 2025 11:46:00 +0800</pubDate>
				<guid>https://blog.birdor.com/go-net-deep-dive/</guid>
				<description>&lt;p&gt;The &lt;code&gt;net&lt;/code&gt; package is the foundation of all network programming in Go.&lt;br&gt;&#xA;Everything — from HTTP servers to gRPC, Redis clients, DNS resolvers, and low-level TCP/UDP tools — ultimately relies on &lt;strong&gt;Go’s networking stack&lt;/strong&gt; built around the &lt;code&gt;net&lt;/code&gt; package.&lt;/p&gt;&#xA;&lt;p&gt;This article provides a &lt;strong&gt;deep, practical, and complete&lt;/strong&gt; exploration of &lt;code&gt;net&lt;/code&gt; with clear explanations and runnable examples.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h1 id=&#34;1-why-the-net-package-matters&#34;&gt;1. Why the &lt;code&gt;net&lt;/code&gt; Package Matters&lt;/h1&gt;&#xA;&lt;p&gt;Go’s networking model is:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Simple&lt;/strong&gt; – Uses familiar Unix-style sockets and file descriptors.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cross-platform&lt;/strong&gt; – Same code works on Linux, macOS, Windows.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Concurrent by design&lt;/strong&gt; – Each connection can be handled by a goroutine.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Powerful&lt;/strong&gt; – TCP, UDP, Unix domain sockets, DNS, interfaces, IPs, CIDR tools, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Higher-level packages rely on it:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Birdor Tools &amp; Docs Update — URL Parser Release (2025-11-25)</title>
				<link>https://blog.birdor.com/changelog-2025-11-25/</link>
				<pubDate>Tue, 25 Nov 2025 00:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/changelog-2025-11-25/</guid>
				<description>&lt;p&gt;This update introduces the full release of the &lt;strong&gt;URL Parser &amp;amp; Query Editor&lt;/strong&gt;, one of Birdor’s essential web debugging tools.&lt;br&gt;&#xA;The accompanying documentation provides a deep technical reference for URL parsing, normalization, and edge-case behavior.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;url-parser--query-editor-released&#34;&gt;URL Parser &amp;amp; Query Editor Released&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; tool&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; url-parser&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;&#xA;&lt;p&gt;Launched the complete &lt;strong&gt;URL Parser &amp;amp; Query Editor&lt;/strong&gt; tool with full URL breakdown and live reconstruction preview.&lt;/p&gt;&#xA;&lt;h3 id=&#34;details&#34;&gt;Details&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added URL breakdown for &lt;strong&gt;protocol&lt;/strong&gt;, &lt;strong&gt;hostname&lt;/strong&gt;, &lt;strong&gt;path&lt;/strong&gt;, &lt;strong&gt;query&lt;/strong&gt;, &lt;strong&gt;hash&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Added UI to &lt;strong&gt;add / remove / edit&lt;/strong&gt; query parameters.&lt;/li&gt;&#xA;&lt;li&gt;Introduced normalized URL reconstruction with &lt;strong&gt;proper percent-encoding&lt;/strong&gt; rules.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;links&#34;&gt;Links&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://birdor.com/tools/url-parser&#34;&gt;URL Parser&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;url-parser-documentation-created&#34;&gt;URL Parser Documentation Created&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; docs&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; docs-url-parser&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;</description>
			</item>
			<item>
				<title>Understanding Go’s context Package: A Deep Dive</title>
				<link>https://blog.birdor.com/go-context-deep-dive/</link>
				<pubDate>Mon, 24 Nov 2025 19:20:00 +0800</pubDate>
				<guid>https://blog.birdor.com/go-context-deep-dive/</guid>
				<description>&lt;p&gt;Go’s &lt;code&gt;context&lt;/code&gt; package is one of the most important tools for building &lt;strong&gt;robust, cancellable, timeout-aware, concurrent&lt;/strong&gt; programs. Whether you are writing HTTP servers, gRPC services, background workers, or database operations, you will almost always use &lt;code&gt;context.Context&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This article provides a &lt;strong&gt;deep, practical, and complete&lt;/strong&gt; analysis of the &lt;code&gt;context&lt;/code&gt; package using clear code examples.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-why-context-exists&#34;&gt;1. Why &lt;code&gt;context&lt;/code&gt; Exists&lt;/h2&gt;&#xA;&lt;p&gt;Modern Go programs are highly concurrent. You might start goroutines for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;database queries&lt;/li&gt;&#xA;&lt;li&gt;API calls&lt;/li&gt;&#xA;&lt;li&gt;background tasks&lt;/li&gt;&#xA;&lt;li&gt;streaming events&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;But how do you &lt;strong&gt;cancel&lt;/strong&gt; a goroutine?&lt;br&gt;&#xA;How do you &lt;strong&gt;propagate deadlines&lt;/strong&gt; across function calls?&lt;br&gt;&#xA;How do you &lt;strong&gt;attach request-scoped values&lt;/strong&gt; safely?&lt;/p&gt;</description>
			</item>
			<item>
				<title>Getting Started with Go: A Practical Beginner’s Guide</title>
				<link>https://blog.birdor.com/go-getting-started/</link>
				<pubDate>Mon, 24 Nov 2025 19:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/go-getting-started/</guid>
				<description>&lt;p&gt;Go (often called &lt;strong&gt;Golang&lt;/strong&gt;) is a modern programming language designed at Google. It focuses on &lt;strong&gt;simplicity&lt;/strong&gt;, &lt;strong&gt;performance&lt;/strong&gt;, and &lt;strong&gt;built-in concurrency&lt;/strong&gt;. If you want to build fast web services, CLIs, tools, or backend systems, Go is a great choice.&lt;/p&gt;&#xA;&lt;p&gt;This article will walk you through Go from zero to a small, working example, with plenty of code you can copy, paste, and run.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-what-is-go-and-why-use-it&#34;&gt;1. What is Go and Why Use It?&lt;/h2&gt;&#xA;&lt;p&gt;Go is:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Birdor Tools &amp; Docs Update — JWT Debugger UI &#43; Documentation (2025-11-23)</title>
				<link>https://blog.birdor.com/changelog-2025-11-23/</link>
				<pubDate>Sun, 23 Nov 2025 00:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/changelog-2025-11-23/</guid>
				<description>&lt;p&gt;This update focuses on both the &lt;strong&gt;JWT Debugger tool UI&lt;/strong&gt; and its corresponding &lt;strong&gt;documentation guide&lt;/strong&gt;, providing a complete end-to-end experience for developers inspecting and validating JSON Web Tokens on Birdor.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;jwt-debugger-ui-foundation-created&#34;&gt;JWT Debugger UI Foundation Created&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; tool&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; jwt-debugger&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;&#xA;&lt;p&gt;The initial UI foundation for the &lt;strong&gt;JWT Debugger&lt;/strong&gt; is now in place, including decode panels and token validation views.&lt;/p&gt;&#xA;&lt;h3 id=&#34;details&#34;&gt;Details&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added &lt;strong&gt;header / payload / signature&lt;/strong&gt; display sections.&lt;/li&gt;&#xA;&lt;li&gt;Added visual highlighting for &lt;strong&gt;invalid&lt;/strong&gt; and &lt;strong&gt;expired&lt;/strong&gt; tokens.&lt;/li&gt;&#xA;&lt;li&gt;Implemented a Base64URL decoder with &lt;strong&gt;automatic padding correction&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;links&#34;&gt;Links&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://birdor.com/tools/jwt-debugger&#34;&gt;JWT Debugger&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;jwt-debugger-tool-guide-created&#34;&gt;JWT Debugger Tool Guide Created&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; docs&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; docs-jwt-debugger&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Calm &amp; Complete Introduction to Python</title>
				<link>https://blog.birdor.com/python-introduction/</link>
				<pubDate>Thu, 20 Nov 2025 20:15:00 +0800</pubDate>
				<guid>https://blog.birdor.com/python-introduction/</guid>
				<description>&lt;p&gt;Python is one of the most widely used programming languages today — simple enough for beginners, powerful enough for companies like Google, Instagram, Spotify, and NASA.&lt;/p&gt;&#xA;&lt;p&gt;This article provides a calm, friendly, and practical introduction to Python in the Birdor style: concise, structured, and useful.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-is-python&#34;&gt;What Is Python?&lt;/h2&gt;&#xA;&lt;p&gt;Python is a &lt;strong&gt;high-level, general-purpose programming language&lt;/strong&gt; created by Guido van Rossum and released in 1991.&lt;br&gt;&#xA;It was designed with a clear goal:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Next.js: Data Fetching in Next.js</title>
				<link>https://blog.birdor.com/nextjs-data-fetching-guide/</link>
				<pubDate>Thu, 20 Nov 2025 13:30:00 +0800</pubDate>
				<guid>https://blog.birdor.com/nextjs-data-fetching-guide/</guid>
				<description>&lt;p&gt;&lt;em&gt;A calm, practical guide to loading, caching, and streaming data in modern React applications.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Data fetching is one of the biggest changes in the Next.js App Router era.&lt;br&gt;&#xA;Instead of manually orchestrating waterfalls, suspense boundaries, and client-side fetches, Next.js encourages a &lt;strong&gt;server-first&lt;/strong&gt;, &lt;strong&gt;cached-by-default&lt;/strong&gt; model that results in faster and more predictable applications.&lt;/p&gt;&#xA;&lt;p&gt;But the shift introduces new concepts:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Where does &lt;code&gt;fetch()&lt;/code&gt; actually run?&lt;/li&gt;&#xA;&lt;li&gt;When does Next.js cache responses?&lt;/li&gt;&#xA;&lt;li&gt;What is “revalidation”?&lt;/li&gt;&#xA;&lt;li&gt;How do you fetch data per segment?&lt;/li&gt;&#xA;&lt;li&gt;What’s the right pattern for production apps?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This chapter provides a complete, practical understanding — calm, clear, and grounded.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Next.js: Server Components &amp; Client Components</title>
				<link>https://blog.birdor.com/nextjs-server-client-components/</link>
				<pubDate>Thu, 20 Nov 2025 13:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/nextjs-server-client-components/</guid>
				<description>&lt;p&gt;&lt;em&gt;A calm, practical guide to understanding what runs on the server, what runs in the browser, and why this distinction matters in modern React development.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Server Components are one of the defining features of modern Next.js.&lt;br&gt;&#xA;They represent a shift in how we think about rendering, data fetching, and performance.&lt;br&gt;&#xA;But they also introduce new questions:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What exactly &lt;em&gt;is&lt;/em&gt; a Server Component?&lt;/li&gt;&#xA;&lt;li&gt;When do I need a Client Component?&lt;/li&gt;&#xA;&lt;li&gt;How do they interact?&lt;/li&gt;&#xA;&lt;li&gt;What patterns lead to stable, predictable apps?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In this chapter, we’ll clarify these ideas — simply, calmly, without hype.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Next.js: File-Based Routing Deep Dive</title>
				<link>https://blog.birdor.com/nextjs-routing-deep-dive/</link>
				<pubDate>Thu, 20 Nov 2025 12:30:00 +0800</pubDate>
				<guid>https://blog.birdor.com/nextjs-routing-deep-dive/</guid>
				<description>&lt;p&gt;Next.js uses &lt;strong&gt;your folder structure as your routing system&lt;/strong&gt;.&lt;br&gt;&#xA;This can feel simple at first (“a folder becomes a URL”), but under the surface, file-based routing is one of the most expressive tools in modern web development.&lt;/p&gt;&#xA;&lt;p&gt;In this chapter, we’ll take a calm, structured look at how routing works in the App Router, and how to use it to build clear, scalable, real-world applications.&lt;/p&gt;&#xA;&lt;p&gt;No complicated abstractions — just practical, predictable patterns.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The App Router: A Modern Way to Build React Applications</title>
				<link>https://blog.birdor.com/nextjs-app-router-basics/</link>
				<pubDate>Thu, 20 Nov 2025 12:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/nextjs-app-router-basics/</guid>
				<description>&lt;p&gt;The App Router is one of the most important ideas in modern Next.js.&lt;br&gt;&#xA;It replaces the old Pages Router with a &lt;strong&gt;more flexible, more intuitive, and more scalable&lt;/strong&gt; way to structure your application.&lt;/p&gt;&#xA;&lt;p&gt;Instead of thinking in terms of “pages with lifecycle functions,” you design your app in terms of &lt;strong&gt;composable layouts&lt;/strong&gt;, &lt;strong&gt;nested routes&lt;/strong&gt;, and &lt;strong&gt;Server/Client Components&lt;/strong&gt; working together.&lt;/p&gt;&#xA;&lt;p&gt;In this chapter, we’ll explore what the App Router is, why it matters, and how to use it without confusion or unnecessary complexity.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Learn Next.js: A Calm, Practical Series</title>
				<link>https://blog.birdor.com/nextjs-learning-series/</link>
				<pubDate>Thu, 20 Nov 2025 11:30:00 +0800</pubDate>
				<guid>https://blog.birdor.com/nextjs-learning-series/</guid>
				<description>&lt;p&gt;Next.js is one of the most capable frameworks in the modern React ecosystem.&lt;br&gt;&#xA;It can power &lt;strong&gt;simple marketing pages&lt;/strong&gt;, &lt;strong&gt;content sites&lt;/strong&gt;, and fully-fledged &lt;strong&gt;SaaS products&lt;/strong&gt; — all from the same toolkit.&lt;/p&gt;&#xA;&lt;p&gt;This Birdor-style series is a &lt;strong&gt;calm, structured learning path&lt;/strong&gt; that helps you:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Understand what Next.js actually does (and what it doesn’t).&lt;/li&gt;&#xA;&lt;li&gt;Build real applications instead of toy examples.&lt;/li&gt;&#xA;&lt;li&gt;Ship production-grade apps with sane defaults: routing, data fetching, auth, performance, deployment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;No hype, no magic. Just &lt;strong&gt;practical, modern web engineering&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Backend Architecture Best Practices (2025 Edition)</title>
				<link>https://blog.birdor.com/backend-architecture-best-practices-2025/</link>
				<pubDate>Thu, 20 Nov 2025 10:40:00 +0800</pubDate>
				<guid>https://blog.birdor.com/backend-architecture-best-practices-2025/</guid>
				<description>&lt;p&gt;Modern backend systems have changed dramatically in recent years.&lt;br&gt;&#xA;But the heart of good engineering hasn’t: clarity, reliability, observability, and intentional design.&lt;/p&gt;&#xA;&lt;p&gt;This guide takes a calm and practical look at what “best practice” means in 2025 — without hype, without noise, just the essentials that help you build better systems.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-principles-that-still-matter&#34;&gt;1. Principles That Still Matter&lt;/h2&gt;&#xA;&lt;h3 id=&#34;11-simplicity-before-complexity&#34;&gt;1.1 Simplicity Before Complexity&lt;/h3&gt;&#xA;&lt;p&gt;Backend architecture succeeds when its domain model remains easy to reason about.&lt;br&gt;&#xA;Before thinking about microservices, start with:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Next.js: A Calm, Modern Framework for the React Era</title>
				<link>https://blog.birdor.com/nextjs-introduction/</link>
				<pubDate>Thu, 20 Nov 2025 10:30:00 +0800</pubDate>
				<guid>https://blog.birdor.com/nextjs-introduction/</guid>
				<description>&lt;p&gt;Next.js is a React framework that helps you build &lt;strong&gt;fast, production-ready web apps&lt;/strong&gt; without drowning in configuration.&lt;br&gt;&#xA;Instead of stitching together routing, bundling, SSR, API endpoints, and deployment by hand, you get a &lt;strong&gt;batteries-included toolkit&lt;/strong&gt; that still feels close to plain React.&lt;/p&gt;&#xA;&lt;p&gt;This article is a calm, practical overview of what Next.js is, why it’s useful, and how it fits into a modern Jamstack / full-stack workflow.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-is-nextjs&#34;&gt;What is Next.js?&lt;/h2&gt;&#xA;&lt;p&gt;At its core, Next.js is:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Birdor Docs Update — Tool Guides Section Launched (2025-11-20)</title>
				<link>https://blog.birdor.com/changelog-2025-11-20/</link>
				<pubDate>Thu, 20 Nov 2025 00:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/changelog-2025-11-20/</guid>
				<description>&lt;p&gt;This development log introduces the &lt;strong&gt;Tool Guides section&lt;/strong&gt; in Birdor Docs — the first structured area dedicated to tool-specific documentation.&lt;br&gt;&#xA;This launch marks an important step toward a unified, readable, and expandable documentation system.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;docs-tool-guides-section-launched&#34;&gt;Docs: Tool Guides Section Launched&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; docs&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; docs:tool-guides&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;&#xA;&lt;p&gt;Added dedicated documentation pages for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;JSON Formatter&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;JWT Debugger&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;URL Parser&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These are now the foundational tool docs inside the Birdor documentation system.&lt;/p&gt;&#xA;&lt;h3 id=&#34;details&#34;&gt;Details&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Introduced shared documentation components:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;DocsShell&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;DocsSection&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;DocsCard&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;DocsTable&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Established the groundwork for future &lt;strong&gt;API documentation&lt;/strong&gt;, &lt;strong&gt;architecture deep dives&lt;/strong&gt;, and &lt;strong&gt;developer onboarding guides&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;links&#34;&gt;Links&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://birdor.com/docs&#34;&gt;Docs Home&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Trends, Part 8: Modern Jamstack and the Full-Stack Front-End</title>
				<link>https://blog.birdor.com/modern-frontend-trends-part-8-modern-jamstack/</link>
				<pubDate>Wed, 19 Nov 2025 23:55:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-trends-part-8-modern-jamstack/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;When the term &lt;strong&gt;Jamstack&lt;/strong&gt; was introduced around 2016, it promised a simpler, more performant, more secure way to build websites. The original model was:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;J&lt;/strong&gt;avaScript&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;A&lt;/strong&gt;PIs&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;M&lt;/strong&gt;arkup&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;A static-first architecture powered by:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CDNs&lt;/li&gt;&#xA;&lt;li&gt;serverless functions&lt;/li&gt;&#xA;&lt;li&gt;pre-rendered pages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This approach was revolutionary.&lt;br&gt;&#xA;But the web has changed dramatically.&lt;/p&gt;&#xA;&lt;p&gt;Modern applications require:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;server-side rendering&lt;/li&gt;&#xA;&lt;li&gt;dynamic personalization&lt;/li&gt;&#xA;&lt;li&gt;authenticated dashboards&lt;/li&gt;&#xA;&lt;li&gt;streaming content&lt;/li&gt;&#xA;&lt;li&gt;real-time collaboration&lt;/li&gt;&#xA;&lt;li&gt;AI-powered interactions&lt;/li&gt;&#xA;&lt;li&gt;distributed databases&lt;/li&gt;&#xA;&lt;li&gt;edge compute&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The original Jamstack was simply not designed for these needs.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Trends, Part 7: WebAssembly and New Capabilities</title>
				<link>https://blog.birdor.com/modern-frontend-trends-part-7-wasm/</link>
				<pubDate>Wed, 19 Nov 2025 23:54:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-trends-part-7-wasm/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;WebAssembly (Wasm) represents one of the most significant advances in the history of the web platform.&lt;br&gt;&#xA;Where JavaScript brought dynamic interactivity to browsers, WebAssembly extends the web with:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;high-performance computation&lt;/li&gt;&#xA;&lt;li&gt;portable binary modules&lt;/li&gt;&#xA;&lt;li&gt;execution close to native speed&lt;/li&gt;&#xA;&lt;li&gt;language interoperability (Rust, C/C++, Go, Zig, Swift, etc.)&lt;/li&gt;&#xA;&lt;li&gt;sandboxed security&lt;/li&gt;&#xA;&lt;li&gt;stable execution across environments&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Originally imagined as a way to bring “native apps to the browser,” Wasm has become much more:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Trends, Part 6: AI-Augmented Front-End Development</title>
				<link>https://blog.birdor.com/modern-frontend-trends-part-6-ai/</link>
				<pubDate>Wed, 19 Nov 2025 23:52:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-trends-part-6-ai/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;For decades, front-end development was shaped by frameworks, browsers, and tooling.&lt;br&gt;&#xA;But in the last two years, &lt;strong&gt;AI has become the most transformative force&lt;/strong&gt; in how developers:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;build user interfaces&lt;/li&gt;&#xA;&lt;li&gt;manage state&lt;/li&gt;&#xA;&lt;li&gt;generate components&lt;/li&gt;&#xA;&lt;li&gt;scaffold entire apps&lt;/li&gt;&#xA;&lt;li&gt;write documentation&lt;/li&gt;&#xA;&lt;li&gt;test code&lt;/li&gt;&#xA;&lt;li&gt;debug performance issues&lt;/li&gt;&#xA;&lt;li&gt;delegate repetitive tasks&lt;/li&gt;&#xA;&lt;li&gt;explore new design ideas&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;AI has become an &lt;strong&gt;always-on co-developer&lt;/strong&gt;—capable of generating production-grade UI, analyzing architectural patterns, and automating workflows that previously required hours or days of manual effort.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Trends, Part 5: CSS Evolves — Utility-First and Native-First</title>
				<link>https://blog.birdor.com/modern-frontend-trends-part-5-css-evolution/</link>
				<pubDate>Wed, 19 Nov 2025 23:50:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-trends-part-5-css-evolution/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;CSS is undergoing its most significant evolution in over a decade.&lt;br&gt;&#xA;Historically, developers relied heavily on:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BEM naming conventions&lt;/li&gt;&#xA;&lt;li&gt;preprocessors like SASS or LESS&lt;/li&gt;&#xA;&lt;li&gt;global styles that easily collided&lt;/li&gt;&#xA;&lt;li&gt;complex CSS-in-JS runtimes&lt;/li&gt;&#xA;&lt;li&gt;design systems implemented through component libraries&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The web has changed.&lt;br&gt;&#xA;Modern applications demand &lt;strong&gt;scalable styling patterns&lt;/strong&gt;, &lt;strong&gt;low runtime overhead&lt;/strong&gt;, and &lt;strong&gt;predictable, maintainable design systems&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Two major movements define today&amp;rsquo;s landscape:&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-utility-first-css-tailwind-and-successors&#34;&gt;&lt;strong&gt;1. Utility-First CSS (Tailwind and successors)&lt;/strong&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;2-native-first-css-powerful-new-language-features&#34;&gt;&lt;strong&gt;2. Native-First CSS (powerful new language features)&lt;/strong&gt;&lt;/h2&gt;&#xA;&lt;p&gt;These movements coexist—not as rivals, but as complementary forces.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Trends, Part 4: Performance and the New Speed Standards</title>
				<link>https://blog.birdor.com/modern-frontend-trends-part-4-performance/</link>
				<pubDate>Wed, 19 Nov 2025 23:48:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-trends-part-4-performance/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;Web performance is no longer optional.&lt;br&gt;&#xA;It directly affects:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;search engine ranking&lt;/li&gt;&#xA;&lt;li&gt;conversion rates&lt;/li&gt;&#xA;&lt;li&gt;user retention&lt;/li&gt;&#xA;&lt;li&gt;perceived quality&lt;/li&gt;&#xA;&lt;li&gt;accessibility&lt;/li&gt;&#xA;&lt;li&gt;global user experience&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In the 2010s, developers often built first, optimized later.&lt;br&gt;&#xA;But today’s applications are too complex, and users too impatient, for that approach.&lt;/p&gt;&#xA;&lt;p&gt;Performance now must be &lt;strong&gt;built into the architecture&lt;/strong&gt;. Not an add-on.&lt;/p&gt;&#xA;&lt;p&gt;This is why modern frameworks and platforms—from Next.js to Astro to Nuxt to SvelteKit—prioritize:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Trends, Part 3: TypeScript as the Universal Web Language</title>
				<link>https://blog.birdor.com/modern-frontend-trends-part-3-typescript/</link>
				<pubDate>Wed, 19 Nov 2025 23:46:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-trends-part-3-typescript/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;TypeScript has quietly become the &lt;strong&gt;default language of the web&lt;/strong&gt;.&lt;br&gt;&#xA;In startups and enterprises alike, it is now difficult to find a serious front-end codebase that hasn’t adopted TypeScript—or is not actively migrating toward it.&lt;/p&gt;&#xA;&lt;p&gt;The reasons are straightforward but profound:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;safer refactoring&lt;/li&gt;&#xA;&lt;li&gt;better IDE support&lt;/li&gt;&#xA;&lt;li&gt;clearer API contracts&lt;/li&gt;&#xA;&lt;li&gt;more predictable runtime behaviour&lt;/li&gt;&#xA;&lt;li&gt;fewer production bugs&lt;/li&gt;&#xA;&lt;li&gt;far better collaboration in teams&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;What started as a “typed superset of JavaScript” has evolved into the &lt;strong&gt;principal foundation for modern front-end development&lt;/strong&gt;, especially in frameworks like:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Trends, Part 2: Edge Computing and the Global Web</title>
				<link>https://blog.birdor.com/modern-frontend-trends-part-2-edge-computing/</link>
				<pubDate>Wed, 19 Nov 2025 23:44:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-trends-part-2-edge-computing/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;The web is becoming &lt;strong&gt;global by default&lt;/strong&gt;.&lt;br&gt;&#xA;Users expect pages to load instantly—regardless of where they are. But traditional server architectures are built around central regions:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A single server (or cluster) in Virginia&lt;/li&gt;&#xA;&lt;li&gt;A CDN to cache static assets&lt;/li&gt;&#xA;&lt;li&gt;A backend thousands of kilometers away&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This model can’t match the expectations of 2025:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;interactive pages must render quickly&lt;/li&gt;&#xA;&lt;li&gt;authenticated content must not be slow&lt;/li&gt;&#xA;&lt;li&gt;dashboards must maintain consistent latency&lt;/li&gt;&#xA;&lt;li&gt;APIs must remain responsive worldwide&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Edge computing solves this.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Trends, Part 1: The Rise of Hybrid Rendering Frameworks</title>
				<link>https://blog.birdor.com/modern-frontend-trends-part-1-hybrid-rendering/</link>
				<pubDate>Wed, 19 Nov 2025 23:39:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-trends-part-1-hybrid-rendering/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;For more than a decade, front-end development has been shaped by two primary rendering models:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Single-Page Applications (SPA)&lt;/strong&gt; powered by client-side JavaScript&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Server-Side Rendering (SSR)&lt;/strong&gt; powered by backend frameworks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These two paradigms guided the web’s evolution through the 2010s. Developers chose one or the other depending on product needs, performance constraints, or organizational preference.&lt;/p&gt;&#xA;&lt;p&gt;But the modern web has moved on.&lt;/p&gt;&#xA;&lt;p&gt;Today’s frameworks—Next.js, SvelteKit, SolidStart, Remix, Nuxt 3, Astro—embrace a unified philosophy:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Web Development Trends (2025)</title>
				<link>https://blog.birdor.com/modern-frontend-web-development-trends-birdor-2025/</link>
				<pubDate>Wed, 19 Nov 2025 19:41:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-web-development-trends-birdor-2025/</guid>
				<description>&lt;p&gt;Front-end development continues to evolve at a remarkable pace. What started as simple document rendering has grown into a sophisticated ecosystem of frameworks, build pipelines, distributed runtimes, and cloud-native deployment models.&lt;/p&gt;&#xA;&lt;p&gt;This article provides a &lt;strong&gt;practical, credible, and comprehensive&lt;/strong&gt; overview of today’s most important trends—covering frameworks, architectures, performance, tooling, and the emerging direction shaped by AI and edge computing.&lt;/p&gt;&#xA;&lt;p&gt;Birdor’s goal is to give developers &lt;strong&gt;clarity over hype&lt;/strong&gt;, highlight what truly matters, and help you architect modern, resilient, and scalable applications.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cloudflare Performance Optimization Playbook — Birdor Cloudflare Tutorial Series (Part 8)</title>
				<link>https://blog.birdor.com/cloudflare-tutorial-part-8-performance-playbook/</link>
				<pubDate>Wed, 19 Nov 2025 17:15:00 +0800</pubDate>
				<guid>https://blog.birdor.com/cloudflare-tutorial-part-8-performance-playbook/</guid>
				<description>&lt;p&gt;Cloudflare improves performance out of the box, but thoughtful configuration can push your site (especially a Hugo/JAMstack site) to exceptional global performance.&lt;br&gt;&#xA;This final chapter gathers Cloudflare’s performance-focused features into a calm, practical playbook. Each recommendation is designed to be simple to understand and safe to apply.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-the-three-layers-of-cloudflare-performance&#34;&gt;1. The Three Layers of Cloudflare Performance&lt;/h2&gt;&#xA;&lt;p&gt;Cloudflare performance can be thought of as three layers:&lt;/p&gt;&#xA;&lt;h3 id=&#34;1-global-network--routing&#34;&gt;1. Global Network &amp;amp; Routing&lt;/h3&gt;&#xA;&lt;p&gt;Anycast routing, edge proximity, Argo Smart Routing.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cloudflare Zero Trust &amp; Security Essentials — Birdor Cloudflare Tutorial Series (Part 7)</title>
				<link>https://blog.birdor.com/cloudflare-tutorial-part-7-zero-trust-security/</link>
				<pubDate>Wed, 19 Nov 2025 16:50:00 +0800</pubDate>
				<guid>https://blog.birdor.com/cloudflare-tutorial-part-7-zero-trust-security/</guid>
				<description>&lt;p&gt;Cloudflare is not only a CDN and global network — it is also a modern security platform. Cloudflare Zero Trust provides access control, identity verification, secure tunnels, traffic filtering, and threat mitigation without relying on traditional VPNs or complex infrastructure.&lt;/p&gt;&#xA;&lt;p&gt;In this tutorial, we walk through the essential concepts, tools, and practical workflows that help you secure your sites, APIs, dashboards, and internal tools.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-the-philosophy-of-cloudflare-zero-trust&#34;&gt;1. The Philosophy of Cloudflare Zero Trust&lt;/h2&gt;&#xA;&lt;p&gt;Traditional security models rely on the idea of a “trusted network.”&lt;br&gt;&#xA;Cloudflare replaces this with a simpler principle:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cloudflare KV, R2, and D1 Storage — Birdor Cloudflare Tutorial Series (Part 6)</title>
				<link>https://blog.birdor.com/cloudflare-tutorial-part-6-kv-r2-d1-storage/</link>
				<pubDate>Wed, 19 Nov 2025 16:30:00 +0800</pubDate>
				<guid>https://blog.birdor.com/cloudflare-tutorial-part-6-kv-r2-d1-storage/</guid>
				<description>&lt;p&gt;Cloudflare offers a suite of distributed storage products that extend its serverless platform far beyond simple compute. KV, R2, and D1 each serve a different purpose — from configuration and caching to object storage and relational data.&lt;/p&gt;&#xA;&lt;p&gt;This guide provides a calm, structured look at Cloudflare’s storage ecosystem and explains how to use each service with Workers and Pages Functions. The goal is clarity, not complexity.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-the-philosophy-of-cloudflare-edge-storage&#34;&gt;1. The Philosophy of Cloudflare Edge Storage&lt;/h2&gt;&#xA;&lt;p&gt;Cloudflare’s storage model follows a simple idea:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cloudflare Workers &amp; Pages Functions — Birdor Cloudflare Tutorial Series (Part 5)</title>
				<link>https://blog.birdor.com/cloudflare-tutorial-part-5-workers-pages-functions/</link>
				<pubDate>Wed, 19 Nov 2025 16:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/cloudflare-tutorial-part-5-workers-pages-functions/</guid>
				<description>&lt;p&gt;Cloudflare Workers allow developers to run JavaScript and TypeScript directly at the edge — close to users and without maintaining servers. Pages Functions provide the same compute model inside Cloudflare Pages projects, giving static sites like Hugo access to dynamic capabilities such as authentication, APIs, routing logic, and integrations.&lt;/p&gt;&#xA;&lt;p&gt;This tutorial offers a calm, practical introduction to Workers and Functions with examples that fit naturally into Hugo and JAMstack projects. No prior serverless experience is required.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cloudflare CDN, Caching, and Edge Rules — Birdor Cloudflare Tutorial Series (Part 4)</title>
				<link>https://blog.birdor.com/cloudflare-tutorial-part-4-cdn-caching-edge-rules/</link>
				<pubDate>Wed, 19 Nov 2025 15:40:00 +0800</pubDate>
				<guid>https://blog.birdor.com/cloudflare-tutorial-part-4-cdn-caching-edge-rules/</guid>
				<description>&lt;p&gt;Cloudflare’s CDN and caching layer is one of the platform’s greatest strengths. For static sites like Hugo, it delivers global performance with almost no configuration. Yet understanding how Cloudflare caches, when it bypasses the cache, and how to fine-tune caching behavior will help you create a site that stays consistently fast for users across the world.&lt;/p&gt;&#xA;&lt;p&gt;This chapter provides a calm, practical explanation of Cloudflare’s CDN architecture and the tools available for controlling cache behavior: Cache Rules, Page Rules, Transform Rules, and more.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Deploying Hugo on Cloudflare Pages — Birdor Cloudflare Tutorial Series (Part 3)</title>
				<link>https://blog.birdor.com/cloudflare-tutorial-part-3-hugo-cloudflare-pages/</link>
				<pubDate>Wed, 19 Nov 2025 15:20:00 +0800</pubDate>
				<guid>https://blog.birdor.com/cloudflare-tutorial-part-3-hugo-cloudflare-pages/</guid>
				<description>&lt;p&gt;Hugo remains one of the fastest and most reliable static site generators available. Cloudflare Pages, with its global CDN and integrated serverless features, provides a perfect home for Hugo websites — from blogs and documentation to developer tools and knowledge bases.&lt;/p&gt;&#xA;&lt;p&gt;This tutorial walks through the complete Hugo + Cloudflare Pages workflow using Birdor’s calm, developer-friendly style. By the end, you’ll have a solid, stable deployment pipeline with previews, HTTPS, and optional serverless logic.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cloudflare DNS &amp; Domain Management — Birdor Cloudflare Tutorial Series (Part 2)</title>
				<link>https://blog.birdor.com/cloudflare-tutorial-part-2-dns-domain-management/</link>
				<pubDate>Wed, 19 Nov 2025 15:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/cloudflare-tutorial-part-2-dns-domain-management/</guid>
				<description>&lt;p&gt;Cloudflare DNS is one of the fastest and most reliable DNS services in the world. It’s also one of the easiest to use. Whether you’re hosting a Hugo site, an API, or a full web application, Cloudflare DNS gives you a stable foundation with minimal maintenance.&lt;/p&gt;&#xA;&lt;p&gt;This tutorial provides a calm, practical walkthrough of managing domains on Cloudflare. If you’re new to DNS, don’t worry — our goal is clarity, not complexity.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cloudflare Fundamentals — Birdor Cloudflare Tutorial Series (Part 1)</title>
				<link>https://blog.birdor.com/cloudflare-tutorial-part-1-fundamentals/</link>
				<pubDate>Wed, 19 Nov 2025 14:40:00 +0800</pubDate>
				<guid>https://blog.birdor.com/cloudflare-tutorial-part-1-fundamentals/</guid>
				<description>&lt;p&gt;Cloudflare has grown into one of the most influential platforms in modern web architecture. What began as a CDN and security provider has expanded into a full edge-compute ecosystem used by small blogs, large SaaS platforms, and high-traffic global services.&lt;/p&gt;&#xA;&lt;p&gt;This tutorial provides a calm, straightforward overview of Cloudflare — what it does, how its global network operates, and how each product fits into a modern developer workflow.&lt;/p&gt;&#xA;&lt;p&gt;If you’re new to Cloudflare or simply want a clearer mental model, this is the place to begin.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Complete Tutorial: Deploying Hugo to Cloudflare Pages</title>
				<link>https://blog.birdor.com/cloudflare-pages-hugo-tutorial/</link>
				<pubDate>Wed, 19 Nov 2025 14:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/cloudflare-pages-hugo-tutorial/</guid>
				<description>&lt;p&gt;Cloudflare Pages is a fast, reliable, and developer-friendly platform for deploying static sites. It integrates naturally with GitHub, offers global CDN distribution, and supports full JAMstack workflows. Hugo, being one of the fastest static site generators available, pairs perfectly with Cloudflare Pages.&lt;/p&gt;&#xA;&lt;p&gt;In this guide, we walk through the full workflow—building, connecting, deploying, enabling custom domains, and ensuring your site performs consistently across the Cloudflare network.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-why-use-cloudflare-pages-for-a-hugo-site&#34;&gt;1. Why Use Cloudflare Pages for a Hugo Site?&lt;/h2&gt;&#xA;&lt;p&gt;Cloudflare Pages provides several strengths that align well with Hugo:&lt;/p&gt;</description>
			</item>
			<item>
				<title>JAMstack vs SSR vs SPA: A Clear and Developer-Friendly Comparison</title>
				<link>https://blog.birdor.com/jamstack-vs-ssr-vs-spa/</link>
				<pubDate>Wed, 19 Nov 2025 13:30:00 +0800</pubDate>
				<guid>https://blog.birdor.com/jamstack-vs-ssr-vs-spa/</guid>
				<description>&lt;p&gt;Modern web development revolves around three dominant architectural models: &lt;strong&gt;JAMstack&lt;/strong&gt;, &lt;strong&gt;Server-Side Rendering (SSR)&lt;/strong&gt;, and &lt;strong&gt;Single-Page Applications (SPA)&lt;/strong&gt;. Each approach reflects different assumptions about performance, dynamic behavior, deployment, and developer experience.&lt;/p&gt;&#xA;&lt;p&gt;At Birdor, we appreciate tools and architectures that are predictable, simple to maintain, and technically sound. This article provides a calm, detailed comparison of these three models to help you choose the right foundation for your project.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-overview-of-the-three-architectures&#34;&gt;1. Overview of the Three Architectures&lt;/h2&gt;&#xA;&lt;p&gt;Before diving into trade-offs, here is a quick definition of each model.&lt;/p&gt;</description>
			</item>
			<item>
				<title>JAMstack in Depth</title>
				<link>https://blog.birdor.com/jamstack-in-depth/</link>
				<pubDate>Wed, 19 Nov 2025 13:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/jamstack-in-depth/</guid>
				<description>&lt;p&gt;Modern web development has moved far beyond monolithic backends and template engines. Across the industry, teams are embracing a simpler, more predictable architecture—one that prioritizes speed, security, and a clean separation of responsibilities. We often call this approach &lt;strong&gt;JAMstack&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;At Birdor, we value tools and architectures that offer clarity and reliability. JAMstack fits that philosophy well. This article provides a calm, in-depth exploration of how JAMstack works and why it has become a strong foundation for modern websites and developer-focused tools.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Complete and Authoritative Introduction to JAMstack</title>
				<link>https://blog.birdor.com/jamstack-introduction/</link>
				<pubDate>Wed, 19 Nov 2025 12:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/jamstack-introduction/</guid>
				<description>&lt;h2 id=&#34;1-introduction&#34;&gt;1. Introduction&lt;/h2&gt;&#xA;&lt;p&gt;JAMstack has rapidly grown from a niche concept into a mainstream architectural approach for building fast, secure, and scalable web experiences. Its core idea is simple: pre-render as much content as possible, deliver assets directly from a CDN, and use APIs to power dynamic functionality. This article provides a complete and credible guide to the JAMstack ecosystem, covering principles, architecture, workflows, and best-use cases.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2-what-is-jamstack&#34;&gt;2. What Is JAMstack?&lt;/h2&gt;&#xA;&lt;h3 id=&#34;21-definition&#34;&gt;2.1 Definition&lt;/h3&gt;&#xA;&lt;p&gt;JAMstack stands for:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Birdor Docs UI &amp; JSON Tool Guide Update — 2025-11-19</title>
				<link>https://blog.birdor.com/changelog-2025-11-19/</link>
				<pubDate>Wed, 19 Nov 2025 00:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/changelog-2025-11-19/</guid>
				<description>&lt;p&gt;This development log documents several UI component additions for the Birdor Docs system, along with the first full documentation page for the &lt;strong&gt;JSON Formatter &amp;amp; Viewer&lt;/strong&gt; tool.&lt;br&gt;&#xA;These updates improve documentation consistency, readability, and reusable structure.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;docssection-component-added&#34;&gt;DocsSection Component Added&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; docs&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; docs-ui&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;&#xA;&lt;p&gt;Introduced &lt;code&gt;DocsSection&lt;/code&gt; to standardize headings and spacing across Birdor documentation.&lt;/p&gt;&#xA;&lt;h3 id=&#34;details&#34;&gt;Details&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Supports &lt;strong&gt;h2 / h3 / h4&lt;/strong&gt; with consistent spacing.&lt;/li&gt;&#xA;&lt;li&gt;Unified typography scale and hierarchical structure.&lt;/li&gt;&#xA;&lt;li&gt;Reduced duplicated markup in multiple docs pages.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;links&#34;&gt;Links&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://birdor.com/docs&#34;&gt;Docs Home&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;docscard--docstable-components&#34;&gt;DocsCard &amp;amp; DocsTable Components&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; docs&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; docs-ui&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;</description>
			</item>
			<item>
				<title>Birdor Tools &amp; Docs — Initial Structure Log (2025-11-18)</title>
				<link>https://blog.birdor.com/changelog-2025-11-18/</link>
				<pubDate>Tue, 18 Nov 2025 00:00:00 +0800</pubDate>
				<guid>https://blog.birdor.com/changelog-2025-11-18/</guid>
				<description>&lt;p&gt;This document records the initial implementation work for the Birdor &lt;strong&gt;Tools&lt;/strong&gt; page and the first version of the &lt;strong&gt;DocsShell&lt;/strong&gt; layout system.&lt;br&gt;&#xA;These foundational structures set the baseline for future expansion across Birdor Tools and Birdor Docs.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;initial-tools-page-structure&#34;&gt;Initial Tools Page Structure&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; tool&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; tools-page&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;&#xA;&lt;p&gt;Set up the first iteration of the &lt;strong&gt;/tools&lt;/strong&gt; layout and grid structure.&lt;/p&gt;&#xA;&lt;h3 id=&#34;details&#34;&gt;Details&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Created basic Tools page with grid layout.&lt;/li&gt;&#xA;&lt;li&gt;Added placeholder cards for JSON, JWT, URL tools.&lt;/li&gt;&#xA;&lt;li&gt;Unified basic Tailwind spacing, max-width, and container structure.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;links&#34;&gt;Links&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://birdor.com/tools&#34;&gt;Tools Home&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;docsshell-v01-introduced&#34;&gt;DocsShell v0.1 Introduced&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; docs&lt;br&gt;&#xA;&lt;strong&gt;Scope:&lt;/strong&gt; docs-ui&lt;br&gt;&#xA;&lt;strong&gt;Importance:&lt;/strong&gt; minor&lt;/p&gt;</description>
			</item>
			<item>
				<title></title>
				<link>https://blog.birdor.com/choosing-plumego-framework-decision-guide/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://blog.birdor.com/choosing-plumego-framework-decision-guide/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Choosing Plumego: A Framework Decision Guide for Serious Go Teams&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;author&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Birdor Engineering&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;slug&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;choosing-plumego-framework-decision-guide&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;ld&#34;&gt;2025-12-30T22:30:00&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;+08&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;00&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;lastmod&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;ld&#34;&gt;2025-12-30T22:30:00&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;+08&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;00&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A comprehensive, in-depth decision guide for evaluating Plumego as a Go framework. This article examines architectural trade-offs, team maturity, system lifecycle, operational concerns, and long-term maintainability to help serious Go teams decide when Plumego is the right choice.&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;keywords&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;plumego&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;go framework decision&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;backend architecture&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;explicit systems&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;golang engineering&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;birdor&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Go&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Architecture&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Engineering Decisions&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Frameworks&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;categories&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Engineering&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;toc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;draft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;choosing-plumego-a-framework-decision-guide-for-serious-go-teams&#34;&gt;Choosing Plumego: A Framework Decision Guide for Serious Go Teams&lt;/h1&gt;&#xA;&lt;h2 id=&#34;introduction-framework-choice-is-a-long-term-commitment&#34;&gt;Introduction: Framework Choice Is a Long-Term Commitment&lt;/h2&gt;&#xA;&lt;p&gt;Choosing a backend framework is rarely a neutral decision. While it is often treated as a matter of developer preference or short-term productivity, in practice it becomes a &lt;strong&gt;long-term architectural commitment&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title></title>
				<link>https://blog.birdor.com/plumego-explicit-systems-philosophy/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://blog.birdor.com/plumego-explicit-systems-philosophy/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Plumego and Explicit Systems: An Engineering Philosophy&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;author&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Birdor Engineering&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;slug&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;plumego-explicit-systems-philosophy&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;ld&#34;&gt;2025-12-31T00:30:00&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;+08&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;00&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;lastmod&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;ld&#34;&gt;2025-12-31T00:30:00&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;+08&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;00&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A deep engineering essay on the philosophy behind Plumego. This article explores why explicit systems outperform implicit ones in long-lived software, how hidden abstractions accumulate technical debt, and why Plumego is intentionally designed as a framework that forces clarity, ownership, and architectural responsibility.&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;keywords&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;plumego&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;explicit systems&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;software architecture philosophy&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;golang engineering&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;backend systems design&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;birdor&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Go&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Architecture&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Philosophy&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Engineering Culture&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;categories&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Engineering&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;toc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;draft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;plumego-and-explicit-systems-an-engineering-philosophy&#34;&gt;Plumego and Explicit Systems: An Engineering Philosophy&lt;/h1&gt;&#xA;&lt;h2 id=&#34;introduction-this-is-not-a-feature-list&#34;&gt;Introduction: This Is Not a Feature List&lt;/h2&gt;&#xA;&lt;p&gt;This article is not about APIs.&lt;/p&gt;</description>
			</item>
			<item>
				<title></title>
				<link>https://blog.birdor.com/plumego-real-world-service-walkthrough/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://blog.birdor.com/plumego-real-world-service-walkthrough/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Building a Real Service with Plumego: From HTTP Entry to Domain Logic&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;author&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Birdor Engineering&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;slug&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;plumego-real-world-service-walkthrough&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;ld&#34;&gt;2025-12-30T23:30:00&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;+08&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;00&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;lastmod&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;ld&#34;&gt;2025-12-30T23:30:00&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;+08&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;00&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A deep, end-to-end walkthrough of building a real-world backend service with Plumego. This article traces a request from HTTP entry, through routing, middleware, context, use cases, domain logic, and infrastructure, explaining architectural decisions and trade-offs along the way.&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;keywords&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;plumego&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;go backend example&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;clean architecture go&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;real world service&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;birdor&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Go&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Backend&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Architecture&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Practical Guide&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;categories&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Engineering&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;toc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;draft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;building-a-real-service-with-plumego-from-http-entry-to-domain-logic&#34;&gt;Building a Real Service with Plumego: From HTTP Entry to Domain Logic&lt;/h1&gt;&#xA;&lt;h2 id=&#34;introduction-why-real-examples-matter&#34;&gt;Introduction: Why “Real” Examples Matter&lt;/h2&gt;&#xA;&lt;p&gt;Many framework tutorials stop at the point where things become interesting.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
