Current section

Files

Jump to
tidewave mix.exs
Raw

mix.exs

defmodule Tidewave.MixProject do
use Mix.Project
@source_url "https://github.com/tidewave-ai/tidewave_phoenix"
@homepage_url "https://tidewave.ai/"
@version "0.6.1"
def project do
[
app: :tidewave,
version: @version,
elixir: "~> 1.15",
start_permanent: Mix.env() == :prod,
deps: deps(),
package: package(),
elixirc_paths: if(Mix.env() == :test, do: ["lib", "test/support"], else: ["lib"]),
aliases: [
tidewave:
"run --no-halt -e 'Agent.start(fn -> Bandit.start_link(plug: Tidewave, port: 4000) end)'"
],
# Docs
name: "Tidewave",
source_url: @source_url,
homepage_url: @homepage_url,
docs: &docs/0
]
end
def application do
[
mod: {Tidewave.Application, []},
extra_applications: [:logger]
]
end
defp package do
[
description: "Tidewave for Phoenix",
maintainers: ["Steffen Deusch"],
licenses: ["Apache-2.0"],
links: %{
"Tidewave" => @homepage_url,
"GitHub" => @source_url
}
]
end
defp deps do
[
{:plug, "~> 1.17"},
{:jason, "~> 1.4"},
{:circular_buffer, "~> 0.4 or ~> 1.0"},
{:igniter, "~> 0.6", optional: true},
# We require v1.6.1 to detect if phoenix live reload is running too early or late
{:phoenix_live_reload, ">= 1.6.1", optional: true},
# Dev deps
{:bandit, "~> 1.10", only: [:dev, :test]},
{:ex_doc, ">= 0.0.0", only: :dev},
{:makeup_syntect, ">= 0.0.0", only: :dev}
]
end
defp docs do
[
api_reference: false,
main: "installation",
logo: "logo.svg",
footer: false,
assets: %{"pages/assets" => "assets"},
filter_modules: fn mod, _ ->
raise "you forgot to add \"@moduledoc false\" to #{inspect(mod)}"
end,
extras: [
"pages/installation.md",
"pages/features/accessibility.md",
"pages/features/browser_app.md",
"pages/features/code_review.md",
"pages/features/git.md",
"pages/features/inspector.md",
"pages/features/mermaid.md",
"pages/features/notifications.md",
"pages/features/spaces.md",
"pages/features/task_board.md",
"pages/features/teams.md",
"pages/features/ui_variants.md",
"pages/features/viewport.md",
"pages/features/vision_mode.md",
"pages/features/voice_input.md",
"pages/providers/claude_code.md",
"pages/providers/github_copilot.md",
"pages/providers/codex.md",
"pages/providers/opencode.md",
"pages/providers/third_party.md",
"pages/integrations/editors.md",
"pages/integrations/figma.md",
"pages/integrations/frontend.md",
"pages/guides/containers.md",
"pages/guides/custom_domains.md",
"pages/guides/https.md",
"pages/guides/prompting_tips.md",
"pages/guides/security.md",
"pages/guides/remote_access.md",
"pages/mcp/mcp.md",
"pages/mcp/mcp_claude_code.md",
"pages/mcp/mcp_cursor.md",
"pages/mcp/mcp_neovim.md",
"pages/mcp/mcp_codex.md",
"pages/mcp/mcp_opencode.md",
"pages/mcp/mcp_vscode.md",
"pages/mcp/mcp_zed.md"
],
groups_for_extras: [
Providers: ~r/(pages\/providers\/.?)/,
Features: ~r/(pages\/features\/.?)/,
Integrations: ~r/(pages\/integrations\/.?)/,
Guides: ~r/(pages\/guides\/.?)/,
MCP: ~r/pages\/mcp\/.?/
],
redirects: %{
"react" => "frontend",
"vue" => "frontend",
"mcp_troubleshooting" => "mcp",
"providers" => "installation",
"tips_and_tricks" => "prompting_tips",
"subdomains" => "custom_domains"
},
before_closing_head_tag: fn _ ->
# Hide version nodes to avoid confusion between TidewaveApp and TidewavePhoenix.
# But we still keep go to latest.
"<style>.sidebar-projectVersion form label { display: none; }</style>"
end
]
end
end