# Mithril
[](https://semaphoreci.com/ir/mithril)
> An Elixir architecture-in-a-box for a backend server.
Mithril provides a foundation for a long-lived, maintainable, and highly
scalable backend server. It uses Elixir for reliability and scalability, and
a set of conventions to ensure that the backend server is maintainable over
the long term.
Mithril is not a framework. It has two parts:
1. **Project Generator**: A project generator which sets up your project
with good defaults and architecture.
2. **Conventions**: A set of conventions described in the Mithril
documentation. None of these conventions are new to the Elixir community.
Mithril simply explains existing tools and demonstrates best practices.
See [the documentation](https://hexdocs.pm/mithril) for details.
## Libraries Supported
Other than Elixir, Mithril does not dictate your technology choices.
However, the project generator can generate projects with support for
any of the libraries listed below.
| Name | Optional | Purpose |
| ---------------------------------------------------------------- | -------- | ------------------------------ |
| [Authority](https://github.com/infinitered/authority) | Yes | Authentication library |
| [Absinthe](https://absinthe-graphql.org) | Yes | GraphQL APIs (for mobile apps) |
| [Phoenix](https://phoenixframework.org) | Yes | HTTP/Websocket support |
| [Webpack](https://webpack.js.org/) / [Brunch](http://brunch.io/) | Yes | Front-end assets (JS/CSS) |
## Install
Mithril works best with Elixir 1.6. You can install Mithril like so:
```sh
$ mix archive.install hex mix_generator
$ mix archive.install hex mix_templates
$ mix template.install hex mithril
```
You can then generate your project:
```sh
$ mix gen mithril my_app [options]
```
See [the documentation](https://hexdocs.pm/mithril) for details on available options.
## Premium Support
[Infinite Red](https://infinite.red) offers premium support for this library and general web &
mobile app design/development services. Get in touch [here](https://infinite.red/contact) or email us at [hello@infinite.red](mailto:hello@infinite.red).
