This repo contains the base app we use to get our Elixir / Phoenix apps started at NewAperio.
The goal of this repo is to enable our development teams to start fast with a solid foundation. This app is updated with new releases and includes the boilerplate configuration we typically use when bootstrapping new products.
The following technologies are included and configured with our defaults:
- Phoenix, the web framework
- Phoenix LiveView for server-rendered reactive UI
- Ecto for database integration
- ExUnit for testing
- ExDoc for rendering Elixir code documentation
- AssertIdentity for easy Ecto identity assertions in tests
- phx_gen_auth for a user authentication system
- Swoosh for sending emails
- Oban for background jobs
- asdf for managing runtime versions
- Docker for building release containers
- Mix Releases for compiling release binaries
- Sentry for error reporting
- GitHub Actions for CI
- GitHub Dependabot for automated security patches and weekly dep updates
- PostCSS for building CSS
- Tailwind, a CSS framework
- TypeScript for type-safe JS
- Alpine, a component JS framework that integrates with LiveView
- Sobelow for Phoenix security static analysis
- [Dialyzer] for Erlang/Elixir static analysis, including type-checking
- A suite of linters: Credo for Elixir, ESLint for JS, Stylelint for CSS, and Prettier for JS formatting
The repo is setup as a GitHub template to make it easy to get started.
- Click the "Use this template" button. This will setup a new repo with a clean history.
- Clone the new repo locally.
- Run the init script to rename the starter project and do some other housekeeping:
$ ./bin/init.sh MyApp my_app
. - Commit the result:
$ git add --all . && git commit -m "Initalize starter project"
.
To update a Phoenix app generated from this repo, you need to compare the changes between the version that initialized your repo and the current version.
You can find your current version in the .starter-version
file. This is the git tag that generated your app.
You can find changes in the CHANGELOG.
You can also check the diff on GitHub between your version and the latest version. There's a helpful script that will grab the version information and print out the URLs.
./bin/starter-version-info.sh
After updating make sure to update the version in .starter-version
with the tag you updated to.
Phoenix Starter is Copyright © 2020 NewAperio. It is free software, and may be redistributed under the terms specified in the LICENSE file.
PhoenixStarter is built by NewAperio, LLC.
NewAperio is a web and mobile design and development studio. We offer expert Elixir and Phoenix development as part of our portfolio of services. Get in touch to see how our team can help you.