Packages
phoenix_kit
1.7.13
1.7.207
1.7.206
1.7.205
1.7.204
1.7.203
1.7.202
1.7.201
1.7.200
1.7.199
1.7.198
1.7.197
1.7.196
1.7.194
1.7.193
1.7.192
1.7.191
1.7.190
1.7.189
1.7.187
1.7.186
1.7.185
1.7.184
1.7.183
1.7.182
1.7.181
1.7.180
1.7.179
1.7.178
1.7.177
1.7.176
1.7.175
1.7.174
1.7.173
1.7.172
1.7.171
1.7.170
1.7.169
1.7.168
1.7.167
1.7.166
1.7.165
1.7.164
1.7.162
1.7.161
1.7.160
1.7.159
1.7.157
1.7.156
1.7.155
1.7.154
1.7.153
1.7.152
1.7.151
1.7.150
1.7.149
1.7.146
1.7.145
1.7.144
1.7.143
1.7.138
1.7.133
1.7.132
1.7.131
1.7.130
1.7.128
1.7.126
1.7.125
1.7.121
1.7.120
1.7.119
1.7.118
1.7.117
1.7.116
1.7.115
1.7.114
1.7.113
1.7.112
1.7.111
1.7.110
1.7.109
1.7.108
1.7.107
1.7.106
1.7.105
1.7.104
1.7.103
1.7.102
1.7.101
1.7.100
1.7.99
1.7.98
1.7.97
1.7.96
1.7.95
1.7.94
1.7.93
1.7.92
1.7.91
1.7.90
1.7.89
1.7.88
1.7.87
1.7.86
1.7.85
1.7.84
1.7.83
1.7.82
1.7.81
1.7.80
1.7.79
1.7.78
1.7.77
1.7.76
1.7.75
1.7.74
1.7.71
1.7.70
1.7.69
1.7.66
1.7.65
1.7.64
1.7.63
1.7.62
1.7.61
1.7.59
1.7.58
1.7.57
1.7.56
1.7.55
1.7.54
1.7.53
1.7.52
1.7.51
1.7.49
1.7.44
1.7.43
1.7.42
1.7.41
1.7.39
1.7.38
1.7.37
1.7.36
1.7.34
1.7.33
1.7.31
1.7.30
1.7.29
1.7.28
1.7.27
1.7.26
1.7.25
1.7.24
1.7.23
1.7.22
1.7.21
1.7.20
1.7.19
1.7.18
1.7.17
1.7.16
1.7.15
1.7.14
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.20
1.6.19
1.6.18
1.6.17
1.6.16
1.6.15
1.6.14
1.6.13
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.5.2
1.5.1
1.5.0
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.10
1.2.9
1.2.8
1.2.7
1.2.5
1.2.4
1.2.2
1.2.1
1.2.0
1.1.0
1.0.0
A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more
Current section
Files
Jump to
Current section
Files
phoenix_kit
mix.exs
mix.exs
defmodule PhoenixKit.MixProject do
use Mix.Project
@version "1.7.13"
@description "PhoenixKit is a starter kit for building modern web applications with Elixir and Phoenix"
@source_url "https://github.com/BeamLabEU/phoenix_kit"
def project do
[
app: :phoenix_kit,
version: @version,
description: @description,
elixir: "~> 1.18",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
# Hex package configuration
package: package(),
# Documentation
docs: docs(),
# Testing
test_coverage: [tool: ExCoveralls],
# Aliases for development
aliases: aliases()
]
end
def cli do
[
preferred_env: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.post": :test,
"coveralls.html": :test
],
# Dialyzer configuration
dialyzer: [
plt_file: {:no_warn, "priv/plts/dialyzer.plt"},
plt_add_apps: [:ex_unit],
ignore_warnings: ".dialyzer_ignore.exs",
# Exclude test files from Dialyzer analysis
list_unused_filters: true
],
# Aliases for development
aliases: aliases()
]
end
# Library configuration - no OTP application
# The parent Phoenix application will handle supervision
def application do
[
extra_applications: [:logger, :ecto, :postgrex, :crypto, :gettext]
]
end
# Specifies which paths to compile per environment
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
# Dependencies - minimal and focused on library functionality
defp deps do
[
# Database
{:ecto_sql, "~> 3.10"},
{:postgrex, "~> 0.21.1"},
# Phoenix web layer
{:phoenix, "~> 1.8.1"},
{:phoenix_ecto, "~> 4.6"},
{:phoenix_html, "~> 4.0"},
{:phoenix_live_view, "~> 1.1.12"},
# Web functionality
{:gettext, "~> 1.0"},
{:plug_cowboy, "~> 2.5"},
{:esbuild, "~> 0.8", only: :dev},
{:tailwind, "~> 0.4.1", only: :dev},
{:phoenix_live_reload, "~> 1.6.1", only: :dev},
# Authentication
{:bcrypt_elixir, "~> 3.0"},
{:swoosh, "~> 1.19.5"},
{:gen_smtp, "~> 1.2"},
# OAuth authentication
{:oauth2, "~> 2.0"},
{:ueberauth, "~> 0.10"},
{:ueberauth_google, "~> 0.12"},
{:ueberauth_apple, "~> 0.1"},
{:ueberauth_github, "~> 0.8"},
{:ueberauth_facebook, "~> 0.10"},
# Development and testing
{:ex_doc, "~> 0.39", only: :dev, runtime: false},
{:usage_rules, "~> 0.1", only: :dev, runtime: false},
{:excoveralls, "~> 0.18", only: :test},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4.6", only: [:dev, :test], runtime: false},
{:floki, ">= 0.30.0", only: :test},
{:hackney, "~> 1.9"},
# Utilities
{:jason, "~> 1.4"},
{:earmark, "~> 1.4"},
{:yaml_elixir, "~> 2.9"},
{:uuidv7, "~> 1.0"},
{:oban, "~> 2.20"},
# Rate limiting (ETS backend is built into Hammer 6.x)
{:hammer, "~> 7.1"},
# DB Sync - WebSocket client for cross-site data sync
{:websockex, "~> 0.5.1"},
# AWS integration for emails
{:sweet_xml, "~> 0.7"},
{:ex_aws, "~> 2.4"},
{:ex_aws_sqs, "~> 3.4"},
{:ex_aws_sns, "~> 2.3"},
{:ex_aws_sts, "~> 2.3"},
{:ex_aws_s3, "~> 2.4"},
{:ex_aws_ec2, "~> 2.0"},
{:saxy, "~> 1.5"},
{:finch, "~> 0.18"},
# HTTP client for payment providers
{:req, "~> 0.5"},
# Code generation and project patching
# Note: Available in all environments for library code, but typically
# only needed in :dev when used as a dependency in parent projects
{:igniter, "~> 0.7"},
# Language and country data
{:beamlab_countries, "~> 1.0.5"}
]
end
# Package configuration for Hex.pm
defp package do
[
name: "phoenix_kit",
maintainers: ["BeamLab EU"],
licenses: ["MIT"],
links: %{"GitHub" => @source_url},
files: ~w(lib priv mix.exs README.md LICENSE CHANGELOG.md)
]
end
# Documentation configuration
defp docs do
[
name: "PhoenixKit",
source_ref: "v#{@version}",
source_url: @source_url,
main: "PhoenixKit",
extras: [
"README.md",
"CHANGELOG.md",
"guides/integration.md",
"guides/oauth_and_magic_link_setup.md",
"guides/aws_email_setup.md",
"guides/making-pages-live.md",
"guides/phk_blogging_format.md",
"guides/AUTH_HEADER_INTEGRATION.md",
"guides/draggable_list_component.md",
"guides/README.md"
],
groups_for_extras: [
Guides: ~r/guides\/.*/
],
groups_for_modules: []
]
end
# Development aliases
defp aliases do
[
setup: ["deps.get", "ecto.setup"],
"ecto.setup": ["ecto.create", "ecto.migrate"],
"ecto.reset": ["ecto.drop", "ecto.setup"],
# Code quality
quality: ["format", "credo --strict", "dialyzer"],
"quality.ci": ["format --check-formatted", "credo --strict", "dialyzer"]
]
end
end