Tailwind JIT (Just In Time Engine) and Phoenix LiveView

You’re right, multiple tailwind configs (and esbuild ones, where the admin loads everything all at once but the main bundle for the app load big dependencies on demand).

# config.exs
config :tailwind,
  version: "3.3.2",
  default: [
    args: ~w(
      --config=tailwind.config.js
      --input=css/app.css
      --output=../priv/static/assets/app.css
    ),
    cd: Path.expand("../assets", __DIR__)
  ],
  admin: [
    args: ~w(
      --config=tailwind-admin.config.js
      --input=css/admin-app.css
      --output=../priv/static/assets/admin-app.css
    ),
    cd: Path.expand("../assets", __DIR__)
  ]

# dev.exs
  watchers: [
    tailwind: {Tailwind, :install_and_run, [:default, ~w(--watch)]},
    tailwind: {Tailwind, :install_and_run, [:admin, ~w(--watch)]}
  ]

# aliases in mix.exs
 "assets.deploy": [
        "tailwind default --minify",
        "tailwind admin --minify",
 ]

IIRC this is all that is needed.