realtime updates with appendData, scrollToEnd