Slate
An Elixir Phoenix App Template we use @ Devato
Contents
Template Details
The app template comes with some common systems pre-configured, tested and ready to go.
Includes a Github Actions workflow that will run checks and optionally deploy on success.
Library | Description |
---|---|
Phoenix Framework | An Elixir web-framework that gives you peace of mind from development to production. |
Phoenix LiveView | Phoenix LiveView enables rich, real-time user experiences with server-rendered HTML. |
Phoenix LiveDashboard | LiveDashboard provides real-time performance monitoring and debugging tools for Phoenix. |
Ecto | A toolkit for data mapping and language integrated query for Elixir. |
phx_gen_auth | An authentication system generator for Phoenix 1.5+ applications. |
Oban | Robust job processing in Elixir, backed by modern PostgreSQL. |
ExUnit | Unit testing framework for Elixir. |
ExMachina | ExMachina makes it easy to create test data and associations. |
Faker | Faker is a pure Elixir library for generating fake data. |
ExCoveralls | An Elixir library that reports test coverage statistics. |
Bamboo | Flexible and easy to use email for Elixir. |
Credo | A static code analysis tool for the Elixir language. |
TailwindCSS | A utility-first CSS framework for rapidly building custom designs. |
Getting Started
Fork or clone this repo: Generate Fork
Then, rename the app:
$ bin/rename MyApp (PascalCase)
This will re-write all modules and files to match your app.
Optional
Remove git repo to clean the Slate:
$ rm -rf .git
$ git init
$ git remote add origin <your-repo>
Helper Scripts
Setup the application:
$ bin/setup
Check formatting, credo and run tests
$ bin/test
Lint Assets:
$ bin/lint
Deploy
First determine which branch you'd like to use for staging
/ prod
.
- Customize
render.yaml
as needed. - Visit render.com, go to YAML in the navigation and hit "New From YAML"
- From here you can enter your secret key base etc.
Contributing
If you have some ideas on how to improve this template, feel free to create an issue or PR.