You probably noticed that every now and then mix will talk about a file called name.app, where name is your application’s name.
This file is called an application specification and is used to define your application to the runtime environment. Mix creates this file automatically from the information in mix.exs combined with information it gleans from compiling your application.
When you run your application this file is consulted to get things loaded.
Your application does not need to use all the OTP functionality—this file will always be created and referred to. However, once you start using OTP supervision trees, stuff you add to mix.exs will get copied into the .app file.