• Elixir Deploys with Make

    This is one of the first times I’ve used make, but I regret not using it more often. It’s pretty simple to get started and really powerful. This was a mix of a lot of different resources.

  • Elixir and Docker

    Elixir releases need to be built on the same system as they run on. Seems like Docker is perfect for building the releases and running them.

    Well, it’s prefect for building the release. Running in Docker can make some of the BEAM stuff harder, like live code updates and clustering. Looks like there are some solutions for both, but for now I don’t mind just restarting the Docker containers.

  • Building Releases with Distillery

    Seems like just running the app with mix is probably fine for now, but will make using a lot of the BEAM hard/impossible later. Also, the project has multiple apps, so making different builds for each seems like it might be a good idea.

  • Beanstalk with Terraform

    This took the longest time to get working. Partly because of my own typos :p. But, also because I wanted to setup everything with Terraform.

    The Beanstalk stack is just the basic Docker stack. I setup RDS for the database because both apps need it.

  • Deploying an Elixir Umbrella Application

    The plan; use Distillery to build the Elixir apps in a Docker container. Then create Docker containers with the compiled apps. Use those to deploy on AWS Beanstalk. Build the AWS Beanstalk setup with Terraform. And deploy through a Makefile to automate things.

    It’s a lot of setup to deploy an app!

  • Elixir Phoenix Partials

    How to create partials in Elixir with block like syntax. Like:

    = render_shared "page_header.html", title: "Listing Posts", body: fn ->
      = link "New Post", class: 'btn btn-sm btn-outline-secondary', to: post_path(@conn, :new)
    
  • Secret weapons

    Startups need secret weapons. Any advantage that a startup can leverage is important. My secret weapons might not be yours, but you’ll have your own.

    For software startups, the team, process, communication, and languages have the ability to accelerate the business and to be treated as secret weapons.