How do things like Oban Pro work in Elixir?

If I have a premium version of a library in Elixir how does this work? The idea is just to trust that even though all the source code is available people will pay for it? Or does it have a separated repository for the paying customers?

The code of Oban Pro is not available publicly. The package is hosted in a private Hex repository for which you need an access key to be able to download from. Of course, when you actually have it and just fetch the dependency, you can just open it and the code is there, so a certain degree of trust is involved.


You would have to manually send any updates to whoever you’re sharing it with or host a sketchy server of your own. Sorta like sharing a Netflix password but more work :slight_smile:

1 Like

Private Hex packages.


it’s not, but it is available for subscribers. It came in handy a few times too to figure out problems, so I am glad they’re not obfuscating it either.

Generally there’s a lot of trust happening that people won’t just steal it and use across many projects or organizations or share publicly but, honestly, for most serious people and projects, it’s cost is not huge and you can easily afford paying for it, since the pricing is low. It just doesn’t make sense to spend effort trying to work around the licensing issue.


The most important element of trust to us is that you trust Oban Pro’s code. Having the source available, and auditable, lets Pro users know that it’s not a big tangled mess, and frequently it allows us to help people debug precisely what’s going wrong.

Frankly, distributing a compiled, obfuscated tarball would hinder our troubleshooting and do little to deter stealing. Other tactics like phoning home would be even worse for trust, and dedicated bad actors would surely work around that too.

So, we favor trusting the community, keeping a moving target, and backing it all up with ample support :slightly_smiling_face: