FastRuby.io @fastruby.io · 4hArrange, Act, Assert reads the same in RSpec, Minitest or Capybara. Three phases of structure is what makes a test obvious to the next person who opens it. go.fastruby.io/rm2 000
FastRuby.io @fastruby.io · 7hBudget about 3 minutes of downtime per GB when you copy a deprecated Heroku Postgres into a new database, and keep the old one a few days as your cheapest rollback. go.fastruby.io/1a0 #Rails 000
FastRuby.io @fastruby.io · 29/09/2026One controller went from 39% to 60% covered once the Cypress runs counted. Nobody wrote a new test: the Rails server just runs outside SimpleCov's test lifecycle. go.fastruby.io/tpo #Rails #Testing 000
FastRuby.io @fastruby.io · 29/09/2026post.comments.update(id, ...) used to happily write to a comment on a different post. Rails 8.2 raises RecordNotFound instead. The Rails team calls the old behavior an oversight. go.fastruby.io/qis #RubyOnRails 001
FastRuby.io @fastruby.io · 28/09/2026ZJIT compiles whole methods through an SSA-based IR instead of YJIT's basic blocks. It is faster than the interpreter and not yet as fast as YJIT, which is the honest part of the pitch. go.fastruby.io/bbd #Ruby 000
FastRuby.io @fastruby.io · 28/09/2026Dual-booting a gem is one BUNDLE_GEMFILE swap. Dual-booting Ruby means the version lives in your Gemfile, your CI matrix, and your version manager, so a next? helper in the Gemfile is where it starts. go.fastruby.io/oqn #Ruby 000
FastRuby.io @fastruby.io · 26/09/2026No gem to install, no code to touch. A Gemfile.lock is enough to list your Rails app known CVEs. www.fastruby.io/security-ris... 000
FastRuby.io @fastruby.io · 25/09/2026Your coverage number is not just low, it is wrong about which code is untested. Everything Cypress exercises is invisible to SimpleCov, so you end up writing tests for lines already covered. go.fastruby.io/g76 #Ruby #Testing 000
FastRuby.io @fastruby.io · 24/09/2026Rails 7.0 to 8.1 in 8 pull requests, dual booting through every version in between, and the client's verdict was that nothing ever broke. go.fastruby.io/3pc #RailsUpgrade 100
FastRuby.io @fastruby.io · 24/09/2026Pick your upgrade target by its open advisories, not just the version you're leaving. Rails 3.0 to 7.2 indexed. www.fastruby.io/security-ris... 000
FastRuby.io @fastruby.io · 14/09/2026Running the new code next to the old one is not the win. #TechDebt only drops when you delete the legacy path. Shadow-log both, compare, then flip the flag. go.fastruby.io/sow #LegacyCode #StranglerFig #DesignPatterns 000
FastRuby.io @fastruby.io · 14/09/2026#SimpleCov 1.0 filters test directories by default when you call start with no arguments, so your coverage number can drop without a single line changing. Recalibrate the baseline before you panic. go.fastruby.io/xfr #Ruby 000
FastRuby.io @fastruby.io · 12/09/2026Parallelizing your RSpec test suite could produce massive performance gains. For example: Nearly 2 hours down to under 5 minutes! Here is the part teams skip: isolating Redis and cache per worker, not just the database. go.fastruby.io/vo1 #RSpec #Ruby #Performance 000
FastRuby.io @fastruby.io · 11/09/2026Skipping versions feels faster until a user hits a bug and nobody can say which jump introduced it. go.fastruby.io/6sc #RailsUpgrade #RubyOnRails 000
FastRuby.io @fastruby.io · 11/09/2026We measured 304 blog pages and 20 came back with content quality problems. The fix that sticks is not the cleanup, it is the CI check that fails the next pull request. go.fastruby.io/4np #RubyOnRails #CI 000
FastRuby.io @fastruby.io · 10/09/2026`load_defaults` is not all or nothing. Flip it to the target version, then override the one setting you are not ready for, like keeping dom_testing_default_html_version on html4. go.fastruby.io/svl #RailsUpgrade 000
FastRuby.io @fastruby.io · 10/09/2026Rails 6.1 stopped trusting raw SQL in order, reorder, and pluck. Need it anyway? Wrap it in `Arel.sql`. Otherwise you get ActiveRecord::UnknownAttributeReference. go.fastruby.io/xtw #RailsSecurity 001
FastRuby.io @fastruby.io · 09/09/2026One service left at DEBUG can dominate an APM bill, because log ingestion is priced by volume, not by host. go.fastruby.io/s43 #Observability 000
FastRuby.io @fastruby.io · 09/09/2026The tell for tech debt is not a broken build. It is estimates quietly stretching and a few tests marked skip so the suite stays green. go.fastruby.io/7hl #TechnicalDebt 010
FastRuby.io @fastruby.io · 08/09/2026We refreshed our Ruby 4.0 write-up with clearer reasoning on the API changes. #ZJIT and #RubyBox are opt-in, but #Ractor drops four methods, so that is the part that can break your code. go.fastruby.io/3me #Ruby 000
FastRuby.io @fastruby.io · 08/09/2026Dual-booting a #Rails upgrade inside #Docker? Move RUBY_VERSION and BUNDLE_GEMFILE into build args, then hide the next-version service behind a Compose profile so both apps never fight over the same port. go.fastruby.io/b5e #RailsUpgrade 000
FastRuby.io @fastruby.io · 03/09/2026One unmaintained gem can hold a whole Rails upgrade hostage. In one app it was spree_active_shipping pulling in a deprecated dependency, and writing a replacement turned out cheaper than forking it. go.fastruby.io/vrp #TechnicalDebt #Rails 100
FastRuby.io @fastruby.io · 02/09/2026Our blog has no database and no CMS. Posts are Markdown in the repo we already work in, reviewed in pull requests like any other change. go.fastruby.io/vrh #Jekyll #Ruby 000
FastRuby.io @fastruby.io · 02/09/2026Skip the agent. Most Rails teams have a retrieval problem, and an embedding model plus pgvector fixes more of it than any autonomous system will. go.fastruby.io/xhn #RubyOnRails #AI 000
FastRuby.io @fastruby.io · 01/09/2026Refactor sprints lose to a boring habit: tidy the file you were already touching. Debt-free is not the goal, intentional is. go.fastruby.io/siz #TechnicalDebt #RubyOnRails 000
FastRuby.io @fastruby.io · 01/09/2026A clean audit today is not clean next month. New advisories land, and the same Gemfile.lock starts failing. www.fastruby.io/security-ris... 000
FastRuby.io @fastruby.io · 31/08/2026Config test: could you open source this repo tomorrow without rotating a single credential? www.fastruby.io/twelve-facto... 000
FastRuby.io @fastruby.io · 31/08/2026The option nobody pitches: not one monolith, not microservices, but a few monoliths with clear seams. www.fastruby.io/monolith?utm... 000
FastRuby.io @fastruby.io · 29/08/2026A React + Redux todo list needs three JS files: store, serializer, boilerplate. In Hotwire it collapses to a controller and a view. Turbo + Stimulus ship around 35KB gzipped, React + React-DOM alone runs 45KB. go.fastruby.io/ff8 #Hotwire #RubyOnRails 020
FastRuby.io @fastruby.io · 28/08/2026GitHub's Ubuntu runners ship with MySQL preinstalled, so if your CI hangs, check whether sudo service mysql start is fighting your containerized MySQL on 127.0.0.1:3306. go.fastruby.io/jyb #GitHubActions #MySQL #Rails 000
FastRuby.io @fastruby.io · 27/08/2026Rails still doesn't automatically balance reads across database replicas, you have to route that yourself once a single database becomes a bottleneck. go.fastruby.io/1oh #Rails #Scalability 000
FastRuby.io @fastruby.io · 26/08/2026Rails 7 quietly removed every deprecated method from ActiveModel::Error, the endpoint of a long evolution from plain hashes to queryable error objects. go.fastruby.io/xss #Rails #RubyOnRails 000
FastRuby.io @fastruby.io · 25/08/2026Multi-stage Dockerfiles keep your compilers out of production, so fewer packages means fewer CVEs to patch. go.fastruby.io/s9a #Docker #DevOps 000
FastRuby.io @fastruby.io · 24/08/2026Bumping activestorage to 8.1.3.1 does not fix CVE-2026-66066 by itself. The fix needs libvips 8.13+, and rebuilding on a Debian bullseye base quietly reinstalls 8.10.5 every time. go.fastruby.io/vdx #RailsSecurity 011
FastRuby.io @fastruby.io · 22/08/2026Run Coverband as a standalone server on port 9022 next to your Cypress suite, dump it to JSON with a rake task, then collate it into SimpleCov with the rails profile. Your end to end runs finally count. go.fastruby.io/of0 #Ruby #Testing 000
FastRuby.io @fastruby.io · 21/08/2026Gemstash defaults to localhost:9292. Here's how to pick the right way to distribute a private Ruby gem, from a plain git repo to a full commercial registry. go.fastruby.io/89b #Ruby #RubyGems 000
FastRuby.io @fastruby.io · 20/08/2026On Aug 26, OmbuLabs is running a 2-hour #Claude workshop for small business owners and operators. 10 spots available, no technical knowledge required! You build one working skill and you roll it out by the end of the workshop. RSVP over here right👉 www.ombulabs.ai/workshops/cl... #SmallBusiness 000
FastRuby.io @fastruby.io · 19/08/2026SimpleCov misses every line your Cypress tests exercise; merging Coverband data in took a sample app from 35% to 53% coverage without writing a single new test. go.fastruby.io/qfh #Ruby 000
FastRuby.io @fastruby.io · 18/08/2026There is no default architecture. The right one depends on the problems you solve, your stack, and the teams doing the work. www.fastruby.io/monolith?utm... 000
FastRuby.io @fastruby.io · 18/08/2026RubyCritic, SimpleCov, and Brakeman produce three reports. We merge them into one you can act on. www.fastruby.io/static-code-... 000
FastRuby.io @fastruby.io · 17/08/2026Every Ruby MCP gem version before 0.23.0 was open to DNS rebinding, and in-memory session state breaks the second you add a second Puma worker. go.fastruby.io/il9 #Ruby #MCP 001
FastRuby.io @fastruby.io · 14/08/2026Opening an unfamiliar repo in Claude Code or Cursor can run code before you read a line: SessionStart hooks and .vscode/tasks.json. Check both first. go.fastruby.io/3sq #SupplyChainSecurity 000
FastRuby.io @fastruby.io · 14/08/2026Rails build reaching for a Bun you never installed? cssbundling-rails 1.4.3 put yarn.lock in Bun's detection list. Pin ref 466cd57. go.fastruby.io/sjd #RubyOnRails 000
FastRuby.io @fastruby.io · 13/08/2026Gemfile.lock tells you which gems you run and how they arrive. Sources over plain HTTP are a risk too. www.fastruby.io/security-ris... 000
FastRuby.io @fastruby.io · 12/08/2026The Ruby Advisory Database is public and community-compiled. Attackers read it too, and check your version against it. www.fastruby.io/security-ris... 000
FastRuby.io @fastruby.io · 11/08/2026Free audit: paste a Gemfile.lock, get the known CVEs in your Rails app, versions 3.0 through 7.1. www.fastruby.io/security-ris... 000
FastRuby.io @fastruby.io · 10/08/2026An unpatched gem with a known CVE can quietly put your Rails app offside of PCI DSS, GDPR, or CCPA, and WCAG gaps stack accessibility risk on top. Compliance and security are the same problem. go.fastruby.io/87x #RailsSecurity 000
FastRuby.io @fastruby.io · 08/08/2026Rake is not just db:migrate. It is a Ruby-native build tool that can replace your Makefiles, Bash scripts, and parts of CI in one versioned place. go.fastruby.io/nvj #Ruby 000
FastRuby.io @fastruby.io · 07/08/2026Rails 8.1 needs Ruby 3.2 or newer and Rails 6.0 caps out below Ruby 3.0. Check every Ruby and Rails pairing, plus the security-fix windows, before you upgrade. go.fastruby.io/kvx #RailsUpgrade 000
FastRuby.io @fastruby.io · 07/08/2026Upgrade Ruby the boring way: one stable version at a time, fix deprecations first, dual boot old and new, and bundle update --conservative so your gems do not cascade. go.fastruby.io/l8e #Ruby 000