Skip to content
πŸ’° A super fast money management app.
Branch: master
Clone or download
Latest commit 15b1c94 Feb 5, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Save Plaid items after authenticating. Jan 3, 2018
lib Use custom fkey for plaid item -> plaid account. Jan 3, 2018
priv Save Plaid items after authenticating. Jan 3, 2018
test Auto-formatting. Nov 23, 2017
.credo.exs Work on link. Dec 31, 2017
.formatter.exs Use Elixir 1.6 code formatting instead of ExFmt. Dec 14, 2017
.gitignore Setup for linking. Dec 22, 2017
LICENSE Initial commit Jul 25, 2017
Makefile Don't migrate on every deploy to save some time. Dec 8, 2017
Procfile More deploy stuff. Jul 28, 2017 Work on link. Dec 31, 2017
elixir_buildpack.config Use Elixir 1.5 for deploys. Aug 12, 2017
mix.exs Work on link. Dec 27, 2017
mix.lock Update lockfile Feb 5, 2018


A modern money management app written in Elixir, Phoenix, React, and Redux. Integrates with Plaid for auto-importing of transactions from thousands of banks and bank account types (checking, savings, investments, etc.)

Follow @leatherapp on Twitter for updates.


Run locally

  1. brew install elixir postgresql
  2. brew services start postgresql
  3. createuser leather --createdb
  4. git clone
  5. cd leather
  6. mix ecto.create
  7. mix phoenix.server
  8. Visit http://localhost:4000/.

With Plaid integration:

Create a .env file in the root of the project with the following contents:

export PLAID_CLIENT_ID=<plaid-client-id>
export PLAID_PUBLIC_KEY=<plaid-public-key>
export PLAID_SECRET=<plaid-secret>

Then run source .env && mix phoenix.server.

Automatic deploy to Heroku

You can click the button below to automatically deploy Leather to Heroku.



If you intend to use this instance securely, you must set the HOSTNAME environment variable so that WebSocket connections are restricted to your domain:

heroku config:set HOSTNAME="<your-domain>"

Manual deploy to Heroku

  1. heroku create <app-name>
  2. heroku buildpacks:set
  3. heroku buildpacks:add
  4. heroku addons:create heroku-postgresql:hobby-dev
  5. heroku config:set POOL_SIZE="18"
  6. mix phoenix.gen.secret
  7. heroku config:set SECRET_KEY_BASE="<generated-key-in-previous-step>"
  8. heroku domains:add <your-domain>
  9. heroku config:set HOSTNAME="<your-domain>"
  10. heroku config:set GZIP_ENABLED="true"

Integration with Plaid

  1. heroku config:set PLAID_CLIENT_ID='<plaid-client-id>'
  2. heroku config:set PLAID_PUBLIC_KEY='<plaid-public-key>'
  3. heroku config:set PLAID_SECRET='<plaid-secret>'
You can’t perform that action at this time.