<?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>Voice control for your Ruby on Rails app</title>
      <description>&lt;a href="https://github.com/igorkasyanchuk/voice_control" rel="nofollow"&gt;https://github.com/igorkasyanchuk/voice_control&lt;/a&gt; - wanna use Jev AI to control your Ruby on Rails app with voice? Easy!</description>
      <pubDate>Mon, 21 Sep 2026 21:52:19 +0000</pubDate>
      <link>https://rubyflow.com/p/4kgh57-voice-control-for-your-ruby-on-rails-app</link>
      <guid>https://rubyflow.com/p/4kgh57-voice-control-for-your-ruby-on-rails-app</guid>
    </item>
    <item>
      <title>Amazing Print v3.0.0</title>
      <description>&lt;a href="https://github.com/amazing-print/amazing_print" rel="nofollow"&gt;Amazing Print&lt;/a&gt;, the maintained fork of the popular &lt;a href="https://github.com/awesome-print/awesome_print" rel="nofollow"&gt;Awesome Print&lt;/a&gt; gem to enhance the pretty-printing of Ruby objects, has been updated to version 3. It works with the next version of Rails (8.2, or 9, or whatever the next version number will be). If you are still using Awesome Print, you will want to migrate to Amazing Print v3 as part of your next Rails upgrade, or your app will crash on boot!
  
Thankfully it should be a drop-in replacement, since the coloring default behavior has been updated to be closer to Amazing Print’s defaults. A new &lt;code&gt;colors&lt;/code&gt; option has been introduced for further tweaking.
  
&lt;b&gt;Pro-tip:&lt;/b&gt; are you migrating from Awesome Print and missing the old-school hash rocket visual style? Add &lt;code&gt;AmazingPrint.defaults = { hash_format: :rocket }&lt;/code&gt; to your &lt;code&gt;~/.irbrc&lt;/code&gt; or &lt;code&gt;~/.pryrc&lt;/code&gt;.</description>
      <pubDate>Mon, 21 Sep 2026 16:48:05 +0000</pubDate>
      <link>https://rubyflow.com/p/h3a6jf-amazing-print-v300</link>
      <guid>https://rubyflow.com/p/h3a6jf-amazing-print-v300</guid>
    </item>
    <item>
      <title>Beskar 0.2: Rails security with coordinated rate limits and session revocation</title>
      <description>I’ve released &lt;a href="https://auditbadger.com/beskar/" rel="nofollow"&gt;Beskar&lt;/a&gt; 0.2.0, an MIT-licensed security engine for Rails 8+. It combines authentication rate limits, scanner detection, configurable account locks, persistent IP bans, and a mountable  security dashboard. This release moves enforcement state into the shared database, coordinates limits across application workers without requiring Redis, and adds durable session revocation.</description>
      <pubDate>Mon, 21 Sep 2026 10:30:08 +0000</pubDate>
      <link>https://rubyflow.com/p/hwik2z-beskar-02-rails-security-with-coordinated-rate-limits-and-session-revocation</link>
      <guid>https://rubyflow.com/p/hwik2z-beskar-02-rails-security-with-coordinated-rate-limits-and-session-revocation</guid>
    </item>
    <item>
      <title>I made a Jev gem with an API that feels like it belongs in Ruby</title>
      <description>I released jev-feels, a small Ruby/Rails gem for semantic predicates powered by Jev</description>
      <pubDate>Mon, 21 Sep 2026 10:24:15 +0000</pubDate>
      <link>https://rubyflow.com/p/egrwss-i-made-a-jev-gem-with-an-api-that-feels-like-it-belongs-in-ruby</link>
      <guid>https://rubyflow.com/p/egrwss-i-made-a-jev-gem-with-an-api-that-feels-like-it-belongs-in-ruby</guid>
    </item>
    <item>
      <title>Your Transaction Committed. Did the Job Reach the Queue?</title>
      <description>A source-backed trace of deferred Active Job enqueueing, why a Solid Queue failure can arrive after the application transaction commits, and when shared storage or an outbox changes the guarantee.</description>
      <pubDate>Sun, 20 Sep 2026 04:20:53 +0000</pubDate>
      <link>https://rubyflow.com/p/gk3pbv-your-transaction-committed-did-the-job-reach-the-queue</link>
      <guid>https://rubyflow.com/p/gk3pbv-your-transaction-committed-did-the-job-reach-the-queue</guid>
    </item>
    <item>
      <title>Bootstrap Helpers are back</title>
      <description>&lt;a href="https://claudiob.github.io/bh/" rel="nofollow"&gt;https://claudiob.github.io/bh/&lt;/a&gt;</description>
      <pubDate>Fri, 18 Sep 2026 23:32:04 +0000</pubDate>
      <link>https://rubyflow.com/p/8m4yw7-bootstrap-helpers-are-back</link>
      <guid>https://rubyflow.com/p/8m4yw7-bootstrap-helpers-are-back</guid>
    </item>
    <item>
      <title>Testing Background Jobs with Minitest Rails</title>
      <description>&lt;a href="https://minitestrails.com/guide/testing-background-jobs/" rel="nofollow"&gt;https://minitestrails.com/guide/testing-background-jobs/&lt;/a&gt;</description>
      <pubDate>Fri, 18 Sep 2026 14:47:25 +0000</pubDate>
      <link>https://rubyflow.com/p/qltkdw-testing-background-jobs-with-minitest-rails</link>
      <guid>https://rubyflow.com/p/qltkdw-testing-background-jobs-with-minitest-rails</guid>
    </item>
    <item>
      <title>Vessel 0.3.0 is here (and is completely redone)</title>
      <description>Ruby is getting &lt;a href="https://serpapi.com/blog/vessel-ruby-crawling-framework/" rel="nofollow"&gt;a new release of Vessel&lt;/a&gt;, Ruby alternative to Python popular Scrapy project.</description>
      <pubDate>Fri, 18 Sep 2026 07:31:56 +0000</pubDate>
      <link>https://rubyflow.com/p/v3j7dz-vessel-030-is-here-and-is-completely-redone</link>
      <guid>https://rubyflow.com/p/v3j7dz-vessel-030-is-here-and-is-completely-redone</guid>
    </item>
    <item>
      <title>The Embarrassing Ruby/Rails Community Chronicles 2026-09-17</title>
      <description>The life of a Ruby dev in 2026! I made an effort to post a recorded talk that I gave at my local Montreal Ruby meetup as a helpful gesture for the benefit of the Ruby community at large… &lt;a href="https://andymaleh.blogspot.com/2026/09/the-embarrassing-rubyrails-community.html" rel="nofollow"&gt;https://andymaleh.blogspot.com/2026/09/the-embarrassing-rubyrails-community.html&lt;/a&gt;</description>
      <pubDate>Fri, 18 Sep 2026 01:20:39 +0000</pubDate>
      <link>https://rubyflow.com/p/deeunl-the-embarrassing-rubyrails-community-chronicles-2026-09-17</link>
      <guid>https://rubyflow.com/p/deeunl-the-embarrassing-rubyrails-community-chronicles-2026-09-17</guid>
    </item>
    <item>
      <title>Montreal.rb February 2026 Crystal: Ruby with Static Typing</title>
      <description>The video and slides for the Montreal.rb February 2026 talk “Crystal: Ruby with Static Typing” have been published! The real exciting bit to any real Rubyist is that Crystal has similar syntax to Ruby’s and similar performance to that of C/C++/Rust. That is extremely exciting and awesome!!! It means Rubyists don’t have to struggle through C or Rust’s syntax to get performance enhancement as they have a much more elegant option in Crystal.
&lt;a href="https://andymaleh.blogspot.com/2026/09/montrealrb-february-2026-crystal-ruby.html" rel="nofollow"&gt;https://andymaleh.blogspot.com/2026/09/montrealrb-february-2026-crystal-ruby.html&lt;/a&gt;</description>
      <pubDate>Thu, 17 Sep 2026 18:44:13 +0000</pubDate>
      <link>https://rubyflow.com/p/v66ew6-montrealrb-february-2026-crystal-ruby-with-static-typing</link>
      <guid>https://rubyflow.com/p/v66ew6-montrealrb-february-2026-crystal-ruby-with-static-typing</guid>
    </item>
    <item>
      <title>RippleEffect: static change-impact analysis for Rails</title>
      <description>I built RippleEffect, a Ruby gem for figuring out what a Rails change might affect before you refactor.</description>
      <pubDate>Wed, 16 Sep 2026 22:49:16 +0000</pubDate>
      <link>https://rubyflow.com/p/nlps1t-rippleeffect-static-change-impact-analysis-for-rails</link>
      <guid>https://rubyflow.com/p/nlps1t-rippleeffect-static-change-impact-analysis-for-rails</guid>
    </item>
    <item>
      <title>Rails Hyperdrive: supercharged agentic development for Rails</title>
      <description>Shipping skills could soon mean as much as READMEs. As AI writes more, libraries that teach agents to correctly use their APIs will win. Rails Hyperdrive lets gems distribute agent guidance, and getting started just takes Markdown files and a gemspec metadata entry.</description>
      <pubDate>Wed, 16 Sep 2026 17:34:42 +0000</pubDate>
      <link>https://rubyflow.com/p/99oqhy-rails-hyperdrive-supercharged-agentic-development-for-rails</link>
      <guid>https://rubyflow.com/p/99oqhy-rails-hyperdrive-supercharged-agentic-development-for-rails</guid>
    </item>
    <item>
      <title>Coldwire: offline support for Rails, Hotwire, and Hotwire Native</title>
      <description>&lt;a href="https://github.com/noreastergroup/coldwire-rails" rel="nofollow"&gt;https://github.com/noreastergroup/coldwire-rails&lt;/a&gt;</description>
      <pubDate>Tue, 15 Sep 2026 15:14:20 +0000</pubDate>
      <link>https://rubyflow.com/p/l7rgiu-coldwire-offline-support-for-rails-hotwire-and-hotwire-native</link>
      <guid>https://rubyflow.com/p/l7rgiu-coldwire-offline-support-for-rails-hotwire-and-hotwire-native</guid>
    </item>
    <item>
      <title>Video: Glimmer DSL for Web 0.10.5 Before &amp; After Mutations</title>
      <description>Release video for Glimmer DSL for Web (Award-Winning Frontend Framework for Ruby on Rails) 0.10.5 Before &amp;amp; After Mutations. &lt;a href="https://youtu.be/BJ0oSsyddMg" rel="nofollow"&gt;https://youtu.be/BJ0oSsyddMg&lt;/a&gt;</description>
      <pubDate>Tue, 15 Sep 2026 03:49:35 +0000</pubDate>
      <link>https://rubyflow.com/p/gp0kpp-video-glimmer-dsl-for-web-0105-before-after-mutations</link>
      <guid>https://rubyflow.com/p/gp0kpp-video-glimmer-dsl-for-web-0105-before-after-mutations</guid>
    </item>
    <item>
      <title>Support Award-Winning Open-Source Projects for the Benefit of the Ruby Community!</title>
      <description>I got a weird message from a dev on LinkedIn sharing with me a Frontend UI he built in Opal Ruby, supposedly as inspiration by my library Glimmer DSL for Web (award-winning Opal Frontend Framework for Rails)…
&lt;a href="https://andymaleh.blogspot.com/2026/09/support-award-winning-open-source.html" rel="nofollow"&gt;https://andymaleh.blogspot.com/2026/09/support-award-winning-open-source.html&lt;/a&gt;</description>
      <pubDate>Mon, 14 Sep 2026 04:16:28 +0000</pubDate>
      <link>https://rubyflow.com/p/luwk5e-support-award-winning-open-source-projects-for-the-benefit-of-the-ruby-community</link>
      <guid>https://rubyflow.com/p/luwk5e-support-award-winning-open-source-projects-for-the-benefit-of-the-ruby-community</guid>
    </item>
    <item>
      <title>Rails 8 rate_limit and Solid Cache do not compose: the lost first increment</title>
      <description>&lt;a href="https://launchkit.codes/yield/rails-without-redis" rel="nofollow"&gt;https://launchkit.codes/yield/rails-without-redis&lt;/a&gt;</description>
      <pubDate>Sun, 13 Sep 2026 12:02:38 +0000</pubDate>
      <link>https://rubyflow.com/p/qmjxzy-rails-8-ratelimit-and-solid-cache-do-not-compose-the-lost-first-increment</link>
      <guid>https://rubyflow.com/p/qmjxzy-rails-8-ratelimit-and-solid-cache-do-not-compose-the-lost-first-increment</guid>
    </item>
    <item>
      <title>A Record Passed to Active Job Becomes an Identifier, Not a Snapshot</title>
      <description>A source-backed explanation of how Active Job turns an Active Record argument into a GlobalID locator, why workers load later row state, and how to preserve event-time facts without discarding transient deserialization failures.</description>
      <pubDate>Sun, 13 Sep 2026 05:27:10 +0000</pubDate>
      <link>https://rubyflow.com/p/fa6dli-a-record-passed-to-active-job-becomes-an-identifier-not-a-snapshot</link>
      <guid>https://rubyflow.com/p/fa6dli-a-record-passed-to-active-job-becomes-an-identifier-not-a-snapshot</guid>
    </item>
    <item>
      <title>Faster rendering for your partials</title>
      <description>&lt;a href="https://github.com/igorkasyanchuk/view_bind" rel="nofollow"&gt;https://github.com/igorkasyanchuk/view_bind&lt;/a&gt; - with this gem, you can render your partials 10%, 20%, 400% faster. Depending on your code. Benchmarks are inside, so you can.</description>
      <pubDate>Fri, 11 Sep 2026 20:07:40 +0000</pubDate>
      <link>https://rubyflow.com/p/dr3rqi-faster-rendering-for-your-partials</link>
      <guid>https://rubyflow.com/p/dr3rqi-faster-rendering-for-your-partials</guid>
    </item>
    <item>
      <title>Free Rails Architecture Checkup for coding agents</title>
      <description>A repo-aware prompt for Codex, Claude Code, Cursor, and similar tools that audits an existing Rails application for conflicting architectural precedent, missing decisions, structural risks, and agent context gaps.</description>
      <pubDate>Thu, 10 Sep 2026 23:46:18 +0000</pubDate>
      <link>https://rubyflow.com/p/4wd5bv-free-rails-architecture-checkup-for-coding-agents</link>
      <guid>https://rubyflow.com/p/4wd5bv-free-rails-architecture-checkup-for-coding-agents</guid>
    </item>
    <item>
      <title>A URL shortener in pure Rails, and the one line that decides who it redirects to</title>
      <description>&lt;a href="https://launchkit.codes/yield/rails-url-shortener" rel="nofollow"&gt;https://launchkit.codes/yield/rails-url-shortener&lt;/a&gt;</description>
      <pubDate>Thu, 10 Sep 2026 14:25:38 +0000</pubDate>
      <link>https://rubyflow.com/p/vkvdkb-a-url-shortener-in-pure-rails-and-the-one-line-that-decides-who-it-redirects-to</link>
      <guid>https://rubyflow.com/p/vkvdkb-a-url-shortener-in-pure-rails-and-the-one-line-that-decides-who-it-redirects-to</guid>
    </item>
    <item>
      <title>Ruby, Rails &amp; AI Daily: Active Storage RCE Under Active Exploitation, ZJIT Inlines GC</title>
      <description>Kicking off a daily roundup on RubyInsights covering Ruby, Rails, and AI. Today’s edition leads with &lt;strong&gt;CVE-2026-66066&lt;/strong&gt; (“KindaRails2Shell”), the Active Storage RCE that’s now confirmed under active exploitation months after patches shipped for Rails 7.2.3.2, 8.0.5.1, and 8.1.3.1, worth a fleet check even if you patched back in July. Also covered: ZJIT learning to inline GC allocations, this week’s Rails codebase updates, Claude Fable 5.1 topping the Agents on Rails benchmark, Chrome 153’s 230 security fixes, and the new wave of cybersecurity-focused models from OpenAI, Anthropic, and Google. &lt;a href="https://rubyinsights.blog/en/blog/ruby-rails-ai-daily-september-10-2026-description-a-critical-active-storage-rce-is-now-under-active-exploitation-zjit-learns-to-inline-gc-allocations-and-google-anthropic-and-openai-all-ship-cybersecurity-grade-ai-models-this-week" rel="nofollow"&gt;Full roundup with sources&lt;/a&gt;.</description>
      <pubDate>Thu, 10 Sep 2026 01:59:16 +0000</pubDate>
      <link>https://rubyflow.com/p/w1oav8-ruby-rails-ai-daily-active-storage-rce-under-active-exploitation-zjit-inlines-gc</link>
      <guid>https://rubyflow.com/p/w1oav8-ruby-rails-ai-daily-active-storage-rce-under-active-exploitation-zjit-inlines-gc</guid>
    </item>
    <item>
      <title>Your Webhook Endpoint Is a Tiny Distributed System</title>
      <description>A simple bit of webhook consumption is sometimes not that simple:</description>
      <pubDate>Wed, 09 Sep 2026 17:45:07 +0000</pubDate>
      <link>https://rubyflow.com/p/9azn04-your-webhook-endpoint-is-a-tiny-distributed-system</link>
      <guid>https://rubyflow.com/p/9azn04-your-webhook-endpoint-is-a-tiny-distributed-system</guid>
    </item>
    <item>
      <title>Ruby Daily: RubyLLM 2.0 hits RC, Active Storage exploited in the wild, Rails goes Rac</title>
      <description>I’ve started a daily roundup of the Ruby, Rails and AI world over at RubyInsights, and today had more than usual to cover. &lt;a href="https://rubygems.org/gems/ruby_llm/versions/2.0.0.rc1" rel="nofollow"&gt;&lt;code&gt;ruby_llm&lt;/code&gt; 2.0.0.rc1&lt;/a&gt; hit RubyGems, the first RC of the rewrite that &lt;a href="https://paolino.me/rubyllm-2-0-providers-and-protocols/" rel="nofollow"&gt;splits providers from protocols&lt;/a&gt; and makes the Responses API the OpenAI default. More urgently, &lt;a href="https://www.rapid7.com/blog/post/etr-kindarails2shell-cve-2026-66066-critical-arbitrary-file-read-and-possible-remote-code-execution-in-ruby-on-rails/" rel="nofollow"&gt;CVE-2026-66066 in Active Storage&lt;/a&gt; (CVSS 9.5, arbitrary file read via libvips) is &lt;a href="https://www.securityweek.com/critical-ruby-on-rails-vulnerability-in-attackers-crosshairs/" rel="nofollow"&gt;now being exploited in the wild&lt;/a&gt;, so if you accept image uploads: patch to 7.2.3.2 / 8.0.5.1 / 8.1.3.1, and rotate &lt;code&gt;secret_key_base&lt;/code&gt; and your storage credentials, because the patch does not un-leak what was already read. On the happier side, the &lt;a href="https://rubyonrails.org/2026/9/4/this-week-in-rails" rel="nofollow"&gt;September 4 This Week in Rails&lt;/a&gt; is almost entirely Ractor-safety merges, and &lt;a href="https://railsatscale.com/2026-09-01-zjit-gc-fastpath/" rel="nofollow"&gt;ZJIT now inlines the GC allocation fastpath&lt;/a&gt; for about 1.77x on hash allocation.</description>
      <pubDate>Tue, 08 Sep 2026 23:13:01 +0000</pubDate>
      <link>https://rubyflow.com/p/38nf3h-ruby-daily-rubyllm-20-hits-rc-active-storage-exploited-in-the-wild-rails-goes-ra</link>
      <guid>https://rubyflow.com/p/38nf3h-ruby-daily-rubyllm-20-hits-rc-active-storage-exploited-in-the-wild-rails-goes-ra</guid>
    </item>
    <item>
      <title>time to run some maintenance tasks</title>
      <description>&lt;a href="https://github.com/igorkasyanchuk/maintenance_on_steroids" rel="nofollow"&gt;https://github.com/igorkasyanchuk/maintenance_on_steroids&lt;/a&gt; - a new gem, inspired by the limitations of Shopify/maintenance_tasks gem.</description>
      <pubDate>Tue, 08 Sep 2026 22:07:15 +0000</pubDate>
      <link>https://rubyflow.com/p/ir3juq-time-to-run-some-maintenance-tasks</link>
      <guid>https://rubyflow.com/p/ir3juq-time-to-run-some-maintenance-tasks</guid>
    </item>
    <item>
      <title>Ruby, Rails &amp; AI Weekly Roundup: KindaRails2Shell Under Active Attack, Ractor-Ready</title>
      <description>This week’s roundup leads with CVE-2026-66066 (KindaRails2Shell), which went from published PoC to active exploitation on August 30: more than 50 detections within hours, around 360 by Monday, and roughly 7,100 exposed instances counted in early August. The part worth re-checking even if you already patched is that the fix is version-coupled. Vips.block_untrusted(true) only exists if libvips is 8.13 or newer and your ruby-vips binding is recent enough to call it, so an app on Rails 8.1.3.1 sitting on an old libvips reports itself as patched while staying fully exploitable. And because the chain reads SECRET_KEY_BASE before escalating to RCE, patching does not undo a read that already happened.</description>
      <pubDate>Mon, 07 Sep 2026 23:37:27 +0000</pubDate>
      <link>https://rubyflow.com/p/p716wp-ruby-rails-ai-weekly-roundup-kindarails2shell-under-active-attack-ractor-ready</link>
      <guid>https://rubyflow.com/p/p716wp-ruby-rails-ai-weekly-roundup-kindarails2shell-under-active-attack-ractor-ready</guid>
    </item>
  </channel>
</rss>
