<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Epona&apos;s Blog</title><description>A developer blog about Rails, Phoenix, and engineering management</description><link>https://epona.me/</link><item><title>Building Lexio with Two Claudes: A Workflow That Actually Works</title><link>https://epona.me/blog/building-with-two-claudes/</link><guid isPermaLink="true">https://epona.me/blog/building-with-two-claudes/</guid><description>How I use Claude Projects for architecture decisions and Claude Code for implementation—keeping thinking and coding deliberately separate, with Lexio as a real-world example.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Engineering Manager 三个月：在不熟悉的领域学着做管理</title><link>https://epona.me/blog/three-months-as-engineering-manager/</link><guid isPermaLink="true">https://epona.me/blog/three-months-as-engineering-manager/</guid><description>升职三个月，接手两个完全不熟悉的项目。没有高级方法论，只有参加例会、看 Jira、问人这些笨办法。关于在不确定中做优先级判断，以及为什么我不再焦虑&quot;该多读管理书&quot;这件事。</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Inside Fizzy&apos;s Authentication Architecture: A Three-Tier Approach to Multi-Tenant SaaS</title><link>https://epona.me/blog/fizzy-authentication-architecture-three-tier-multi-tenant/</link><guid isPermaLink="true">https://epona.me/blog/fizzy-authentication-architecture-three-tier-multi-tenant/</guid><description>How 37signals&apos; Fizzy solves multi-tenant authentication with a three-tier Identity→User→Account model, enabling one person to belong to multiple organizations. </description><pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate></item><item><title>2025 年终总结：关于选择和放手</title><link>https://epona.me/blog/2025-yearly-review/</link><guid isPermaLink="true">https://epona.me/blog/2025-yearly-review/</guid><description>2025 年在日本买房、切换技术栈、升职到 Engineering Manager、调整写作节奏。这一年做了很多选择，每个选择都意味着放弃某些东西。这是我的年终总结和对 2026 年的思考。</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Raycast setups that makes me more productive</title><link>https://epona.me/blog/raycast-setups-that-makes-me-more-productive/</link><guid isPermaLink="true">https://epona.me/blog/raycast-setups-that-makes-me-more-productive/</guid><description>As a developer constantly switching contexts, these 5 Raycast setups have transformed my daily workflow. Here&apos;s exactly how I use them.</description><pubDate>Tue, 18 Nov 2025 00:00:00 GMT</pubDate></item><item><title>一个开发者即将成为 Manager 的碎碎念</title><link>https://epona.me/blog/from-developer-to-manager/</link><guid isPermaLink="true">https://epona.me/blog/from-developer-to-manager/</guid><description>&quot;下半年要不要试试做 Manager？&quot; CTO 午饭后的一句话，开启了我新的职业篇章。上次做 Team Leader 被批评过，这次我能做得更好吗？这篇文章记录了转变前夕的准备、担忧和期待。</description><pubDate>Sat, 08 Nov 2025 00:00:00 GMT</pubDate></item><item><title>My First Rails Deployment Journey with Kamal</title><link>https://epona.me/blog/my-first-rails-deployment-journey-with-kamal/</link><guid isPermaLink="true">https://epona.me/blog/my-first-rails-deployment-journey-with-kamal/</guid><description>My first experience deploying a Rails app with Kamal—from hitting a wall with proxy conflicts to solving mysterious Docker volume errors. Here&apos;s what I learned along the way</description><pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate></item><item><title>欲速则不达</title><link>https://epona.me/blog/think-before-code/</link><guid isPermaLink="true">https://epona.me/blog/think-before-code/</guid><description>在重构一个从 Phoenix 迁移到 Rails 的项目时，我发现——很多混乱的代码并非写得不好，而是想得不够。与其边写边改，不如在动手前多想一步。正如《JOJO》的那句名言：绕远路，才是最短的捷径。</description><pubDate>Fri, 10 Oct 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL 18 and Rails: New Features and UUIDv7 Support</title><link>https://epona.me/blog/postgresql-18-rails-uuidv7/</link><guid isPermaLink="true">https://epona.me/blog/postgresql-18-rails-uuidv7/</guid><pubDate>Sat, 04 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Switching from Claude to ChatGPT</title><link>https://epona.me/blog/switching-from-claude-to-chatgpt/</link><guid isPermaLink="true">https://epona.me/blog/switching-from-claude-to-chatgpt/</guid><description>I recently switched from Claude to ChatGPT—here’s why, and what I’ve learned along the way.</description><pubDate>Sat, 20 Sep 2025 00:00:00 GMT</pubDate></item><item><title>My Tailwind CSS Journey: From &quot;Never Again&quot; to &quot;I Get It Now&quot;</title><link>https://epona.me/blog/my-tailwind-css-journey-from-never-again-to-i-get-it-now/</link><guid isPermaLink="true">https://epona.me/blog/my-tailwind-css-journey-from-never-again-to-i-get-it-now/</guid><description> I used to roll my eyes whenever someone mentioned Tailwind CSS. The class names looked like gibberish, the approach felt backwards, and I was convinced it was just another fad. Three years later, here I am writing this in a Tailwind-powered project.</description><pubDate>Sat, 06 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Automating Your AI Coding Workflow with Claude Code Hooks</title><link>https://epona.me/blog/claude-code-hooks-automation-guide/</link><guid isPermaLink="true">https://epona.me/blog/claude-code-hooks-automation-guide/</guid><description>Discover how Claude Code Hooks can automate your development workflow with precision triggers. Learn to use PostToolUse, PreToolUse, and other hook types to automatically format code, run linting, and streamline your AI coding experience. A beginner-friendly guide with practical Elixir examples.</description><pubDate>Sat, 12 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Claude Code + Tidewave.ai: My Real Experience with AI-Driven Development</title><link>https://epona.me/blog/claude-code-tidewave-ai-development-experience/</link><guid isPermaLink="true">https://epona.me/blog/claude-code-tidewave-ai-development-experience/</guid><description>Through Claude Code and Tidewave.ai combination, over 95% of my project code was AI-generated. Here&apos;s my honest experience with this revolutionary tool combo, including significant efficiency gains, challenges encountered, and practical advice for developers.</description><pubDate>Tue, 24 Jun 2025 00:00:00 GMT</pubDate></item><item><title>From Rails to Phoenix: An AI-Driven Development Journey</title><link>https://epona.me/blog/from-rails-to-phoenix/</link><guid isPermaLink="true">https://epona.me/blog/from-rails-to-phoenix/</guid><description>My personal journey transitioning from Ruby on Rails to Phoenix Framework, driven by the rise of AI-powered development tools like Tidewave.ai. Discover how Phoenix&apos;s LiveView simplicity, built-in Tailwind+DaisyUI styling, and superior AI code generation capabilities are reshaping modern web development workflows.
</description><pubDate>Mon, 16 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Moving from Hotwire to Vite and React</title><link>https://epona.me/blog/moving-hotwire-to-vite-and-react/</link><guid isPermaLink="true">https://epona.me/blog/moving-hotwire-to-vite-and-react/</guid><description>A developer&apos;s personal journey migrating from Rails Hotwire to Vite and React. This article explores the practical benefits of React&apos;s rich component libraries like Shadcn UI, improved AI integration, and the trade-offs in deployment complexity and learning curve when transitioning between these tech stacks.
</description><pubDate>Sat, 01 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Implementing Google Login in Ruby on Rails without Devise</title><link>https://epona.me/blog/implementing-google-login-in-rails-without-devise/</link><guid isPermaLink="true">https://epona.me/blog/implementing-google-login-in-rails-without-devise/</guid><description>This guide demonstrates how to implement Google Login in a Rails application using OmniAuth, without relying on the Devise gem. We’ll utilize OmniAuth for authentication and connect it to a basic Rails authentication system.
</description><pubDate>Sun, 12 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Implementing VS Code-like Ruby LSP Features in Neovim</title><link>https://epona.me/blog/implementing-vs-code-like-ruby-lsp-features-in-neovim/</link><guid isPermaLink="true">https://epona.me/blog/implementing-vs-code-like-ruby-lsp-features-in-neovim/</guid><description>Learn how to configure Neovim to support VS Code-style navigation features for Ruby on Rails projects using Ruby LSP, including route definition lookups and view file navigation through Code Lens.
</description><pubDate>Fri, 03 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Using hotwire-combobox with prefixed_ids</title><link>https://epona.me/blog/using-hotwire-combobox-with-prefixed-id/</link><guid isPermaLink="true">https://epona.me/blog/using-hotwire-combobox-with-prefixed-id/</guid><description>Customizing Hotwire Combobox with Prefixed IDs: A practical guide to integrating prefixed_ids gem with Hotwire Combobox in Rails, showing how to return custom ID formats instead of raw database IDs. Perfect for developers looking to enhance their form components with more user-friendly identifiers.
</description><pubDate>Fri, 29 Nov 2024 00:00:00 GMT</pubDate></item><item><title>京都游记</title><link>https://epona.me/blog/kyoto-travel-notes/</link><guid isPermaLink="true">https://epona.me/blog/kyoto-travel-notes/</guid><description>漫步京都三日,寻访游戏王国的起源。在任天堂博物馆重温童年记忆,
从百年前扑克牌到如今的游戏帝国;徜徉宇治川畔,品味抹茶老街的悠闲时光;
漫步清水寺,感受古都气息。
一场与游戏、美食、人文交织的京都之旅,带你看见不一样的关西风情。
</description><pubDate>Wed, 20 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Passing block arguments in Ruby</title><link>https://epona.me/blog/passing-block-arguments-in-ruby/</link><guid isPermaLink="true">https://epona.me/blog/passing-block-arguments-in-ruby/</guid><description>Elegant Code Block Passing in Ruby: 
A deep dive into the &amp; operator, from Symbol&apos;s to_proc to method objects.
Learn how to transform verbose block syntax into concise,
readable code through practical examples.
</description><pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Rails 8 released</title><link>https://epona.me/blog/rails-8-released/</link><guid isPermaLink="true">https://epona.me/blog/rails-8-released/</guid><description>Rails 8 Arrives: Game-changing deployment with Kamal 2 + Thruster, database-backed Solid suite replacing Redis dependencies, and streamlined asset handling with Propshaft. Discover the major updates reshaping the Rails ecosystem for simpler, more efficient web development.
</description><pubDate>Fri, 08 Nov 2024 00:00:00 GMT</pubDate></item></channel></rss>