AnyCable+

Submitted by @palkan_tula

Yet another one-person Rails application

source "https://rubygems.org"

ruby "3.2.2"

# CORE
gem "rails", "~> 7.1.2"
gem "sqlite3", "~> 1.4"
gem "puma", ">= 5.0"
gem "litestack"
gem "anycable-rails-core"
gem "anycable-rails-jwt", "~> 0.2.0"
gem "action_policy"
gem "active_delivery", "~> 1.2"

# AUTHENTICATION
gem "omniauth"
gem "omniauth-github"
# Provides a mitigation against CVE-2015-9284 [https://github.com/cookpad/omniauth-rails_csrf_protection]
gem "omniauth-rails_csrf_protection"
gem "bcrypt"

# FRONTEND
gem "turbo-rails", "~> 1.0"
gem "propshaft"
gem "vite_rails"
gem "phlex_ui", path: "vendor/gems/phlex_ui"
gem "phlex-rails"
gem "inline_svg"
gem "actionview_attribute_builders", "~> 0.1.0"
# For emails CSS generation
gem "cssbundling-rails", github: "palkan/cssbundling-rails", branch: "patch-1"
# Inline mailer styles
gem "premailer-rails"
# Storybook
gem "lookbook", ">= 2.2.0", require: false
gem "view_component-contrib"
# Markdown / static pages
gem "markdown-rails"
gem "rouge"

# ADMIN
gem "avo", "~> 3.1", ">= 3.1.0"

# Rails extensions
gem "active_job-performs"
gem "active_record-associated_object"
gem "after_commit_everywhere"
gem "workflow"
gem "name_of_person"
gem "store_model"

# Dry plugins
gem "dry-initializer"
gem "dry-monads"

# MISC
gem "anyway_config"
gem "nanoid"
gem "bootsnap", require: false
gem "freezolite"
gem "ruby-next", "~> 1.0"
# Get rid of `GET /up` logs
gem "silencer", require: ["silencer/rails/logger"]

# Fake GraphQL API server for Fly.io
gem "graphql"

group :production do
  gem "sentry-ruby", "~> 5.15"
  gem "sentry-rails", "~> 5.15"
end

group :development, :test do
  gem "database_consistency", require: false
  gem "isolator"
  gem "debug"

  eval_gemfile "gemfiles/rubocop.gemfile"
end

group :development do
  gem "web-console"
  gem "dockerfile-rails", ">= 1.5"
  gem "letter_opener_web"
end

group :test do
  gem "test-prof"
  gem "capybara"
  gem "capybara-email"
  gem "cuprite"
  gem "webmock"
  gem "vcr"
end