Para empezar, deberíamos establecer una estructura de directorio estándar de Erlang, que se parece a esto:
ebin/
include/
priv/
src/
El directorio ebin/ es donde irán los archivos una vez que se compilen. El directorio include/ se utiliza para almacenar archivos .hrl que se incluirán en otras aplicaciones; los archivos .hrl privados generalmente se guardan dentro del directorio src/. El directorio priv/ se utiliza para ejecutables que podrían tener que interactuar con Erlang, como controladores específicos y demás. En realidad, no utilizaremos ese directorio para este proyecto. Luego, el último es el directorio src/, donde se almacenan todos los archivos .erl.
En los proyectos estándar de Erlang, esta estructura de directorio puede variar un poco. Se puede agregar un directorio conf/ para archivos de configuración específicos, doc/ para la documentación y lib/ para las bibliotecas de terceros necesarias para que se ejecute su aplicación. Los diferentes productos Erlang del mercado suelen utilizar nombres diferentes a estos, pero los cuatro mencionados anteriormente suelen permanecer iguales dado que son parte de las prácticas OTP estándar.