Skip to content

btkostner/jumar

Repository files navigation

Jumar

Jumar

Jumar is a heavily opinionated Elixir boilerplate repository. It contains a ton of useful features and documentation explaining the how and why.

One of the goals of this project is to bookmark some good decisions I've learned over the years working in this space. I don't want to say this is "best practices" because truth be told, those change wildly based on the project's context. With that said, this project aims to start on the right foot and document the "why this way" decisions made in the process.

Features

Features marked with ✅ should be feature complete. Anything with 🟨 is a planned feature that is not yet complete.

Note

Jumar is currently a work in progress. Not all features are complete. If you have an idea or request, please open up a GitHub discussion.

Command Line Interface

  • ✅ CLI scripts written in Elixir
  • 🟨 Unique CLI command to start message consuming separately from web server

Database Layer

  • Cockroach DB usage via ecto
  • 🟨 Database multi tenant setup
  • ✅ Prefixed primary keys similar to Stripe (usr_abc123)

Web Server Layer

User Layer

  • ✅ User authentication via mix phx.gen.auth
  • 🟨 User organizationse
  • 🟨 User and organization permissions
  • 🟨 User notification preferences

Event Layer

Documentation Generation

Continuous Integration

Continuous Deployment

  • 🟨 Continuous integration with GitHub actions
  • ✅ Releasing via release-please
  • 🟨 Container building on PRs and releases
  • 🟨 Continuous deployment with GitHub actions to Fly.io

Documentation

Documentation for this project is hosted at https://jumar.btkostner.io. It is built and published on every merge to the main branch.