Thursday, June 04, 2026 12:00:23 AM
> Gemfile
source "https://rubygems.org"

# Core Rails framework
gem "rails", "~> 8.0.2"

####################################################################################################
## Development & Test Groups
####################################################################################################

group :development, :test do
  # Interactive debugging console
  gem "pry"
  gem "pry-remote"

  # Security vulnerability scanner
  gem "brakeman", require: false
end

group :development do
  # === Debugging & Profiling ===
  gem "web-console"             # Better error pages with REPL
  gem "rack-mini-profiler"      # Performance profiling toolbar
  gem "benchmark-ips"           # Iterations per second benchmarking

  # === Code Quality & Formatting ===
  gem "ruby-lsp"                # VS Code Ruby support
  gem "standard"                # Ruby style guide enforcer
  gem "rubocop-performance"     # Performance-focused cops
  gem "rubocop-rails"           # Rails-specific cops
  gem "rubocop-rspec"           # RSpec best practices
  gem "htmlbeautifier"          # HTML/ERB formatter
end

group :test do
  gem "database_cleaner-active_record"
  gem "rspec-rails"
  gem "webmock"
end

####################################################################################################
## Core Infrastructure
####################################################################################################

# Database
gem "pg"                        # PostgreSQL adapter

# Web Server
gem "puma"                      # Multi-threaded web server
gem "thruster", require: false  # HTTP/2, caching, compression layer for Puma

# Caching & Background Jobs (Solid* suite - DB-backed adapters)
gem "solid_cache"               # Database-backed Rails.cache
gem "solid_queue"               # Database-backed Active Job
gem "solid_cable"               # Database-backed Action Cable

# Performance
gem "bootsnap", require: false  # Faster boot through caching

# Communication
gem "drb" # Distributed Ruby (DRb) for remote object communication

####################################################################################################
## Frontend & Assets
####################################################################################################

# Asset Pipeline
gem "propshaft"                 # Modern asset pipeline (simpler than Sprockets)
gem "vite_rails"                # Vite integration for JS/CSS bundling
gem "sass-embedded"             # Dart Sass for stylesheets

# Hotwire Stack
gem "turbo-rails"               # SPA-like navigation without the complexity
gem "stimulus-rails"            # Modest JavaScript framework

# View Layer
gem "slim"                      # Cleaner template syntax than ERB
gem "view_component"            # Encapsulated, testable view components

# Content Processing
gem "kramdown"                  # Markdown to HTML converter
gem "kramdown-parser-gfm"       # GitHub Flavored Markdown support

####################################################################################################
## Authentication & Authorization
####################################################################################################

gem "devise"                    # Complete authentication solution
gem "pundit"                    # Simple, robust authorization

# OAuth Providers
gem "omniauth"
gem "omniauth-openid"
gem "omniauth-rails_csrf_protection"
gem "omniauth-discord"
# omniauth-steam is handled by lib/omniauth/strategies/steam.rb --- the gem has a bug with multi-json (as of 2026-02)

####################################################################################################
## Utilities & Custom
####################################################################################################

# External Dependencies
gem "http"                      # Clean HTTP client
gem "semantic"                  # Semantic versioning helper
gem "faker"                     # Fake data generation
gem "dotenv"                    # Environment variable management
gem "ostruct"                   # OpenStruct for dynamic objects
gem "config"                    # YAML based configuration
gem "dry-validation"

# My Libraries
gem "esm_ruby_core", path: "../esm_ruby_core"
gem "everythingrb"              # Method extensions
gem "sortsmith"                 # Sorting utilities
# gem "spec_forge"                # API testing suite
All opinions represented herein are my own
- © 2024 - 2026 itsthedevman
- build 4294fb2