A treehouse on the internet.
For the best experience reading this README, please set the mood first.
Brilliant Fantastic is the personal website of Jamie Wright. It features a dual-theme experience — a clean brutalist "Brilliant" side and an expressive, playful "Fantastic" side — with a blog, contact form, and animated illustrations.
- Install the dependencies
mix deps.get
- Create the database
mix ecto.create
The app connects to Postgres as postgres/postgres on localhost:5432. If your Postgres
listens elsewhere, set DATABASE_PORT:
DATABASE_PORT=5452 mix ecto.create
If you see FATAL 28P01 (invalid_password), check the port before the credentials. That error
means something answered on 5432 and rejected the login — often another project's Postgres
(a Docker container, say) sitting on the default port. Confirm what is actually there:
docker ps | grep 5432
lsof -nP -iTCP:5432 -sTCP:LISTEN
Note that an unprivileged lsof will not list a container's listener, so check both.
Export DATABASE_PORT in your shell profile to avoid prefixing every command. CI runs Postgres
on 5432, which is why the default stays as it is.
- Start the Phoenix server
mix phx.server
Now you can visit localhost:4000 from your browser.
You can run the tests with the standard mix command:
mix test
The same DATABASE_PORT note from the installation section applies here.
You can also run the full precommit suite:
mix precommit
This runs compilation with warnings as errors, dependency audit, formatting, and tests.
This application is deployed to Gigalixir using buildpacks.
The application is automatically deployed to production when code is merged into the main branch. CI must pass before deployment is triggered.
The production application lives at https://bf.lol.
- Gigalixir for hosting
- Resend for transactional email
- Tailwind CSS for styling
- Install the Gigalixir CLI
brew tap gigalixir/brew && brew install gigalixir
- Log in
gigalixir login
- Add the git remote
gigalixir git:remote bf
- Deploy
git push gigalixir main:master
- Run migrations (if necessary)
gigalixir ps:migrate
- Clone the repository
git clone https://github.com/brilliantfantastic/bf - Create a feature branch
git checkout -b my-awesome-feature - Codez!
- Commit your changes (small commits please)
- Push your new branch
git push origin my-awesome-feature - Create a pull request