Powerline is a popular solution for pimping out Vim and tmux, but sometimes you just want something simple you can easily hack. vim-neatstatus (GitHub: maciakl / vim-neatstatus) by Lukasz Grzegorz Maciak is just the thing -- it has a clear, colour changing mode indicator, and various bits of metadata about the current file.
To hook into mode changes, neatstatus adds autocommands to
InsertLeave. It then sets the statusline by setting
stl. Everything is broken into functions so it's easy to see how it works. In fact, if you want to customise your statusline without relying on something like Powerline, then you could use this as a template -- I did something similar for my tmux settings.