diff --git a/src/app/logs/logs.component.html b/src/app/logs/logs.component.html
index 04f5b84..edea95c 100644
--- a/src/app/logs/logs.component.html
+++ b/src/app/logs/logs.component.html
@@ -1 +1,11 @@
+
diff --git a/src/app/logs/logs.component.scss b/src/app/logs/logs.component.scss
index e69de29..3cc4d7a 100644
--- a/src/app/logs/logs.component.scss
+++ b/src/app/logs/logs.component.scss
@@ -0,0 +1,14 @@
+div {
+  display: block;
+  overflow: auto;
+  max-height: 100%;
+}
+
+ul {
+  max-height: inherit;
+  list-style-type: none;
+}
+
+.timestamp {
+  opacity: 0.37;
+}
diff --git a/src/app/logs/logs.component.ts b/src/app/logs/logs.component.ts
index f88ef54..b467282 100644
--- a/src/app/logs/logs.component.ts
+++ b/src/app/logs/logs.component.ts
@@ -1,5 +1,6 @@
 import { Component, OnInit } from '@angular/core';
 import { MarkdownService } from '../markdown.service';
+import { WebSocketService } from '../websocket.service';
 
 class Message {
   originator: string;
@@ -13,10 +14,23 @@ class Message {
   styleUrls: ['./logs.component.scss']
 })
 export class LogsComponent implements OnInit {
-  constructor(private markdownService: MarkdownService) {
+  messages: Message[] = [];
+  constructor(
+    private markdownService: MarkdownService,
+    private websocketService: WebSocketService
+  ) {}
+
+  convert(text: string) {
+    return this.markdownService.convertToHtml(text);
   }
 
   ngOnInit() {
+    this.websocketService.observeAnchor('message').subscribe(
+      (event) => {
+        this.messages.push(event.data);
+        event.data.message = this.convert(event.data.message);
+      }
+    );
   }
 
 }