Matheus Richard
matheusrich.bsky.social
Matheus Richard
@matheusrich.bsky.social
👨🏽‍🍼 Father

🇧🇷 Senior developer @ thoughtbot.

📝 Blogging @ https://tbot.io/blog/matheus

💎 Organizer of http://rubydf.com
Today I learned about Rails' Time.days_in_month and Time.days_in_year. So handy!
November 17, 2025 at 3:12 PM
🎉 end_of_life 1.0.0.alpha is released! It includes:

- Macos install via homebrew
- Support for scanning EOL Node.js versions
- Support for detecting versions from `mise.toml`.
- A new `check` command to check if specific product releases are EOL
- A revamped CLI

Stay updated!
October 24, 2025 at 6:53 PM
TIL about Git LFS: An open source Git extension for versioning large files

git-lfs.com
Git Large File Storage
Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.co...
git-lfs.com
October 20, 2025 at 12:27 PM
Just shaved 200-250ms from a CLI app by just requiring dependencies only when they're needed.

It might not seem much, but it really matters to get that snappy feel.
September 17, 2025 at 9:50 PM
This is my favorite 404 page
September 16, 2025 at 7:53 PM
Did you know that Rails 7.1 stops receiving security updates in 3 weeks? Wished that you had a tool that would inform you about this kind of stuff?

Well, end_of_life v0.5 was just released and it now supports Rails!

Check it out: github.com/MatheusRich/...
September 10, 2025 at 7:36 PM
I've hacked the first version of end_of_life in a weekend. I had limited time, so I decided to only support Ruby. It served me well for years, but I thought it was time to expand support for other tools (Rails, Node, Python, databases, etc).
September 8, 2025 at 2:40 PM
If you wanna use Rails 8.1 today, you can check if there's anything new in the dotfiles, Dockerfile, or the generated authentication system using rails-diff:

github.com/MatheusRich/...
GitHub - MatheusRich/rails-diff: Compare Rails-generated files with the ones in your repository
Compare Rails-generated files with the ones in your repository - MatheusRich/rails-diff
github.com
September 4, 2025 at 7:13 PM
The amount of event listeners LLMs suggest when writing Stimulus controllers makes me think most people are not making the most out of Stimulus targets.
September 3, 2025 at 4:18 PM
TIL about the Zen browser. Looks cool!

zen-browser.app
Zen Browser
Beautifully designed, privacy-focused, and packed with features.
zen-browser.app
September 3, 2025 at 11:59 AM
Reposted by Matheus Richard
Join me at @thoughtbot.com’s Open Summit this year! I’m extremely excited to be part of this event. Even better, it’s *free* and *online*, so I hope I can see you there!

timriley.info/posts/join-m...
Join me at thoughtbot’s Open Summit! - Tim Riley
I’m delighted to be joining the thoughtbot Open Summit on 31st October this year! What is Open Summit? From the announcement: “a live, interactive, hands-on day of pairing and solving open...
timriley.info
September 1, 2025 at 12:57 PM
This is exciting!
August 26, 2025 at 3:32 PM
I remember a time where GitHub had a team dedicated to fixing small user pain points. Now everyone complains about it being slow and adding AI features.

What a change.
August 19, 2025 at 6:04 PM
TIL about `ActiveRecord.to_param`. I've always defined `#to_param` manually

```
class User < ActiveRecord::Base
to_param :name
end

user = User.find_by(name: 'Fancy Pants')
user.id # => 123
user_path(user) # => "/users/123-fancy-pants"
```
August 15, 2025 at 2:53 PM
I forgot to share, but about a month ago I got my first commit into Crystal! You can use this if you're on Crystal >= 1.17
August 7, 2025 at 1:05 PM
How hard can extracting an emoji from a string be? Well..
August 6, 2025 at 12:29 PM
Rails now has a `credentials:fetch` command. This is useful to extract a credential and add to Kamal secrets, for example:

KAMAL_REGISTRY_PASSWORD=$(rails credentials:fetch kamal.registry_password)

No need to use rails runner just for that anymore!

github.com/rails/rails/...
Add credentials:fetch command by n-studio · Pull Request #53119 · rails/rails
Motivation / Background With Kamal 2, secrets are now stored in .kamal/secrets. We are expected to use a 3rd party password manager such as 1password to fetch secrets such as KAMAL_REGISTRY_PASSWOR...
github.com
August 4, 2025 at 4:28 PM
Hey, I'm on This Week in Rails

world.hey.com/this.week.in...
August 1, 2025 at 2:54 PM
TIL you can download an .epub version of the Rails guides!

guides.rubyonrails.org/epub/ruby_on...
guides.rubyonrails.org
July 30, 2025 at 11:26 PM
Ever wondered how Ruby works under the hood? No need to take a compilers class to get that! You can watch my #RailsConf talk to understand the basics. Along the way you might even write your first programming language.

www.youtube.com/watch?v=ozay...
RailsConf 2025 Ruby Internals: A Guide For Rails Developers by Matheus Richard
YouTube video by Ruby Central
www.youtube.com
July 30, 2025 at 1:50 PM
I feel like half of my web problems would be solved if

1. styling select fields was widely available, and
2. select multiple=true had a good default experience (select on click + search + better styles)
July 28, 2025 at 5:09 PM
🎉 rails-diff v0.6.0 is released! This version includes:

- a `--only` option to only include specific files or directories in the diff
- a new `dotfiles` command to compare dotfiles (configuration files like .rubocop.yml)

Enjoy!

rubygems.org/gems/rails-d...
rails-diff | RubyGems.org | your community gem host
rubygems.org
July 25, 2025 at 4:23 PM
Reposted by Matheus Richard
All the talks from the final RailsConf are now posted!

www.youtube.com/playlist?lis...
RailsConf 2025 (Philadelphia) - YouTube
RailsConf is the world’s longest-running gathering for the Rails community. Since 2006, we have brought together developers and enthusiasts of all levels alo...
www.youtube.com
July 25, 2025 at 12:58 PM
I just made an app test suite 3x faster by just using rack test instead of selenium on every system test that didn't need JS interactions!
July 24, 2025 at 5:34 PM
I *think* I found a bug on Stimulus (or Chrome?). When clicking on a autocomplete suggestion, it triggers an action even if it doesn't match the KeyboardEvent filters.

Reproduction here: codepen.io/matheusrich/...
Stimulus Bug?
...
codepen.io
July 23, 2025 at 10:12 PM