Couldn't understand your comment well but I am making a SQLite library for Elixir (via Rust bindings) so that would be one less dependency on external systems. I happen to believe that most projects don't need a full-blown database server.
All the people from Elixir community I met, kept telling me "Mnesia sucks, use Postgres instead" through Ecto DSL of course. Same goes about pushing towards Redis and gRPC. Most of them will try to convince you to start using Phoenix instead... Also there are very little to no references on how to use e.g. Cowboy or Bandit without Plug DSL.
Bandit is coupled to Plug, so there isn't really a way to use it without Plug. But if you just don't want to use Plug.Router, you can always make your own router (with whatever perf implications that may or may not have). Plug.Router and Phoenix.Router are just middleware and Plug a middleware specification. You can do a case statement on `%Plug.Conn{}.request_path` or `.path_info`.
For Cowboy, what's wrong with the docs? Erlang translates to Elixir pretty cleanly (list comprehensions and records notwithstanding): prefix atoms with `:`, downcase variables, `%` maps, and `~c""` Erlang strings. If you're really itchy (as in the look of using atoms as modules makes you itchy), you can alias the Erlang modules as Elixir module atoms: `alias :cowboy_router, as: CowboyRouter`.