<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>fiatcode.dev</title><description>Cross-platform development, Linux, self-hosting, and software craftsmanship.</description><link>https://fiatcode.dev/</link><language>en</language><item><title>Docker vs Podman for Deployment: The Daemon Was Never the Feature</title><link>https://fiatcode.dev/posts/docker-vs-podman-for-deployment/</link><guid isPermaLink="true">https://fiatcode.dev/posts/docker-vs-podman-for-deployment/</guid><description>I moved fourteen self-hosted services off Docker Compose. The thing I thought I&apos;d miss — the daemon — turned out to be the thing I was glad to lose</description><pubDate>Fri, 17 Jul 2026 11:45:00 GMT</pubDate><category>self-hosting</category><category>podman</category><category>linux</category></item><item><title>Eight Privacy-First Browser Tools, Zero Network Requests</title><link>https://fiatcode.dev/posts/eight-privacy-first-browser-tools/</link><guid isPermaLink="true">https://fiatcode.dev/posts/eight-privacy-first-browser-tools/</guid><description>Every online dev tool says it doesn&apos;t upload your data. I wanted a set where you can open the network tab and prove it.</description><pubDate>Fri, 19 Jun 2026 07:40:01 GMT</pubDate><category>ai</category><category>dev-setup</category></item><item><title>I Fed the Official Traccar Client to AI and Rebuilt It</title><link>https://fiatcode.dev/posts/rebuilding-traccar-client-with-ai/</link><guid isPermaLink="true">https://fiatcode.dev/posts/rebuilding-traccar-client-with-ai/</guid><description>The official app is built in the same Flutter I&apos;d use. So its bugs and its UI weren&apos;t the framework&apos;s fault — they were choices. I made different ones.</description><pubDate>Thu, 18 Jun 2026 07:10:00 GMT</pubDate><category>ai</category><category>flutter</category><category>android</category></item><item><title>Your Tool&apos;s Name Is a Spec</title><link>https://fiatcode.dev/posts/your-tools-name-is-a-spec/</link><guid isPermaLink="true">https://fiatcode.dev/posts/your-tools-name-is-a-spec/</guid><description>peekseq became weft — and the rename did more design work than any feature I shipped around it.</description><pubDate>Wed, 17 Jun 2026 05:18:36 GMT</pubDate><category>craftsmanship</category><category>dev-setup</category></item><item><title>Bringing CI Home: Forgejo Actions on a Rootless Podman Runner</title><link>https://fiatcode.dev/posts/self-hosting-ci-forgejo-actions-podman/</link><guid isPermaLink="true">https://fiatcode.dev/posts/self-hosting-ci-forgejo-actions-podman/</guid><description>I self-host my git, my API, even my notes — my Flutter builds were the last thing still running on someone else&apos;s Macs</description><pubDate>Tue, 09 Jun 2026 09:36:40 GMT</pubDate><category>self-hosting</category><category>dev-setup</category><category>flutter</category></item><item><title>Your Second Brain Belongs in Your Terminal</title><link>https://fiatcode.dev/posts/your-second-brain-belongs-in-your-terminal/</link><guid isPermaLink="true">https://fiatcode.dev/posts/your-second-brain-belongs-in-your-terminal/</guid><description>Reading your second brain shouldn&apos;t require alt-tabbing to an Electron app</description><pubDate>Mon, 08 Jun 2026 11:55:00 GMT</pubDate><category>ai</category><category>linux</category><category>dev-setup</category></item><item><title>Self-Hosting LibreChat: Own Your AI Stack</title><link>https://fiatcode.dev/posts/self-hosting-librechat-own-your-ai-stack/</link><guid isPermaLink="true">https://fiatcode.dev/posts/self-hosting-librechat-own-your-ai-stack/</guid><description>When Claude&apos;s quotas tightened and the AI landscape got political, I stopped renting intelligence and built my own</description><pubDate>Tue, 31 Mar 2026 11:00:00 GMT</pubDate><category>self-hosting</category><category>ai</category></item><item><title>Stop Stashing. Use Git Worktree.</title><link>https://fiatcode.dev/posts/stop-stashing-use-git-worktree/</link><guid isPermaLink="true">https://fiatcode.dev/posts/stop-stashing-use-git-worktree/</guid><description>Switching branches to review a PR shouldn&apos;t cost you your mental context. It doesn&apos;t have to.</description><pubDate>Wed, 25 Mar 2026 17:00:00 GMT</pubDate><category>git</category><category>dev-setup</category></item><item><title>Vibe Coding Still Needs a Craftsman</title><link>https://fiatcode.dev/posts/vibe-coding-still-needs-a-craftsman/</link><guid isPermaLink="true">https://fiatcode.dev/posts/vibe-coding-still-needs-a-craftsman/</guid><description>AI agents can write code faster than you ever will. That doesn&apos;t mean you can stop thinking.</description><pubDate>Tue, 24 Mar 2026 17:00:00 GMT</pubDate><category>ai</category><category>craftsmanship</category></item><item><title>Building My Own Self-Hosted Music Library</title><link>https://fiatcode.dev/posts/building-my-own-self-hosted-music-library/</link><guid isPermaLink="true">https://fiatcode.dev/posts/building-my-own-self-hosted-music-library/</guid><description>From format wars to streaming anywhere, on my own terms</description><pubDate>Wed, 18 Mar 2026 09:18:00 GMT</pubDate><category>linux</category><category>self-hosting</category></item><item><title>Building a Load Testing Script with Claude</title><link>https://fiatcode.dev/posts/building-load-testing-script-with-claude/</link><guid isPermaLink="true">https://fiatcode.dev/posts/building-load-testing-script-with-claude/</guid><description>How I built a custom load testing tool with Claude Sonnet 4.6</description><pubDate>Sun, 22 Feb 2026 06:23:00 GMT</pubDate><category>go</category><category>ai</category></item><item><title>The Immutable Workstation - Fedora Kinoite</title><link>https://fiatcode.dev/posts/immutable-workstation-fedora-kinoite/</link><guid isPermaLink="true">https://fiatcode.dev/posts/immutable-workstation-fedora-kinoite/</guid><description>My journey with atomic desktop from Fedora</description><pubDate>Fri, 20 Feb 2026 06:08:00 GMT</pubDate><category>linux</category><category>dev-setup</category></item><item><title>Sign GitHub Commit on Windows</title><link>https://fiatcode.dev/posts/sign-github-commit-on-windows/</link><guid isPermaLink="true">https://fiatcode.dev/posts/sign-github-commit-on-windows/</guid><description>A guide to sign GitHub commit on Windows</description><pubDate>Wed, 18 Feb 2026 16:48:00 GMT</pubDate><category>git</category><category>windows</category></item><item><title>Using direnv in PowerShell on Windows</title><link>https://fiatcode.dev/posts/using-direnv-in-powershell-on-windows/</link><guid isPermaLink="true">https://fiatcode.dev/posts/using-direnv-in-powershell-on-windows/</guid><description>Simple way to manage environment variables in PowerShell on Windows</description><pubDate>Tue, 17 Feb 2026 05:50:32 GMT</pubDate><category>windows</category><category>dev-setup</category></item><item><title>Remap Infinix Air Pro+ Copilot Key in Linux</title><link>https://fiatcode.dev/posts/remap-copilot-key-infinix-air-pro-plus/</link><guid isPermaLink="true">https://fiatcode.dev/posts/remap-copilot-key-infinix-air-pro-plus/</guid><description>Re-using Copilot key for something else more useful</description><pubDate>Sat, 01 Mar 2025 15:41:32 GMT</pubDate><category>linux</category><category>hardware</category></item><item><title>Fix ADB Insufficient Permission</title><link>https://fiatcode.dev/posts/fix-adb-unsufficient-permission-linux/</link><guid isPermaLink="true">https://fiatcode.dev/posts/fix-adb-unsufficient-permission-linux/</guid><description>udev rules for fixing ADB Insufficient permission in Linux</description><pubDate>Mon, 24 Feb 2025 04:29:30 GMT</pubDate><category>linux</category><category>android</category></item><item><title>CRDT - Conflict Free Replicated Data Types</title><link>https://fiatcode.dev/posts/crdt-conflict-free-replicated-data-types/</link><guid isPermaLink="true">https://fiatcode.dev/posts/crdt-conflict-free-replicated-data-types/</guid><description>A brief intro to Conflict Free Replicated Data Types</description><pubDate>Mon, 24 Feb 2025 02:58:08 GMT</pubDate><category>dart</category><category>distributed-systems</category></item><item><title>Fix Infinix Air Pro+ Quad Speakers in Linux</title><link>https://fiatcode.dev/posts/fix-infinix-air-pro-plus-quad-speakers-linux/</link><guid isPermaLink="true">https://fiatcode.dev/posts/fix-infinix-air-pro-plus-quad-speakers-linux/</guid><description>A fix for Infinix Air Pro+ -- only 2 of 4 speakers working in Linux</description><pubDate>Sun, 23 Feb 2025 16:27:49 GMT</pubDate><category>linux</category><category>hardware</category></item><item><title>Android Devices Not Showing on Flutter Project</title><link>https://fiatcode.dev/posts/flutter-android-emulator-not-showing/</link><guid isPermaLink="true">https://fiatcode.dev/posts/flutter-android-emulator-not-showing/</guid><description>A fix for new Flutter project that doesn&apos;t have Android devices showing up</description><pubDate>Sat, 22 Feb 2025 02:21:22 GMT</pubDate><category>flutter</category><category>android</category></item><item><title>Fix Infinix Air Pro+ Screen Color</title><link>https://fiatcode.dev/posts/fix-infinix-air-pro-plus-screen-color/</link><guid isPermaLink="true">https://fiatcode.dev/posts/fix-infinix-air-pro-plus-screen-color/</guid><description>Fixing Infinix Air Pro+ washed out screen color in Windows and Linux</description><pubDate>Fri, 21 Feb 2025 11:09:54 GMT</pubDate><category>windows</category><category>linux</category><category>hardware</category></item><item><title>Flutter Clean Architecture</title><link>https://fiatcode.dev/posts/flutter-clean-architecture/</link><guid isPermaLink="true">https://fiatcode.dev/posts/flutter-clean-architecture/</guid><description>Dive into Clean Architecture for Flutter or Dart projects</description><pubDate>Sat, 11 Jan 2025 17:12:04 GMT</pubDate><category>flutter</category><category>craftsmanship</category></item><item><title>Welcome</title><link>https://fiatcode.dev/posts/welcome/</link><guid isPermaLink="true">https://fiatcode.dev/posts/welcome/</guid><description>Initial commit!</description><pubDate>Mon, 18 Mar 2024 07:16:19 GMT</pubDate><category>misc</category></item></channel></rss>