diff --git a/slides/chatserver.js b/slides/chatserver.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf73355453871452caffc0a24c3291f9da079f71
--- /dev/null
+++ b/slides/chatserver.js
@@ -0,0 +1,45 @@
+// Load the TCP Library
+net = require('net');
+ 
+// Keep track of the chat clients
+var clients = [];
+ 
+// Start a TCP Server
+net.createServer(function (socket) {
+ 
+  // Identify this client
+  socket.name = socket.remoteAddress + ":" + socket.remotePort 
+ 
+  // Put this new client in the list
+  clients.push(socket);
+ 
+  // Send a nice welcome message and announce
+  socket.write("Welcome " + socket.name + "\n");
+  broadcast(socket.name + " joined the chat\n", socket);
+ 
+  // Handle incoming messages from clients.
+  socket.on('data', function (data) {
+    broadcast(socket.name + "> " + data, socket);
+  });
+ 
+  // Remove the client from the list when it leaves
+  socket.on('end', function () {
+    clients.splice(clients.indexOf(socket), 1);
+    broadcast(socket.name + " left the chat.\n");
+  });
+  
+  // Send a message to all clients
+  function broadcast(message, sender) {
+    clients.forEach(function (client) {
+      // Don't want to send it to sender
+      if (client === sender) return;
+      client.write(message);
+    });
+    // Log it to the server output too
+    process.stdout.write(message)
+  }
+ 
+}).listen(5000);
+ 
+// Put a friendly message on the terminal of the server.
+console.log("Chat server running at port 5000\n");
\ No newline at end of file