RxAssim
ExInertia - Toolkit for Phoenix + Inertia.js Integration with Bun and Vite
I’m excited to announce ExInertia, a toolkit built on top of Igniter that provides a robust integration between Phoenix and Inertia.js, with first-class support for Routes library and Bun.
Technical Stack:
- Built on Igniter for powerful, composable installer generators
- Full Inertia.js integration with Phoenix using Inertiajs/inertia-phoenix
- Modern asset pipeline using Bun + Vite (replacing esbuild/tailwind)
- Built-in Routes integration for type-safe routing between Phoenix and TypeScript
- Automated manifest handling for Vite assets
Installation:
def deps do
[
{:exinertia, "~> 0.5.0"},
]
end
The installer, powered by Igniter (thanks @zachdaniel ), handles the complete setup:
mix exinertia.install
What gets installed:
- Vite manifest reader in your Web namespace
- Inertia pipeline + configuration in your Router
- Routes integration for type-safe routing
- Modified root layout with Vite asset handling
- Complete Bun + Vite setup replacing esbuild/tailwind
- TypeScript-ready frontend structure with Routes type definitions
- Automated mix aliases for asset building
Development Experience:
- Hot Module Replacement (HMR) with Vite
- TypeScript compilation with Bun
- Type-safe routing between Phoenix and TypeScript using Routes
- Seamless server-side rendering support
- Zero-configuration Tailwind integration
Type-safe routing example with Routes:
// Your routes are automatically typed!
const url = Routes.path('user.show', { id: 123 });
// => "/users/123"
// TypeScript error if you miss required params
const url = Routes.path('user.show'); // Error: missing id parameter
The project is built to be modular - you can use the installers independently or compose them with your own Igniter-based installers.
Resources:
- Documentation: HexDocs
- GitHub:
https://github.com/nordbeam/exinertia
Contributions and feedback are welcome! We’re particularly interested in hearing about different use cases and integration patterns.
Most Liked
zachdaniel
Looks awesome!
FYI your package can be installed without modifying the mix.exs file by anyone who already is using igniter with mix igniter.install exinertia and that’s the command we recommend to use when running installers as opposed to calling exinertia.install directly ![]()
Great work!
zachdaniel
Awesome! One small note is that mix igniter.install actually works even when igniter is not installed into a project, as long as igniter_new is installed as an archive.
So your instructions could be
# in your project directory
mix archive.install hex igniter_new
mix igniter.install exinertia
And then the user doesn’t have to manually edit even a single file ![]()
RxAssim
Thanks for the feedback! I’ve updated exinertia to make Igniter an optional dependency and modified the README to instruct users to install via mix igniter.install exinertia. This should help ensure Igniter remains a dev/test only dependency as intended.
Popular in Announcing
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









