Kasper Timm Hansen's Avatar

Kasper Timm Hansen

@kaspth.com

Rails core alumni, principle consultant at https://spinel.coop where we do https://rv.dev and help teams level up. Creator & maintainer of Oaken, and other next-gen Rails extensions.

1,721
Followers
348
Following
617
Posts
19.10.2024
Joined
Posts Following

Latest posts by Kasper Timm Hansen @kaspth.com

update #6: how namespaces work We’re live in beta! Here are our next steps Last week, we at gem.coop announced support for namespaces that you can publish to and use namespaced gems in Bundler today. Our original post outlines how ...

I'm really excited where we're headed with gem.coop, I think there's a real chance we can make significant advances for Ruby as a whole in a way that's equitable and with aligned incentives for all.

More on that soon, but here's how namespaces work with Bundler today:
gem.coop/updates/6/

10.03.2026 20:38 πŸ‘ 5 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

um jared, that's not

09.03.2026 16:38 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Hi,

09.03.2026 16:36 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I think people are making a mistake trying to revive fixtures and forgetting all their inherent issues.

I've worked with fixtures in production and doing what @thomascannon.me describes would be extremely difficult.

Oaken makes deep refactoring like this doable.

09.03.2026 16:21 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

welp that's a lot of brainrot to reach that 😬

09.03.2026 16:05 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Ah fair, just saw in the video with the h1 example. It lets ERB output the value so it doesn't leak what the code looks like client side.

06.03.2026 20:43 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Ah nice, that's cool!

Well for me it's more about not leaking the inner HTML externally. When Herb wraps an HTML comment around an HTML element that has an ERB output in there, does it also comment that out?

06.03.2026 20:42 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Love to read this.

Repo link for the skills @kaspth.com mentions: github.com/palkan/skills

06.03.2026 18:50 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Nice! I tend to insert a `if false &&` to prevent the inner markup from showing up in the output.

06.03.2026 17:48 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I've also been reading through @palkan.bsky.social's & @evilmartians.com Layered Design for Rails and it's cool to see many similar ideas for where I'd like to see Rails go (and Associated Objects gets a mention).

There's lots of interesting ideas and patterns in there, so I highly recommend it!

05.03.2026 17:45 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 1

The whole point of Associated Objects is to help what Rails devs struggle with most often: spotting collaborator objects to unfurl those god object Active Records and set it up in a conventional way.

You trade a bit of OOP design freedom for a lot of bang for your code buck.

05.03.2026 17:37 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1
@kaspth/active_record-associated_object β€” gem.coop Associate a Ruby PORO with an Active Record class and have it quack like one.

A fun thing in my ActiveRecord::AssociatedObject gem's design is that we delegate find_by, so in production I just did:

User::EmailVerification.find_by(email_address: ".@.").mailer.deliver_later

User is an Active Record, while the nested EmailVerification is a PORO!

beta.gem.coop/@kaspth/acti...

05.03.2026 17:37 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

#edbspillet

05.03.2026 14:46 πŸ‘ 17 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0
Four months of Ruby Central moving Ruby backward From the moment RubyGems was first created in 2004, Ruby Central provided governance without claiming ownership, to support the Ruby community. Providing governance meant creating processes to provide stability and predictability. Avoiding ownership meant allowing the community to contribute, to th…

after four months of private discussions, I have an update on the Bundler and RubyGems situation with Ruby Central: andre.arko.net/2026/03/03/fou…

03.03.2026 20:11 πŸ‘ 53 πŸ” 28 πŸ’¬ 0 πŸ“Œ 2

love twin peaks, there's some stuff that doesn't hold up but a lot still does

02.03.2026 21:07 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

as I gaze into the camera, it also gazes into me

02.03.2026 21:05 πŸ‘ 6 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

always wished we had this in the Ruby world https://gem.coop/updates/5/

02.03.2026 18:00 πŸ‘ 5 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

On Friday, I recorded a @blueridgeruby.com BTS episode with my friend @rhiannon.io, where we get into the crucial topic of marketing for conferences. Full episode here: www.youtube.com/watch?v=B3BB...

02.03.2026 17:01 πŸ‘ 6 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Peak Oaken aims to blend your Fixtures/Factories and levels up your database seeds.

Thinking of adding a new gem? There's a lot of info you need to look through to verify gems.

So based on feedback from @afomera.dev and @marcoroth.dev here's our initial take on that page:

beta.gem.coop/@kaspth/oaken

27.02.2026 23:27 πŸ‘ 9 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0

glad you're hanging out with Tim!

28.02.2026 18:33 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Peak To use namespaced gems pass a source in your Gemfile, like this:

"Pushing gem to beta.gem.coop/@stephen ...
yaml_csp_config-1.2.0.gem uploaded πŸŽ‰"

Pushed my first gem to my new namespace.

27.02.2026 16:00 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

(looks like I also need to fix up the page title lol)

27.02.2026 23:27 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Peak Embed a controller flow within another by stashing the final redirect upfront and performing it after completing.

Ideally the gem profile page, and your namespace profile page like beta.gem.coop/@kaspth, should be pages you'd feel proud to post.

We'd like to show off all the harness/skeleton of a gem in a way that a GitHub README can't.

Curious to hear what you think!

27.02.2026 23:27 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Peak Oaken aims to blend your Fixtures/Factories and levels up your database seeds.

Thinking of adding a new gem? There's a lot of info you need to look through to verify gems.

So based on feedback from @afomera.dev and @marcoroth.dev here's our initial take on that page:

beta.gem.coop/@kaspth/oaken

27.02.2026 23:27 πŸ‘ 9 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0
Preview
gem.coop update #5: namespaces beta Today, the gem.coop team is very excited to announce we have reached public beta. If you want to get started right away, sign up now to start publishing your gems. Have you ever come up with a really ...

#GemCoop just* launched a public beta for namespaces!

gem.coop/updates/5/

* I'm sick and slept until 7pm, so I'm a few hours late, but I'm still super excited about this!

25.02.2026 00:39 πŸ‘ 22 πŸ” 7 πŸ’¬ 0 πŸ“Œ 1
gem.coop We’re excited to introduce gem.coop – a new server for gems in the Ruby ecosystem. We aim for fast, simple hosting, that is compatible with Bundler but optimized for the next generation. It’s built fo...

Wow, gem.coop just launched a namespaces preview. They’re on a *tear* launching new features! gem.coop/updates/5/

24.02.2026 23:58 πŸ‘ 8 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
gem.coop update #5: namespaces beta Today, the gem.coop team is very excited to announce we have reached public beta. If you want to get started right away, sign up now to start publishing your gems. Have you ever come up with a really good gem name, only to discover that name has already been taken and you can’t push your gem? Ever been confused about if the gem aws-sdk-malware was really published by AWS?

yesss i’ve been waiting for this!!!

24.02.2026 22:24 πŸ‘ 5 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

it's been a long day and I forgot to build the email when users' namespaces are approved

fixing! (I've already approved your namespace)

24.02.2026 23:00 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

oh right of course πŸ’€

24.02.2026 21:48 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Since namespaced gems is brand new for the Ruby community, we've added explainers to the bottom of profile pages and one-click to copy the `bundle add` command.

Let us know how it's working for you and if you encounter issues!

24.02.2026 21:19 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0