Frontier (Frontier v0.2.1)

Copy Markdown

Smart boundary enforcement for Elixir projects.

Frontier enforces architectural boundaries using convention-based defaults. Context roots are public, schemas are auto-exported, and internal modules are private. You only configure exceptions.

Usage

# Project root — global config
defmodule MyApp do
  use Frontier,
    globals: [Result, Mailer],
    ignore: [SomeLegacyThing]
end

# Context root — zero config
defmodule MyApp.Accounts do
  use Frontier
end

# Context root — with restrictions
defmodule MyApp.Billing do
  use Frontier,
    reaches: [MyApp.Accounts],
    externals: [:stripe],
    exports: [InvoiceGenerator]
end