# starter v0.3.2 - Table of Contents

> Composable project starters for Phoenix applications, built on Igniter

## Pages

- [README](readme.md)
- [Changelog](changelog.md)
- [MIT License](license.md)

## Modules

- [Starter](Starter.md): Composable project starters for Phoenix applications.
- [Starter.Helpers](Starter.Helpers.md): Conveniences for writing steps.

- [Starter.Runner](Starter.Runner.md): Expands and runs a starter's steps against an igniter.
- [Starter.Steps](Starter.Steps.md): Registry of Starter's built-in steps.
- [Starter.Versions](Starter.Versions.md): Fetches latest package versions from Hex, npm, GitHub, and the Oban Pro
docs site so generated dependencies start current instead of pinned to
whatever Starter shipped with.

## Mix Tasks

- [mix starter.add](Mix.Tasks.Starter.Add.md): Runs one or more `:add` steps by name.
- [mix starter.add.bun](Mix.Tasks.Starter.Add.Bun.md): Replaces the `esbuild` and `tailwind` asset pipeline with `bun`.
- [mix starter.add.credo](Mix.Tasks.Starter.Add.Credo.md): Adds `credo` as a dev/test dependency.
- [mix starter.add.dotenv_parser](Mix.Tasks.Starter.Add.DotenvParser.md): Adds `dotenv_parser` to load environment variables from a `.env` file.
- [mix starter.add.exsync](Mix.Tasks.Starter.Add.Exsync.md): Adds `exsync` to reload modules on file changes.
- [mix starter.add.libcluster](Mix.Tasks.Starter.Add.Libcluster.md): Adds `libcluster` for clustering Elixir nodes.
- [mix starter.add.mix_test_watch](Mix.Tasks.Starter.Add.MixTestWatch.md): Adds `mix_test_watch` to automatically run tests on file changes.
- [mix starter.add.oban_pro](Mix.Tasks.Starter.Add.ObanPro.md): Adds `oban_pro` for advanced background job processing features. Requires an Oban Pro license.
- [mix starter.add.pgvector](Mix.Tasks.Starter.Add.Pgvector.md): Adds `pgvector` support for vector similarity search in Postgres.
- [mix starter.add.quokka](Mix.Tasks.Starter.Add.Quokka.md): Adds `quokka`, a formatter plugin that rewrites code to match your Credo configuration.
- [mix starter.add.remixicons](Mix.Tasks.Starter.Add.Remixicons.md): Adds Remix Icons as a Tailwind plugin with `remix-#{ICON}` classes.
- [mix starter.add.uuidv7](Mix.Tasks.Starter.Add.Uuidv7.md): Adds `uuidv7` for time-sortable UUID primary keys. Updates the app's `Schema` module when present.
- [mix starter.gen](Mix.Tasks.Starter.Gen.md): Runs one or more `:gen` steps by name.
- [mix starter.gen.base_schema](Mix.Tasks.Starter.Gen.BaseSchema.md): Generates a `MyApp.Schema` module with sensible primary key and timestamp
defaults. Uses `UUIDv7` for primary keys when the `uuidv7` dependency is
present, `:binary_id` otherwise.

- [mix starter.gen.ecto_force_drop](Mix.Tasks.Starter.Gen.EctoForceDrop.md): Updates the `ecto.drop` alias in `mix.exs` to use `--force-drop`.
- [mix starter.gen.generator_defaults](Mix.Tasks.Starter.Gen.GeneratorDefaults.md): Defaults generators to `binary_id` primary keys and `utc_datetime_usec` timestamps, migrations included.
- [mix starter.gen.gigalixir](Mix.Tasks.Starter.Gen.Gigalixir.md): Generates Gigalixir deployment configuration: buildpacks, Procfile,
release scripts, and production SSL/endpoint config.
- [mix starter.gen.gigalixir_libcluster](Mix.Tasks.Starter.Gen.GigalixirLibcluster.md): Configures libcluster's Kubernetes strategy for clustering on Gigalixir.
- [mix starter.gen.gitignore](Mix.Tasks.Starter.Gen.Gitignore.md): Adds macOS system files to `.gitignore`, creating the file if needed.
- [mix starter.gen.minimal_app_layout](Mix.Tasks.Starter.Gen.MinimalAppLayout.md): Replaces the `Layouts.app/1` component with a minimal header-and-main layout.
- [mix starter.gen.minimal_home_page](Mix.Tasks.Starter.Gen.MinimalHomePage.md): Replaces the `phx.new` marketing home page with a minimal starting point,
and updates the generated page controller test to match.
- [mix starter.gen.mix_env_config](Mix.Tasks.Starter.Gen.MixEnvConfig.md): Adds `config :app, env: Mix.env()` to `config.exs` so the environment is readable at runtime.
- [mix starter.gen.pg_extensions](Mix.Tasks.Starter.Gen.PgExtensions.md): Generates a migration enabling common PostgreSQL extensions (citext, pg_trgm, unaccent, vector).
- [mix starter.gen.sort_deps](Mix.Tasks.Starter.Gen.SortDeps.md): Sorts the dependencies in `mix.exs` alphabetically by name.
- [mix starter.gen.tailwind_formatter](Mix.Tasks.Starter.Gen.TailwindFormatter.md): Generates a formatter that sorts Tailwind CSS classes in HEEx templates.
- [mix starter.new](Mix.Tasks.Starter.New.md): Generates `lib/mix/tasks/<app>.starter.ex` containing your project's starter.
- [mix starter.remove](Mix.Tasks.Starter.Remove.md): Runs one or more `:remove` steps by name.
- [mix starter.remove.agents_md](Mix.Tasks.Starter.Remove.AgentsMd.md): Removes the `AGENTS.md` file that `phx.new` generates.
- [mix starter.remove.daisy_ui](Mix.Tasks.Starter.Remove.DaisyUi.md): Removes the `:daisyui` Mix dependency and the CSS plugin blocks that `phx.new` generates.
- [mix starter.remove.live_title_suffix](Mix.Tasks.Starter.Remove.LiveTitleSuffix.md): Removes the `suffix=" · Phoenix Framework"` attribute from `<.live_title>` in the root layout.
- [mix starter.remove.theme_toggle](Mix.Tasks.Starter.Remove.ThemeToggle.md): Removes the theme toggle that `phx.new` generates: the theme scripts in the
root layout, and the `theme_toggle` component and its usage in `Layouts`.

- [mix starter.remove.topbar](Mix.Tasks.Starter.Remove.Topbar.md): Removes the topbar progress indicator that `phx.new` generates.
- [mix starter.run](Mix.Tasks.Starter.Run.md): Finds the starter generated by `mix starter.new` and runs it, passing all
flags through.

