v5.0.3  ·  ruby >= 1.8

THICCMVC

The unapologetically unopinionated web framework. No architecture. No abstractions. No therapy. Just one very large file.

>Fat model. >Fat controller. >Fat view. >300 lines of callbacks. Fuck it, whatever._
scroll, it gets worse
// install
irb — 80×24
$ gem install thiccmvc
Successfully installed thiccmvc-5.0.3
Successfully installed 4,071 runtime dependencies
Building native extensions. This could take a while...
Parsing documentation for thiccmvc-5.0.3
  (there is no documentation)
1 gem installed. 0 regrets logged.

$ _

Add gem "thiccmvc" to your Gemfile and run. Bundler will resolve it eventually.

// what you get

Everything, in one file.

01

Fat Model

Validation, billing, email, PDF export, and a small crypto miner — all on the User model. It's called cohesion.

02

Fat Controller

One action. 340 lines. Six nested try/catch. It might return. Do not refactor it. Do not look at it.

03

Fat View

Business logic in the template. A raw SQL query in the template. A <script> that emails you. Beautiful.

04

Zero Abstraction

No services. No interfaces. No dependency injection. No anything, just a void.

05

Lifecycle Hell

before_save, after_save, before_save_unless_it_is_a_friday. Hooks all the way down.

06

Ship Mode

Tests are a smell. Types are a smell. Confidence is a smell.

// stats
Scales to
1 dev?
Cold start
eventually
Gem size
1.2 GB
Max file length
Test coverage
0%
Uptime
zero nines, or five?

Architecture is over-rated.

// getting started

The whole tutorial.

app/models/user.rb
# the only file you'll ever need
class User < Everything
  before_save :validate
  before_save :charge_credit_card
  before_save :send_welcome_email
  before_save :generate_pdf_invoice
  before_save :sync_to_six_crms
  before_save :ping_slack
  before_save :pray

  after_save  :send_welcome_email   # again, just in case
  after_save  :todo_fix_this_later  # (no longer employed here)

  def save
    super rescue true        # ship it
  end
end

That's it. You're a senior engineer now.

// loved by teams that ship?

"We deleted the architecture diagram and shipped 3x faster. Turns out the diagram was the bottleneck."

"My User model is 4,200 lines and I have never slept better in my life."

"We replaced 19 microservices with one fat controller. The pager hasn't gone off since."

"Code review used to take days. Now nobody reads it at all. Velocity is up."

Ship it.
or don't, nothing matters.

$ gem install thiccmvc
$ bundle add thiccmvc
↑ these will not work. ship anyway.
callbacks fired since you opened this tab: 0