Broadcast (self-hosted email marketing software)

Submitted by @geetfun

Self-hosted email software for marketing, automation sequence, and transactional email. Bring your own email provider like Amazon SES, Postmark, Sendgrid, and others. Alternative to Mailchimp, Kit, ActiveCampaign.

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'