I think something like the matrix protocol would be better. I would be especially interested in not storing unencrypted user messages. Matrix would be a good choice for this.