Compare

Better Fullstack vs mix phx.new

`mix phx.new` "creates a new Phoenix project". It is installed with `mix archive.install hex phx_new` and is versioned with Phoenix itself; the current release is 1.8.15, published on 2026-09-25. A default project includes LiveView, Ecto, Tailwind CSS with daisyUI, esbuild, LiveDashboard, a Swoosh mailer, Gettext, and an AGENTS.md file for coding agents.

Better Fullstack treats Elixir as one of its ecosystems. It generates a Phoenix app, with or without LiveView, or a plain Mix app from its own templates, with libraries such as Oban, Absinthe, Cachex, and PromEx chosen at the same time and checked for compatibility.

Facts about mix phx.new checked against its public repository and documentation on 2026-10-06.

At a glanceBetter Fullstackmix phx.new
What it isMulti-ecosystem generator with an Elixir option setOfficial Phoenix project generator
Phoenix versionPhoenix 1.7 (templates pin ~> 1.7.21)Phoenix 1.8
DefaultsPhoenix, Phoenix LiveView, or a plain Mix app; no asset pipelineLiveView, Ecto, Tailwind with daisyUI, esbuild, LiveDashboard, Swoosh, Gettext
DatabasesPostgreSQL, MySQL, or SQLite through EctoPostgreSQL (default), MySQL, MSSQL, or SQLite3
AuthEmail and password session endpoints, Ueberauth, Guardian, or Powmix phx.gen.auth with magic-link login and sudo mode
LibrariesOban, Quantum, Absinthe, gRPC, OpenApiSpex, Cachex, PromEx, Sentry, Ash, and moreAdded to mix.exs after generation
Code generatorsadd command for catalog optionsphx.gen.live, phx.gen.html, phx.gen.json, phx.gen.context, and more
DeploymentDocker, Fly.io, Gigalixir, or a Mix releasemix phx.gen.release --docker, plus official deployment guides

What mix phx.new gives you

Flags shape the project: `--database` picks postgres, mysql, mssql, or sqlite3, `--no-html` and `--no-assets` produce an API-only app, `--no-ecto`, `--no-mailer`, `--no-dashboard`, and `--no-gettext` drop those pieces, `--umbrella` splits the domain and web layers into separate apps, and `--adapter` chooses Bandit (the default) or Cowboy. The generated AGENTS.md can be skipped with `--no-agents-md`, and a precommit alias runs compilation with warnings as errors, formatting, and tests.

For a machine without Elixir, Phoenix also documents a one-line installer that installs Erlang, Elixir, and Phoenix and generates an app.

Generators after phx.new

Phoenix's generators are a large part of its workflow. `mix phx.gen.live`, `phx.gen.html`, and `phx.gen.json` generate a context, schema, migration, and LiveView, HTML, or JSON interface for a resource, and since Phoenix 1.8 they use scopes for data access. `mix phx.gen.auth` generates authentication, with magic links as the default login method and a sudo mode for sensitive actions. Others cover channels, presence, notifiers, and release files with a Dockerfile.

Keeping up with Phoenix releases

The Phoenix changelog lists deprecations and potential breaking changes for each release, and `mix local.phx` updates the generator. Community tools help with the rest: PhoenixDiff shows the difference between projects generated by two Phoenix versions, and Igniter, a code generation and project patching framework from the Ash project, can run upgrade patchers that packages provide.

Better Fullstack records your selections in bts.jsonc, and its update command plans template changes for review. Upgrades across Better Fullstack releases are not yet a supported path and require manual review.

What Better Fullstack adds

Libraries chosen at creation time: Oban or Quantum for jobs, Absinthe, gRPC, or OpenApiSpex for APIs, Channels and Presence, Swoosh or Bamboo, Cachex, Nebulex, or Redix, OpenTelemetry, PromEx, or Sentry, Mox, Bypass, Wallaby, StreamData, and ExMachina for tests, Credo, Dialyxir, Sobelow, and mix_audit for code quality, Ash, libcluster, and Docker, Fly.io, or Gigalixir deployment files.

An Elixir backend can also sit next to a TypeScript web frontend or a mobile app in a multi-ecosystem project.

Where mix phx.new is ahead

It generates the current Phoenix release, while Better Fullstack's templates pin Phoenix 1.7 and include no Tailwind or esbuild asset pipeline. Its phx.gen.auth output is a complete authentication system; Better Fullstack's phx-gen-auth option generates a small email-and-password flow with JSON session endpoints, not the output of mix phx.gen.auth. Phoenix's resource generators have no equivalent in Better Fullstack.

Pick mix phx.new for a Phoenix application that follows the official guides. Pick Better Fullstack when Phoenix is one service in a larger stack, or when you want a set of Elixir libraries wired in from the start.

Try the closest Better Fullstack equivalent

The elixir-phoenix-api preset scaffolds Phoenix with Ecto SQL, a REST API, Channels, and a Dockerfile: `bun create better-fullstack@latest my-app --template elixir-phoenix-api`. The elixir-liveview-full preset adds LiveView, auth, Absinthe, and Oban.

Frequently asked questions

Does Better Fullstack run mix phx.new?

No. It generates Elixir projects from its own templates, which currently pin Phoenix 1.7. mix phx.new generates Phoenix 1.8 projects.

Do both tools write files for coding agents?

Yes. mix phx.new writes an AGENTS.md with Phoenix guidelines unless you pass --no-agents-md. Better Fullstack can write CLAUDE.md, AGENTS.md, or .cursorrules describing the selected stack.

Which databases does each tool support?

mix phx.new supports PostgreSQL, MySQL, MSSQL, and SQLite3 through Ecto. Better Fullstack supports PostgreSQL, MySQL, and SQLite through Ecto.

Try it in the builder

Configure any stack visually and get a ready-to-run command - every combination is compatibility-checked.

Open the builderbun create better-fullstack@latest

See how Better Fullstack compares to other tools on the full comparison page.

GitHub Sponsors