source 'https://rubygems.org'
# Core Rails and server gems
gem 'rails', '~> 7.2.1'
gem 'propshaft' # Modern asset pipeline for Rails
gem 'sqlite3', '>= 1.4' # Database for Active Record
gem 'puma', '>= 5.0' # Web server
# Frontend-related gems
gem 'importmap-rails' # Use JavaScript with ESM import maps
gem 'turbo-rails' # Hotwire's SPA-like page accelerator
gem 'stimulus-rails' # Hotwire's modest JavaScript framework
gem 'tailwindcss-rails' # Tailwind CSS integration
# API and data handling
gem 'jbuilder' # Build JSON APIs with ease
gem 'pagy' # Pagination gem
# Authentication and security
gem 'bcrypt', '~> 3.1.7' # Use Active Model has_secure_password
# Utility gems
gem 'tzinfo-data', platforms: %i[ windows jruby ] # Timezone info for Windows/JRuby
gem 'bootsnap', require: false # Reduces boot times through caching
# Additional functionality
gem 'name_of_person', '~> 1.1' # Adds name methods to Person models
gem 'annotate', '~> 3.2' # Annotates Rails/ActiveRecord Models, routes, fixtures, etc.
gem 'active_link_to', '~> 1.0' # Create active links in views
gem 'friendly_id', '~> 5.5' # FriendlyId gem for slugging
gem 'liquid', '~> 5.5' # Liquid template engine for Ruby
gem 'solid_queue', '~> 0.9.0' # SolidQueue gem for background jobs
gem 'mission_control-jobs', '~> 0.3.1' # Mission Control gem for background jobs
# Development and test gems
group :development, :test do
gem 'debug', platforms: %i[ mri windows ], require: 'debug/prelude'
gem 'brakeman', require: false # Security vulnerability scanner
gem 'rubocop-rails-omakase', require: false # Ruby code style checker
end
# Development-only gems
group :development do
gem 'web-console' # Access console on exception pages
end
# Test-only gems
group :test do
gem 'capybara' # Integration testing tool
gem 'selenium-webdriver' # Browser automation framework
gem 'faker'
end
# Commented out gems (consider uncommenting if needed)
# gem 'redis', '>= 4.0.1' # Use Redis adapter for Action Cable in production
# gem 'kredis' # Higher-level data types in Redis
# gem 'image_processing', '~> 1.2' # Use Active Storage variants
gem 'acts-as-taggable-on', '~> 11.0'