This is why I felt the decision to remove node from the base setup has been a great leadership decision. Once, node is in - why just esbuild via npm? why not webpack? why not snowpack? why not vitejs ? The options will be too many with no clear winner.
If going via the npm route - I would think instead of esbuild, better to go with vitejs, as vitejs uses esbuild under the hood and we get even postcss support right away. Just for the record A proof-of-concept integration of Vite.js (modern JS/assets bundler) with Phoenix + Liveview - #2 by 50kudos this post worked well for replacing webpack with postcss. The performance in development looked similar to what we are getting via esbuild.