<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>RubyFlow</title>
    <description>The Ruby and Rails community linklog</description>
    <link>https://rubyflow.com</link>
    <atom:link href="https://rubyflow.com/rss" rel="self" type="application/rss+xml"/>
    <item>
      <title>Top Site Monitoring and Uptime Alert Services for Webmasters</title>
      <description>Website downtime is one of the easiest technical problems to overlook until customers, readers, or clients discover it first.</description>
      <pubDate>Wed, 19 Aug 2026 21:24:07 +0000</pubDate>
      <link>https://rubyflow.com/p/e3t4rn-top-site-monitoring-and-uptime-alert-services-for-webmasters</link>
      <guid>https://rubyflow.com/p/e3t4rn-top-site-monitoring-and-uptime-alert-services-for-webmasters</guid>
    </item>
    <item>
      <title>Get in, human: cut Rails boot time with require-profiler and this guide</title>
      <description>Rails boot time is a DX metric now. Every restart costs deploys, CI, and human attention. And agents boot apps way more than people. So, our convenient new require-profiler gem shows what happens during boot: requires, Rails initializers, YAML parsing, HTTP calls. Run it, then drop to a sampling profiler for what the tree can’t explain. One 200-component monolith cut development boot time by 40%.</description>
      <pubDate>Wed, 19 Aug 2026 15:02:19 +0000</pubDate>
      <link>https://rubyflow.com/p/9ss8u0-get-in-human-cut-rails-boot-time-with-require-profiler-and-this-guide</link>
      <guid>https://rubyflow.com/p/9ss8u0-get-in-human-cut-rails-boot-time-with-require-profiler-and-this-guide</guid>
    </item>
    <item>
      <title>How to Safely Edit Blogger HTML &amp; Install Custom Templates</title>
      <description>Blogger remains one of the easiest ways to start a blog. It is free, reliable, and managed by Google. The one complaint many users have, however, is the appearance of the default themes.</description>
      <pubDate>Wed, 19 Aug 2026 08:48:19 +0000</pubDate>
      <link>https://rubyflow.com/p/a8q1vr-how-to-safely-edit-blogger-html-install-custom-templates</link>
      <guid>https://rubyflow.com/p/a8q1vr-how-to-safely-edit-blogger-html-install-custom-templates</guid>
    </item>
    <item>
      <title>Migrating from Sphinx to PostgreSQL full-text search</title>
      <description>&lt;a href="https://thomasleecopeland.com/2026/08/17/from-sphinx-to-postgres-fts.html" rel="nofollow"&gt;https://thomasleecopeland.com/2026/08/17/from-sphinx-to-postgres-fts.html&lt;/a&gt;</description>
      <pubDate>Tue, 18 Aug 2026 00:41:46 +0000</pubDate>
      <link>https://rubyflow.com/p/h31mwt-migrating-from-sphinx-to-postgresql-full-text-search</link>
      <guid>https://rubyflow.com/p/h31mwt-migrating-from-sphinx-to-postgresql-full-text-search</guid>
    </item>
    <item>
      <title>One of The Dumbest Questions Asked on Ruby/Rails Subreddits</title>
      <description>One of the dumbest questions I see asked on the Ruby/Rails subreddits is “Are Ruby &amp;amp; Rails still worth learning today?”, plus other variations, such as “Are Ruby and Rails still relevant today?” and “Are Ruby and Rails dead?” &lt;a href="https://andymaleh.blogspot.com/2026/08/one-of-dumbest-questions-asked-on.html" rel="nofollow"&gt;https://andymaleh.blogspot.com/2026/08/one-of-dumbest-questions-asked-on.html&lt;/a&gt;</description>
      <pubDate>Mon, 17 Aug 2026 18:10:42 +0000</pubDate>
      <link>https://rubyflow.com/p/qhkzl8-one-of-the-dumbest-questions-asked-on-rubyrails-subreddits</link>
      <guid>https://rubyflow.com/p/qhkzl8-one-of-the-dumbest-questions-asked-on-rubyrails-subreddits</guid>
    </item>
    <item>
      <title>Displaying File Names for Multi-File Inputs with Stimulus</title>
      <description>The HTML file input shows “n files selected” when multiple files chosen. Here’s how Stimulus can be used (with or without Rails) to turn that into a list of file names for a better UX &lt;a href="https://danielabaron.me/blog/displaying-file-names-for-multi-file-inputs-with-stimulus/" rel="nofollow"&gt;https://danielabaron.me/blog/displaying-file-names-for-multi-file-inputs-with-stimulus/&lt;/a&gt;</description>
      <pubDate>Sun, 16 Aug 2026 12:51:19 +0000</pubDate>
      <link>https://rubyflow.com/p/arslww-displaying-file-names-for-multi-file-inputs-with-stimulus</link>
      <guid>https://rubyflow.com/p/arslww-displaying-file-names-for-multi-file-inputs-with-stimulus</guid>
    </item>
    <item>
      <title>How to Submit a Sitemap to Google Search Console on Blogger and WordPress</title>
      <description>A sitemap is one of the basic technical SEO files a website can have. It gives search engines a list of URLs that you want them to discover and crawl.</description>
      <pubDate>Sun, 16 Aug 2026 12:18:13 +0000</pubDate>
      <link>https://rubyflow.com/p/hwqs25-how-to-submit-a-sitemap-to-google-search-console-on-blogger-and-wordpress</link>
      <guid>https://rubyflow.com/p/hwqs25-how-to-submit-a-sitemap-to-google-search-console-on-blogger-and-wordpress</guid>
    </item>
    <item>
      <title>When Should You Use after_commit in Rails?</title>
      <description>A Rails callback race traced across record saves, outer transactions, background-job connections, Active Job deferral, transactional tests, and the delivery gap after commit.</description>
      <pubDate>Sun, 16 Aug 2026 05:28:13 +0000</pubDate>
      <link>https://rubyflow.com/p/wy14wa-when-should-you-use-aftercommit-in-rails</link>
      <guid>https://rubyflow.com/p/wy14wa-when-should-you-use-aftercommit-in-rails</guid>
    </item>
    <item>
      <title>Traffic Generation: How to Drive Search Traffic to a New Blog Without Buying Backlink</title>
      <description>Starting a new blog creates an obvious problem: nobody knows it exists. You can publish useful articles every week and still receive very little traffic in the beginning. The solution is not necessarily buying backlinks.</description>
      <pubDate>Sat, 15 Aug 2026 10:22:22 +0000</pubDate>
      <link>https://rubyflow.com/p/li4xe0-traffic-generation-how-to-drive-search-traffic-to-a-new-blog-without-buying-back</link>
      <guid>https://rubyflow.com/p/li4xe0-traffic-generation-how-to-drive-search-traffic-to-a-new-blog-without-buying-back</guid>
    </item>
    <item>
      <title>Pluckr - gem to query your DB efficiently</title>
      <description>&lt;a href="https://github.com/igorkasyanchuk/pluckr" rel="nofollow"&gt;https://github.com/igorkasyanchuk/pluckr&lt;/a&gt; - a gem that can return results from multiple queries using 1 SQL statement.</description>
      <pubDate>Fri, 14 Aug 2026 21:42:30 +0000</pubDate>
      <link>https://rubyflow.com/p/e075g0-pluckr-gem-to-query-your-db-efficiently</link>
      <guid>https://rubyflow.com/p/e075g0-pluckr-gem-to-query-your-db-efficiently</guid>
    </item>
    <item>
      <title>Omakase 0.2 — agents as plain Ruby objects</title>
      <description>I released &lt;a href="https://github.com/esshka/omakase" rel="nofollow"&gt;Omakase 0.2&lt;/a&gt;, a small agent framework on top of
  RubyLLM about 800 lines. The idea is that an agent is an ordinary Ruby object: its fields are
  state, its public methods are what the model can call (no tool registry, no JSON schemas to keep in
  sync  - &lt;code&gt;describe&lt;/code&gt; above a method is the description the model reads), and the methods you &lt;em&gt;declare
  without a body&lt;/em&gt; are written by the model at runtime. The return type is the contract: a schema block
  gives you validated data, a scalar unwraps to a value, and a Ruby class means the method hands back
  the object your code built - under the default &lt;code&gt;:code_act&lt;/code&gt; strategy the model answers by writing
  Ruby that is evaluated on the agent itself and calling &lt;code&gt;finish(value)&lt;/code&gt;, so the answer is computed
  rather than retyped as JSON. There’s also &lt;code&gt;:predict&lt;/code&gt; for one-shot structured output, MCP servers and
  &lt;code&gt;SKILL.md&lt;/code&gt; directories that arrive as methods, per-method model selection, attachments, and a
  &lt;code&gt;FakeChat&lt;/code&gt; so agents can be tested without a network. The transcripts in the README are from a 30B
  model on OpenRouter rather than a frontier one, on the theory that a strategy which only works on
  the biggest model available is a demo and not a library. The &lt;a href="https://esshka.github.io/omakase/" rel="nofollow"&gt;docs&lt;/a&gt;
  cover the Rails side - agents in &lt;code&gt;app/agents&lt;/code&gt;, jobs, multi-turn built from your own tables - and are
  blunt about the fact that generated code runs with &lt;code&gt;instance_eval&lt;/code&gt;, so untrusted input belongs to
  &lt;code&gt;:predict&lt;/code&gt; unless you swap in your own executor. MIT, Ruby 3.2+.</description>
      <pubDate>Fri, 14 Aug 2026 03:56:28 +0000</pubDate>
      <link>https://rubyflow.com/p/tl19jq-omakase-02-agents-as-plain-ruby-objects</link>
      <guid>https://rubyflow.com/p/tl19jq-omakase-02-agents-as-plain-ruby-objects</guid>
    </item>
    <item>
      <title>Updates to Testing Rails from Scratch book</title>
      <description>Hi, I’ve pushed some updates to my work-in-progress book on using Rails defaults (mostly) for test-driven development, based on my approach and opinions from using RSpec for 15 years. The updates are now available on Leanpub, and I wrote a quick post on Left of the Dev to share what’s available now and what’s next. Thank you for your support!</description>
      <pubDate>Thu, 13 Aug 2026 20:51:38 +0000</pubDate>
      <link>https://rubyflow.com/p/uyq6us-updates-to-testing-rails-from-scratch-book</link>
      <guid>https://rubyflow.com/p/uyq6us-updates-to-testing-rails-from-scratch-book</guid>
    </item>
    <item>
      <title>Aug 13, 2026 Reminder: Entitled/Incompetent/Mean Members of Ruby/Rails Community</title>
      <description>In light of some Ruby community events that happened recently (you can lookup recent posts about discriminatory treatment against me), it never hurts to share a regular reminder about the Entitled/Incompetent/Mean Members of the Ruby community. &lt;a href="https://andymaleh.blogspot.com/2025/03/me-vs-typical-members-of-rubyrails.html" rel="nofollow"&gt;https://andymaleh.blogspot.com/2025/03/me-vs-typical-members-of-rubyrails.html&lt;/a&gt;</description>
      <pubDate>Thu, 13 Aug 2026 18:11:23 +0000</pubDate>
      <link>https://rubyflow.com/p/468mre-aug-13-2026-reminder-entitledincompetentmean-members-of-rubyrails-community</link>
      <guid>https://rubyflow.com/p/468mre-aug-13-2026-reminder-entitledincompetentmean-members-of-rubyrails-community</guid>
    </item>
    <item>
      <title>Chasing an Elusive Rails SSE Hang</title>
      <description>&lt;a href="https://www.babylist.com/engineering/blog/rails-sse-hang" rel="nofollow"&gt;https://www.babylist.com/engineering/blog/rails-sse-hang&lt;/a&gt;</description>
      <pubDate>Thu, 13 Aug 2026 17:30:41 +0000</pubDate>
      <link>https://rubyflow.com/p/64cihc-chasing-an-elusive-rails-sse-hang</link>
      <guid>https://rubyflow.com/p/64cihc-chasing-an-elusive-rails-sse-hang</guid>
    </item>
    <item>
      <title>More open source projects coming to Ruby Users Forum</title>
      <description>&lt;a href="https://www.rubyforum.org/t/more-open-source-projects-coming-to-ruby-users-forum/627" rel="nofollow"&gt;https://www.rubyforum.org/t/more-open-source-projects-coming-to-ruby-users-forum/627&lt;/a&gt;</description>
      <pubDate>Thu, 13 Aug 2026 17:09:46 +0000</pubDate>
      <link>https://rubyflow.com/p/5yam69-more-open-source-projects-coming-to-ruby-users-forum</link>
      <guid>https://rubyflow.com/p/5yam69-more-open-source-projects-coming-to-ruby-users-forum</guid>
    </item>
    <item>
      <title>Testing authentication in Rails with Minitest</title>
      <description>Chapter 12 of the free Minitest Rails guide is live: &lt;a href="https://minitestrails.com/guide/testing-authentication/" rel="nofollow"&gt;https://minitestrails.com/guide/testing-authentication/&lt;/a&gt;</description>
      <pubDate>Thu, 13 Aug 2026 15:37:36 +0000</pubDate>
      <link>https://rubyflow.com/p/l32djm-testing-authentication-in-rails-with-minitest</link>
      <guid>https://rubyflow.com/p/l32djm-testing-authentication-in-rails-with-minitest</guid>
    </item>
    <item>
      <title>Rails’ travel_to looks like a simple time-testing helper but it reveals a powerful pa</title>
      <description>&lt;a href="https://rubystacknews.com/2026/08/12/beyond-travel_to-the-block-scoped-state-pattern-hidden-in-rails-testing/" rel="nofollow"&gt;https://rubystacknews.com/2026/08/12/beyond-travel_to-the-block-scoped-state-pattern-hidden-in-rails-testing/&lt;/a&gt;</description>
      <pubDate>Thu, 13 Aug 2026 02:17:03 +0000</pubDate>
      <link>https://rubyflow.com/p/hu9kuh-rails-travelto-looks-like-a-simple-time-testing-helper-but-it-reveals-a-powerful</link>
      <guid>https://rubyflow.com/p/hu9kuh-rails-travelto-looks-like-a-simple-time-testing-helper-but-it-reveals-a-powerful</guid>
    </item>
    <item>
      <title>Magic Presenter: A modern replacement for Draper</title>
      <description>&lt;a href="https://github.com/Alexander-Senko/magic-presenter/" rel="nofollow"&gt;Magic Presenter&lt;/a&gt; is a presentation layer gem for Rails models designed to replace Draper. It retains the Decorator/Presenter pattern while addressing fundamental architectural flaws and design bottlenecks present in Draper.</description>
      <pubDate>Wed, 12 Aug 2026 14:52:04 +0000</pubDate>
      <link>https://rubyflow.com/p/k6831z-magic-presenter-a-modern-replacement-for-draper</link>
      <guid>https://rubyflow.com/p/k6831z-magic-presenter-a-modern-replacement-for-draper</guid>
    </item>
    <item>
      <title>How we configured OpenTelemetry logs in Rails</title>
      <description>We added OpenTelemetry logs to our Rails app without a Collector and fixed a few bugs in the Ruby SDK along the way. Here is how we did it: &lt;a href="https://www.sixpatterns.com/blog/how-we-configured-opentelemetry-logs-in-rails" rel="nofollow"&gt;https://www.sixpatterns.com/blog/how-we-configured-opentelemetry-logs-in-rails&lt;/a&gt;</description>
      <pubDate>Wed, 12 Aug 2026 07:57:47 +0000</pubDate>
      <link>https://rubyflow.com/p/20fqgc-how-we-configured-opentelemetry-logs-in-rails</link>
      <guid>https://rubyflow.com/p/20fqgc-how-we-configured-opentelemetry-logs-in-rails</guid>
    </item>
    <item>
      <title>On Ruby - Whitelabel Site for Ruby Communities</title>
      <description>&lt;a href="https://www.rubyforum.org/t/on-ruby-whitelabel-site-for-ruby-communities/618" rel="nofollow"&gt;https://www.rubyforum.org/t/on-ruby-whitelabel-site-for-ruby-communities/618&lt;/a&gt;</description>
      <pubDate>Tue, 11 Aug 2026 21:25:57 +0000</pubDate>
      <link>https://rubyflow.com/p/ksvf8v-on-ruby-whitelabel-site-for-ruby-communities</link>
      <guid>https://rubyflow.com/p/ksvf8v-on-ruby-whitelabel-site-for-ruby-communities</guid>
    </item>
    <item>
      <title>XO Ruby joins RubyConf as Another Exclusive Discriminatory Unexcellent Conference</title>
      <description>So, I got contacted by the organizer of the XO Ruby conference (aka Travelling Ruby), Pascal Laliberté, on meetup.com because I organize the Montreal.rb Ruby Meetup and am a Montreal-based Expert Ruby Software Engineer. He said XO Ruby is coming to Montreal and asked me for help with it. We end up meeting in a video conference call…
&lt;a href="https://andymaleh.blogspot.com/2026/08/xo-ruby-joins-rubyconfrailsworld-as.html" rel="nofollow"&gt;https://andymaleh.blogspot.com/2026/08/xo-ruby-joins-rubyconfrailsworld-as.html&lt;/a&gt;</description>
      <pubDate>Tue, 11 Aug 2026 20:14:20 +0000</pubDate>
      <link>https://rubyflow.com/p/tich5i-xo-ruby-joins-rubyconf-as-another-exclusive-discriminatory-unexcellent-conferenc</link>
      <guid>https://rubyflow.com/p/tich5i-xo-ruby-joins-rubyconf-as-another-exclusive-discriminatory-unexcellent-conferenc</guid>
    </item>
    <item>
      <title>Fair by design: orchestrating background jobs in Ruby</title>
      <description>&lt;a href="https://evilmartians.com/chronicles/fair-by-design-orchestrating-background-jobs-in-ruby" rel="nofollow"&gt;Fair by design: orchestrating background jobs in Ruby&lt;/a&gt;</description>
      <pubDate>Tue, 11 Aug 2026 16:36:12 +0000</pubDate>
      <link>https://rubyflow.com/p/qyip96-fair-by-design-orchestrating-background-jobs-in-ruby</link>
      <guid>https://rubyflow.com/p/qyip96-fair-by-design-orchestrating-background-jobs-in-ruby</guid>
    </item>
    <item>
      <title>sghtmltopdf: an HTML to PDF renderer in Rust, with a Ruby gem and Rails integration</title>
      <description>wkhtmltopdf was archived in 2023, leaving Rails apps stuck between an unmaintained binary and spawning headless Chrome. I built &lt;a href="https://github.com/waka/sghtmltopdf" rel="nofollow"&gt;sghtmltopdf&lt;/a&gt;, a new rendering engine written in Rust that implements CSS Fragmentation and &lt;code&gt;@page&lt;/code&gt; directly, so page breaks, orphans and widows are first-class rather than approximated. It ships as a CLI, an HTTP server, and a Ruby gem (&lt;code&gt;gem "sghtmltopdf"&lt;/code&gt;).</description>
      <pubDate>Sun, 09 Aug 2026 08:13:15 +0000</pubDate>
      <link>https://rubyflow.com/p/cbvvhe-sghtmltopdf-an-html-to-pdf-renderer-in-rust-with-a-ruby-gem-and-rails-integratio</link>
      <guid>https://rubyflow.com/p/cbvvhe-sghtmltopdf-an-html-to-pdf-renderer-in-rust-with-a-ruby-gem-and-rails-integratio</guid>
    </item>
    <item>
      <title>What Active Record Transactions Actually Protect</title>
      <description>An Active Record transaction traced across one database connection, retained model state, remote side effects, false returns, non-local exits, nested transactions, savepoints, and PostgreSQL statement failures.</description>
      <pubDate>Sun, 09 Aug 2026 05:57:42 +0000</pubDate>
      <link>https://rubyflow.com/p/cjyv70-what-active-record-transactions-actually-protect</link>
      <guid>https://rubyflow.com/p/cjyv70-what-active-record-transactions-actually-protect</guid>
    </item>
    <item>
      <title>Solid Objects: Easiest reactive ERB there has ever been</title>
      <description>I’ve been building &lt;a href="https://github.com/cardmagic/solid_objects" rel="nofollow"&gt;Solid Objects&lt;/a&gt;, a gem that brings the Durable Objects programming model (addressable objects, durable state, serialized turns) to ordinary Rails applications. It runs on the MySQL, PostgreSQL, or SQLite database the app already has. No Redis, no Cloudflare account, no separate actor service.</description>
      <pubDate>Sat, 08 Aug 2026 14:22:08 +0000</pubDate>
      <link>https://rubyflow.com/p/uet4q6-solid-objects-easiest-reactive-erb-there-has-ever-been</link>
      <guid>https://rubyflow.com/p/uet4q6-solid-objects-easiest-reactive-erb-there-has-ever-been</guid>
    </item>
  </channel>
</rss>
