Suggestion: Move stuff to independent applications

***
##### rule
> When you identify a block of functionality that is self-contained (it may be several modules or just a big one) and actually independent of the main purpose of your application, place that in a separate application. And consider open-sourcing it.

```erlang
%% bad
-module(github).
-export([all_org_repos/3, …]).

%% good (in Makefile)
DEPS = … egithub …
```

##### reasoning
It's easier to share among apps. If open-sourced, you're sharing it with the community and you get the benefits of the community being involved in it.