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 glance | Better Fullstack | mix phx.new |
|---|---|---|
| What it is | Multi-ecosystem generator with an Elixir option set | Official Phoenix project generator |
| Phoenix version | Phoenix 1.7 (templates pin ~> 1.7.21) | Phoenix 1.8 |
| Defaults | Phoenix, Phoenix LiveView, or a plain Mix app; no asset pipeline | LiveView, Ecto, Tailwind with daisyUI, esbuild, LiveDashboard, Swoosh, Gettext |
| Databases | PostgreSQL, MySQL, or SQLite through Ecto | PostgreSQL (default), MySQL, MSSQL, or SQLite3 |
| Auth | Email and password session endpoints, Ueberauth, Guardian, or Pow | mix phx.gen.auth with magic-link login and sudo mode |
| Libraries | Oban, Quantum, Absinthe, gRPC, OpenApiSpex, Cachex, PromEx, Sentry, Ash, and more | Added to mix.exs after generation |
| Code generators | add command for catalog options | phx.gen.live, phx.gen.html, phx.gen.json, phx.gen.context, and more |
| Deployment | Docker, Fly.io, Gigalixir, or a Mix release | mix 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.
bun create better-fullstack@latestSee how Better Fullstack compares to other tools on the full comparison page.