SaaSHub helps you find the best software and product alternatives Learn more →
Packwerk Alternatives
Similar projects and alternatives to packwerk
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
-
Gin
Gin is a high-performance HTTP web framework written in Go. It provides a Martini-like API but with significantly better performance—up to 40 times faster—thanks to httprouter. Gin is designed for building REST APIs, web applications, and microservices.
-
-
-
-
-
-
-
SimpleCov
Code coverage for Ruby with a powerful configuration library and automatic merging of coverage across test suites
-
-
-
-
-
-
-
-
packwerk discussion
packwerk reviews and mentions
-
Ruby 3.5 Feature: Namespace on read
Shopify would benefit a ton from "some" namespaces. In a way, packwerk[0] was an attempt at bringing some namespaces benefits.
But I don't personally think Shopify would benefit from this specific implementation of namespaces (a couple colleagues do). I'm personally not even sure Namespace is a proper term to describe that feature. It's more some sort of lightweight sandboxing to me.
Also:
> They have so many expert Ruby devs
If anything, the average Ruby expertise at Shopify is likely noticeably lower than in most Ruby/Rails shop.
[0] https://github.com/Shopify/packwerk
- Packwerk: Ruby gem used to enforce boundaries and modularize Rails applications
-
Let's Read - Eloquent Ruby - Ch 15
The book goes into DataMapper, but I might instead go into some of the larger Rails apps I've worked with in the past (10M+ LoC, 1M+ LoC, and 3M+ LoC respectively.) Two of them implement Packwerk to namespace things, and frequently something to the order of:
-
Must-have gems for mature Rails
gem "packwerk" - https://github.com/Shopify/packwerk | Allows modularising Ruby code, a must-have for growing projects.
-
Keep the Monolith, but Split the Workloads
Yep, that article is about very similar concepts but grounded in Spring as the framework.
I like what they do around package imports and it looks a lot like what we do at incident.io, with some rules about which packages can import what.
For people in the Ruby world who want a similar solution, Shopify provide an open-source framework called packwerk that is designed just for this:
https://github.com/Shopify/packwerk
-
All you need is Rails (Engines): Compartmentalising your Monolith
I’d probably go with packwerk before rails engines these days
-
How to break up a rails monolith
https://github.com/Shopify/packwerk allows you to make dependencies between components explicit
- Best way to go about fragmenting a Monolithic Rails application into Microservices.
-
OOP vs. services for organizing business logic: is there a third way?
Packwerk – to enforce boundaries and modularize Rails applications
-
Organizing Rails files by meaning
Take a look at Packwerk from some folks at Shopify - gets you the benefits of naming some components for organizing boundaries in your code, with each component having the usual rails folder structure, but without the hard isolation restrictions of doing so with Engines.
-
A note from our sponsor - SaaSHub
www.saashub.com | 11 Jun 2026
Stats
Shopify/packwerk is an open source project licensed under MIT License which is an OSI approved license.
The primary programming language of packwerk is Ruby.