Best of RubyOctober 2025

  1. 1
    Article
    Avatar of rubyflowRuby Flow·29w

    You Don’t Need Types in Ruby

    Ruby's dynamic nature and duck typing philosophy make static type systems like Sorbet and RBS counterproductive. These tools introduce runtime overhead, code noise, and maintenance complexity while contradicting Ruby's core design principles of message passing and flexibility. Instead of forcing type annotations, developers should embrace duck typing, use YARD for documentation, write comprehensive tests, and employ linters like RuboCop for code quality. The push for static typing in Ruby reflects a broader cultural problem of adopting tools for their own sake rather than understanding the language's strengths.

  2. 2
    Article
    Avatar of rubylaRUBYLAND·31w

    Papercraft 3.0 Released

    Papercraft 3.0 introduces a redesigned rendering API that moves template operations from Proc extensions to explicit module methods (Papercraft.render and Papercraft.apply), addressing concerns about extending Ruby's core Proc class. The release adds improved XML support with self-closing tags, streamlines the Papercraft::Template wrapper class, and previews upcoming automatic template inlining using AST manipulation with Prism for significant performance improvements when composing complex templates.

  3. 3
    Article
    Avatar of rubylaRUBYLAND·32w

    Announcing Burg.rb

    Burg.rb is a new Ruby gem that provides Rails-like code reloading for Rack applications using Zeitwerk. The gem extracts concepts from a previous tutorial on implementing code reloading in Rack apps. Currently undocumented but production-ready, it serves as a reference implementation with plans to expand framework features over time.

  4. 4
    Article
    Avatar of rubyflowRuby Flow·34w

    Supermail mailto links

    Supermail is a new Ruby gem that simplifies email handling in Rails applications through a cleaner abstraction. The gem enables developers to generate pre-populated mailto links by instantiating email objects, making it easy to create support workflows. The example demonstrates creating a support email for failed checkout sessions that includes the Stripe session ID, allowing users to contact support with pre-filled context directly from their email client.