Learn how to deploy Elixir apps on Heroku

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • heroku-buildpack-elixir

    Heroku Buildpack for Elixir with nitro boost

  • But not all hope is lost, we have the ability to use custom buildpacks to support it ourselves. And there is one already available that Akash Manohar and his contributors built for us.

  • public-apis

    A collective list of free APIs

  • For this app, we'll use the public API of Coindesk to query the price of Bitcoin today. If you'd rather prefer to use a different API, you can find a list of public ones on this Github repo. The data that we're getting is really not that important for the purpose of this exercise.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • tesla

    The flexible HTTP client library for Elixir, with support for middleware and multiple adapters.

  • To integrate the API via Elixir let's use the HTTP wrapper Tesla. There are many good options out there, such as the good old Httpoison. However, Tesla has some added benefits. I won't go into details as it's not the purpose of this article, but it's worth checking out.

  • cowboy

    Small, fast, modern HTTP server for Erlang/OTP.

  • We are going to be using the light http server Cowboy and the adapter Plug to return our data.

  • plug

    Compose web applications with functions

  • If you're not familiar with it, feel free to check the inner workings of Plug in their documentation. For now, the code above is fairly self-explanatory I hope. All we need to know is that we're using the Plug.Router capabilities and exposing an endpoint /bpi which we're going to use to retrieve our data and to show it.

  • heroku-accounts

    Helps use multiple accounts on Heroku.

  • PRO TIP: If you happen to have an existing Heroku account that you do not want to use for this exercise, you can use the [heroku-accounts](https://github.com/heroku/heroku-accounts) plugin to manage multiple accounts easily.

  • simple-app-elixir

    Simple Elixir app to serve Coinbase Bitcoin API

  • I've put a full working version of the code on this Github repository, in case you want to compare with it or simply clone it and test it.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • heroku-buildpack-nodejs

    Heroku's buildpack for Node.js applications.

  • Heroku has this idea of buildpacks, which transform your code into a slug that can be run on their platform and abstract all the complexity.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts