Looking for Open Source Rails Codebases for Modularization Examples: Seeking 20 Min Screencasts

This message was imported from the Ruby/Rails Modularity Slack server. Find more info in the import thread.

Message originally sent by slack user U7213XMGS3H

Are there any moderately sized open source rails codebases out there that could offer public example cases for modularization. I’d love to see a collection of 20 min screencasts of how different folks would modularize a feature with different and techniques

Message originally sent by slack user U737QIBNBNV

I asked ChatGPT:

  1. Spree Commerce: Spree is an open-source e-commerce solution built with Ruby on Rails. It’s highly customizable and used by many online retailers to create their e-commerce websites. The codebase is quite large and complex, making it a good resource for studying a large Rails application.
    a. GitHub Repository: spree/spree
  2. GitLab: GitLab is a web-based Git repository manager that provides source code management (SCM), continuous integration, and more. It’s a large and comprehensive application that’s built with Ruby on Rails.
    a. GitHub Repository: gitlabhq/gitlabhq
  3. Redmine: Redmine is a flexible project management web application that’s built with Ruby on Rails. It’s widely used for issue tracking, bug tracking, and project management.
    a. GitHub Repository: redmine/redmine
  4. Discourse: Discourse is an open-source discussion platform, commonly used for community forums and online discussions. It’s built using Ruby on Rails, and its codebase is substantial.
    a. GitHub Repository: discourse/discourse
  5. Forem: Forem is a platform for hosting discussion communities, and it’s the software that powers DEV, a popular community for programmers. It’s built with Ruby on Rails.
    a. GitHub Repository: forem/forem
  6. Solidus: Solidus is another e-commerce platform built with Ruby on Rails. It’s a fork of Spree and focuses on flexibility and customization.
    a. GitHub Repository: solidusio/solidus

Message excluded from import.

Message excluded from import.

Message originally sent by slack user U7213XMGS3H

I realize now you put this in the packwerk channel, so I’m not sure if you are looking specifically for packwerk examples. Eventide isn’t that.

Mostly I’m interested in packwerk examples but that’s a good point it would probably be useful more generally

Message originally sent by slack user U7213XMGS3H

<@U737QIBNBNV> I’m particularly interested in example code that sort of represents the median old-ish rails app and some of the pathologies that tend to come up

Message excluded from import.

Message excluded from import.

<@U7213XMGS3H> How about https://github.com/mastodon/mastodon? What’s the first thing you would do to it?

Message originally sent by slack user U7213XMGS3H

Well, that’s the thing @stephan, I haven’t seen this process all the way through before on a big rails app, and that’s part of why i want to see how others would think about going about it. but I think:

• i’d want to look at the model dependency graph and just get a feel for the starting point
• then probably chuck stuff into packs with no regard for any violations
• then set up some kind of layers and address those violations
• then try to establish dependencies and slowly figure out those violations

• public apis
I think what I’m reaching for is a common system that people can use a reference when talking about this because we’re all working in private codebases

Message excluded from import.

Message excluded from import.

Message originally sent by slack user U7213XMGS3H

yeah this looks pretty realistic

Message excluded from import.

Message originally sent by slack user U7213XMGS3H

and honestly a little better than most of the rails apps i’ve seen that are 10+ years old

Message originally sent by slack user U7213XMGS3H

tbh, i think i’m mostly interested in incremental modularization strategy, and the tech is a secondary concern

Message excluded from import.

Message excluded from import.

Message originally sent by slack user U7213XMGS3H

i think hearing how people would think about modularizing is cheaper than actually doing it

Message originally sent by slack user U7213XMGS3H

like i’m not proposing we modularize mastodon