Best of Ruby2025

  1. 1
    Article
    Avatar of dhhDavid Heinemeier Hansson·35w

    We've all had enough of this nonsense

    DHH responds to recent attempts by Ruby community members to exclude him from Rails events, citing widespread community support against what he calls 'cancellation nonsense.' He references the end of RailsConf, the success of Rails World, and argues that normal community members are rejecting divisive tactics from a small group of critics.

  2. 2
    Article
    Avatar of dhhDavid Heinemeier Hansson·41w

    All-in on Omarchy at 37signals

    37signals is transitioning their Ops and Ruby programming teams to Omarchy, their own Arch-derived Linux distribution, over the next three years. DHH argues that Linux provides superior control over your computing destiny compared to closed-source operating systems like macOS or Windows. While acknowledging some efficiency gaps, particularly in battery life with Framework laptops, he views this as a worthwhile trade-off similar to the sacrifices made during Mac's pre-Apple Silicon era. The move represents an exciting adventure for the company, with Omarchy already becoming DHH's favorite computing environment.

  3. 3
    Article
    Avatar of lobstersLobsters·42w

    AWS deleted my 10-year account and all data without warning

    A 10-year AWS customer lost their entire account and all data without warning after a verification process failure. The author details a 20-day support nightmare where AWS MENA allegedly deleted the account due to an internal testing mistake involving Java command-line parameter parsing. The incident destroyed years of open-source development work, including Ruby gems and unpublished tutorials. The story highlights the risks of cloud provider dependency and the differences in AWS regional operations, particularly in the MENA region.

  4. 4
    Article
    Avatar of dhhDavid Heinemeier Hansson·45w

    The 6 Hours of Lex

    DHH appeared on Lex Fridman's podcast for a six-hour conversation covering various topics including Ruby programming language, AI's future, small teams, cloud migration decisions, and personal subjects like fatherhood and money. The discussion was extensively prepared with detailed notes and timestamps for easy navigation.

  5. 5
    Article
    Avatar of rubylaRUBYLAND·1y

    Git Rebase Squash

    Squashing commits with Git can degrade the readability and searchability of your history, making tools like git bisect and git revert difficult to use. However, if commits are kept atomic, git rebase fixup becomes a superior and faster option. This post provides detailed instructions on how to squash commits properly, either via interactive rebase or using git commit --squash, ensuring a clean git history without losing valuable information.

  6. 6
    Article
    Avatar of rubylaRUBYLAND·51w

    Railway Pattern

    The Railway Pattern enables fault-tolerant function composition by chaining operations that can either succeed or fail gracefully. Using Ruby gems like Dry Monads and Pipeable, developers can build robust pipelines where each step produces either a Success or Failure result, allowing errors to bubble up without breaking the entire flow. The pattern is demonstrated through building an API client that handles HTTP requests, JSON parsing, validation, and data modeling as a single composable pipeline, making code more resilient to network issues and data problems.

  7. 7
    Article
    Avatar of rubyRuby·22w

    Redesign our Site Identity

    The official Ruby programming language website has undergone a comprehensive redesign with a new identity centered on "A language where people gather, a site where people are visible." The new design features hand-drawn illustrated characters radiating from the Ruby logo, representing the global developer community. The redesign emphasizes Ruby's core values of programmer happiness, ecosystem, productivity, and community while incorporating interviews with community members and photographs to showcase the people behind the language. The site update is ongoing with improvements still in progress.

  8. 8
    Article
    Avatar of rubylaRUBYLAND·1y

    Migrating Off Oh-My-Zsh and other recent Yak Shavings

    Stefan Wienert shares his experiences transitioning away from Oh-My-Zsh to a more simplified Zsh setup inspired by Bohidar Batsov. He leverages the customizable Starship prompt and provides detailed configurations for his development environment, including SSH-Agent integrations. Additionally, he highlights the improvements from upgrading the Ruby version manager asdf to its latest version rewritten in Go.

  9. 9
    Article
    Avatar of dhhDavid Heinemeier Hansson·25w

    Six billion reasons to cheer for Shopify

    Shopify processed $6.2 billion in sales on Black Friday 2025, a 25% increase from the previous year, handling 31 million API requests per minute and 53 million database reads per minute. The company, led by founder and programmer Tobi Lütke, continues to drive significant contributions to the Ruby and Rails ecosystems, employing nearly half of Rails core contributors and funding major improvements like YJIT and Ractors. This success demonstrates the scalability potential of Ruby on Rails at massive scale.

  10. 10
    Article
    Avatar of rubylaRUBYLAND·41w

    Undervalued: The Most Useful Design Pattern

    Explores using value objects, data objects, and factory methods to decouple software components and improve testability. Demonstrates refactoring a tightly coupled XML feed generator by separating concerns through domain boundaries, transforming ActiveRecord models into simple data structures that isolate business logic from external APIs and database dependencies.

  11. 11
    Article
    Avatar of simplethreadSimple Thread·27w

    I Love You, Redis, But I’m Leaving You for SolidQueue

    Rails 8 introduces SolidQueue, SolidCache, and SolidCable as PostgreSQL-based replacements for Redis in the default stack. SolidQueue leverages PostgreSQL's FOR UPDATE SKIP LOCKED feature to handle job queuing without lock contention, eliminating the operational complexity of maintaining Redis infrastructure. The article provides a complete migration guide from Sidekiq to SolidQueue, including setup instructions, recurring job configuration, and Mission Control monitoring. While Redis remains necessary for high-throughput applications processing thousands of jobs per second, SolidQueue handles 200-300 jobs/second and is sufficient for most Rails applications, as demonstrated by 37signals processing 20 million jobs daily on PostgreSQL.

  12. 12
    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.

  13. 13
    Article
    Avatar of rubyflowRuby Flow·1y

    Terminalwire is open source

    Terminalwire, an end-to-end client/server stack, is now open source under the GNU Affero General Public License (AGPL), allowing users to implement its functionality without concerns over future business shifts. The source code is available for Ruby and Rails, with plans to support other frameworks. The commercial license option offers further support, integration, and consulting services.

  14. 14
    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.

  15. 15
    Article
    Avatar of lobstersLobsters·37w

    basecamp/once-campfire

    Campfire is an open-source web-based chat application built by Basecamp that supports multiple rooms, direct messages, file attachments, search, notifications, and bot integrations. It's designed as a single-tenant solution with Docker deployment support, including built-in SSL, caching, and background job processing. The application can be configured with environment variables for SSL domains, Web Push notifications via VAPID keys, and error reporting through Sentry.

  16. 16
    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.

  17. 17
    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.

  18. 18
    Article
    Avatar of tenderloveTenderlove Making·21w

    Can Bundler Be as Fast as uv?

    Bundler can achieve performance comparable to uv without rewriting in Rust by addressing architectural bottlenecks. Key improvements include decoupling gem downloading from installation to enable parallel downloads, implementing a global cache with hardlinks, and optimizing version comparison using integer encoding. The main challenges are backwards compatibility and navigating legacy codebases, not fundamental technical limitations. Most performance gains come from what the tool doesn't do rather than the implementation language, with opportunities for parallelizing IO-bound operations and eliminating unnecessary sequential dependencies during installation.

  19. 19
    Article
    Avatar of rubylaRUBYLAND·22w

    Passenger 6.1.1

    Passenger 6.1.1 application server has been released with support for Ubuntu 25.10, improved Ruby 4 compatibility, and a critical bug fix for Nginx uploads. The bug affected requests with buffering disabled where request bodies larger than client_body_buffer_size would become corrupted. The release also upgrades Boost to 1.90, updates Nginx to 1.28.0, and includes numerous library updates in precompiled binaries including OpenSSL 3.6.0, curl 8.17.0, and Ruby versions up to 3.4.8.