Felipe Vogel
fpsvogel.bsky.social
Felipe Vogel
@fpsvogel.bsky.social
Tried @marcoroth.dev's Herb VS Code extension and loved it:

- inline display of parsing errors
- format on save
- `herb analyze` finds issues across files

I'm sure there's more, but these are the big ones that I used effortlessly in my first 5 minutes with it. Very nice!

github.com/marcoroth/herb
GitHub - marcoroth/herb: 🌿 Powerful and seamless HTML-aware ERB parsing and tooling.
🌿 Powerful and seamless HTML-aware ERB parsing and tooling. - marcoroth/herb
github.com
November 14, 2025 at 7:00 PM
More cool Ruby gems, this time related to databases and Active Record!

First, alternatives to Active Record 😉

github.com/jeremyevans/... – from the creator of Roda; why not try out both together?

github.com/rom-rb/rom – from the creators of Hanami; again, it's worth exploring both
November 14, 2025 at 4:25 PM
Does anyone else suddenly feel the need to write in a more quirky style just to let the world know that I'm writing this thing letter by letter with my own fingers and not letting an LLM barf it out for me?

Example in 🧵
November 13, 2025 at 9:19 PM
Q for Ruby folks: do a lot of people still use Pry nowadays?

The old Rails app at work uses Pry, but for personal stuff I use the debug gem (github.com/ruby/debug), which seems just as capable to me 🤷
October 31, 2025 at 8:14 PM
Here's a fun bit of Ruby metaprogramming: get the name of the method that called the current method.

`caller_locations(1, 1).first.label.split(" ").last`

docs.ruby-lang.org/en/master/Ke...

🧵 1/3
module Kernel - Documentation for Ruby 3.5
module Kernel: The Kernel module is included by class Object, so its methods are available in every Ruby object. The Kernel instance methods are documented in class
docs.ruby-lang.org
October 29, 2025 at 4:24 PM
An interesting history of Ruby's efforts toward frozen string literals by default, and a compelling argument for it:

byroot.github.io/ruby/perform...
Frozen String Literals: Past, Present, Future?
If you are a Rubyist, you’ve likely been writing # frozen_string_literal: true at the top of most of your Ruby source code files, or at the very least, that you’ve seen it in some other projects.
byroot.github.io
October 28, 2025 at 4:21 PM
Reposted by Felipe Vogel
After a year hiatus, my series on all things Ruby concurrency is back! This post digs into the interrupt mechanism in Ruby threads. These interrupts revolve around bit masks, so it's got some Ruby bit work as well!

Expect more regular updates from now on 💃💃💃

jpcamara.com/2025/10/22/b...
Bitmasks, Ruby Threads and Interrupts, oh my!
👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into several parts: Your Ruby programs are always multi-threaded: Part 1 ...
jpcamara.com
October 23, 2025 at 12:08 PM
Behold, an awesome list… of awesome lists!

github.com/andrew/ultim...

I found a couple good ones in the Ruby section:

github.com/ayarotsky/aw...

github.com/Darhazer/awe...

Plus a few other lists of awesome lists… so does that make this an awesome list of awesome lists of awesome lists?
GitHub - andrew/ultimate-awesome: Every awesome list on every topic, including awesome lists of awesome lists, updated daily.
Every awesome list on every topic, including awesome lists of awesome lists, updated daily. - andrew/ultimate-awesome
github.com
October 23, 2025 at 3:34 PM
TIL a weird Ruby feature: Continuation.

ruby-doc.org/3.4.1/Contin...

> Continuation objects are generated by Kernel#callcc [...]. They hold a return address and execution context, allowing a nonlocal return to the end of the callcc block from anywhere within a program.

🧵 1/3
class Continuation - RDoc Documentation
ruby-doc.org
October 21, 2025 at 1:19 PM
I recently moved my list of Ruby podcasts to Awesome Ruby Blogs (github.com/Yegorov/awes...) from my Ruby resources list (github.com/fpsvogel/lea...).

It's quite a comprehensive list. And recently a very kind soul added RSS links!
GitHub - Yegorov/awesome-ruby-blogs: A curated list of Awesome Ruby Blogs and Newsletters for Ruby Developers and Newbies
A curated list of Awesome Ruby Blogs and Newsletters for Ruby Developers and Newbies - Yegorov/awesome-ruby-blogs
github.com
October 17, 2025 at 5:23 PM
I often find cool Ruby gems that I think should be more widely known.

Here are some related to testing:

github.com/palkan/n_plu... – RSpec and Minitest matchers to prevent N+1 queries

github.com/kaspth/oaken – fixtures + factories + seeds for your Rails development & test environments

🧵 1/3
October 15, 2025 at 2:49 PM
Reposted by Felipe Vogel
For the first time in a long time, I have a professional CV!

(100% hand-coded HTML of course, and the PDF was itself printed from the HTML via a print stylesheet.) 😎

I'm looking to make a major impact on a fast-growing team with high-stakes full-stack architecture or design system planning […]
Original post on indieweb.social
indieweb.social
October 14, 2025 at 6:59 PM
rubyapi.org is my favorite Ruby docs site. Its search uses a query param, so if you add a search keyword to your browser, you can search Ruby docs from your address bar!

nedbatchelder.com/blog/202205/...

For example `rb partition` would take you to rubyapi.org/3.4/o/s?q=pa...
Home | Ruby API (v3.4)
Ruby API is the go-to resource to search and find everything you need for the Ruby programming language. Whether you’re a beginner or an expert in Ruby,our optimised search makes finding Ruby document...
rubyapi.org
October 14, 2025 at 7:01 PM
Impressive: scope inline style tags with vanilla CSS. Implemented in only 16 lines of JS 😮

github.com/gnat/css-sco...

I love that there's a README section titled "CSS Scope Inline vs Tailwind CSS Showdowns"
GitHub - gnat/css-scope-inline: 🌘 Scope your inline style tags in pure vanilla CSS! Only 16 lines. No build. No dependencies.
🌘 Scope your inline style tags in pure vanilla CSS! Only 16 lines. No build. No dependencies. - gnat/css-scope-inline
github.com
October 10, 2025 at 3:55 PM
Reposted by Felipe Vogel
In yesterday's meeting, we started a book club on Polished Ruby Programming by Jeremy Evans.

We talked about:

- underused data types: Rational, Symbol, Set, Struct, Data
- how SOLID principles never seem to come up in real life, e.g. code reviews
- other topics recapped at bluegrassruby.club/posts
October 8, 2025 at 4:48 PM
📣 Calling all Nashville Rubyists 📣

A friend of a friend is restarting the Nashville Ruby User Group, and is looking for interested people: nashrb.com

Reposts appreciated!
Nashville Ruby User Group Signup
nashrb.com
October 8, 2025 at 2:04 PM
RorVsWild has great posts on Rails performance optimization: www.rorvswild.com/blog

Also, this article and its sequel should be mandatory reading for junior Rails developers: henry.bearblog.dev/beginners-gu.... It would have saved me quite a bit of confusion a few years ago when I was starting out.
October 7, 2025 at 5:54 PM
UnsuckJS is a handy list of JS libraries that make writing JS a better experience (even if by reducing the need for JS).

unsuckjs.com

It's the closest thing to a complete list that I've seen, if you include open PRs.

Today I opened a PR with no less than 17 entries 😄

github.com/adamghill/un...
UnsuckJS
unsuckjs.com
October 6, 2025 at 8:06 PM
Reposting from Mastodon on here has always felt awkward to me, like I'm saying the same thing again to largely the same crowd… so, new approach: I'll post a weekly recap here of what I shared on Mastodon.

Onto this week's recap! 🧵 1/3
October 3, 2025 at 6:28 PM
Reposted by Felipe Vogel
For those who blame macOS Tahoe for bugs.

Let me tell you how apps work in the country I live.

Once, all users of the most popular bank got a push notification saying:
"Bro, why are you bald huh?"

Yes, they just tested something in production.
October 2, 2025 at 3:03 PM
This list of web UI/UX guidelines is good, surprising since it's by Vercel: vercel.com/design/guide...

It made me think back to my favorite UI/UX guides:

- The Design of Everyday Things: www.nngroup.com/books/design...
- Laws of UX: lawsofux.com/articles
- 100 UI/UX Tips: vpon.me/hundred
Web Interface Guidelines
Guidelines for building great interfaces on the web. Covers interactions, animations, layout, content, forms, performance & design.
vercel.com
September 22, 2025 at 3:18 PM
The book Metaprogramming Ruby 2 explains something that I couldn't have articulated before.

`module`, `class`, and `def` form "scope gates", across which local variables are out of scope.

But you can "flatten the scope" by dynamically defining a module, class, or method: github.com/khusnetdinov...
September 8, 2025 at 7:12 PM
Recently there was a discussion about using ivars directly vs. private accessors: www.reddit.com/r/ruby/comme...

I've been using private accessors, but @davetron5000.com's take changed my mind.

🧵 1/2
From the ruby community on Reddit
Explore this post and more from the ruby community
www.reddit.com
September 5, 2025 at 4:34 PM
🎄 2015 day 6 of #AdventOfCode in #Ruby:

Amazing. A code golf solution in Ruby is twice as long as a solution that wasn't even intended to be golf, in the K language: www.reddit.com/r/adventofco...

I feel like I'm passing by whole other universes.

#ProgrammingLanuages
--- Day 6 Solutions ---
www.reddit.com
June 13, 2025 at 11:51 AM
🎄 I'm doing past Advent of Code puzzles in Ruby: github.com/fpsvogel/adv...

I'll be posting my TILs. Here's one.

2015 day 5: regex backreferences can replace a lot of manual string iteration. 🧵

#ruby
June 9, 2025 at 12:17 PM