Как хранить сообщения?
Используйте MarkDown разметку. 
Парсеров, преобразователей и чего только хотите под js - полно.
Вопрос в том, как правильно сохранять сообщения что бы они сохранялись с введенной пользователем разметкой
В HTML.Слышал что хранить HTML разметку в базе не самый лучший вариант
Если ограничить пользователя в <p>, <h>, <b>, <i> и обрезать весь JS, то всё будет хорошо.