#TODO
- Rewrite layout (http://css-tricks.com/snippets/css/a-guide-to-flexbox/)
- Rewrite server (-hapi, +http +st)
- Abort requests
- Stream updates (shoe)
- Set sent/received status on messages
- Custom Bootstrap build
- Cache data in localStorage
- File input > select image > upload to server > paste link to recipient
- Linkify links (markdown? maybe as an option)
- Add /date API to be able to sync client/server time
- Notification(s) on message (audio bell, change favico, message highlight/marker on unread)
- Add proper logging
- Update user timestamp periodically
- favico
- UI error handling + API error reporting
- Clean up dependencies + devDependencies (+ decide whether or not to commit bundle.js)
- Tests
- Test data + mock irc backend
- Code coverage
- Translate messages automatically
- Expand media, eg imgur, YouTube, spotify (convert spotify:* to links)
- Auto convert /me messages
- Arrow up/down to cycle history
- Save message as draft
- Dark theme
- Submit messages on 'return' (toggle option)
- Take webcam picture (w/canvas preview) > upload to server > post link (http://shinydemos.com/photo-booth/)
- Store username in URL (https://www.npmjs.org/package/routes-router)
- Write HTTP tests
- Move argument validation/sanitation to router?