diff --git a/Readme.md b/Readme.md
index b20eddbcb6..cbbc42f9d8 100644
--- a/Readme.md
+++ b/Readme.md
@@ -168,6 +168,7 @@ See [tests/Readme.md](tests/Readme.md) for more information.
 - [Programatically using the serial terminal](examples/serial.html)
 - [A Lua interpreter](examples/lua.html)
 - [Two instances in one window](examples/two_instances.html)
+- [Networking between browser windows/tabs using the Broadcast Channel API](examples/broadcast-network.html)
 - [Saving and restoring emulator state](examples/save_restore.html)
 
 Using v86 for your own purposes is as easy as:
diff --git a/examples/broadcast-network.html b/examples/broadcast-network.html
new file mode 100644
index 0000000000..c879c9c086
--- /dev/null
+++ b/examples/broadcast-network.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<title>Networking via Broadcast Channel API</title>
+
+<script src="../build/libv86.js"></script>
+<script>
+"use strict";
+
+window.onload = function()
+{
+    var emulator = window.emulator = new V86({
+        wasm_path: "../build/v86.wasm",
+        memory_size: 64 * 1024 * 1024,
+        vga_memory_size: 2 * 1024 * 1024,
+        screen_container: document.getElementById("screen_container"),
+        bios: {
+            url: "../bios/seabios.bin",
+        },
+        vga_bios: {
+            url: "../bios/vgabios.bin",
+        },
+        bzimage: {
+            url: "../images/buildroot-bzimage68.bin",
+        },
+        autostart: true,
+    });
+
+    var broadcast = new BroadcastChannel("v86-network");
+
+    broadcast.addEventListener("message", function(e) {
+        emulator.bus.send("net0-receive", e.data);
+    });
+    emulator.add_listener("net0-send", function(packet) {
+        broadcast.postMessage(packet);
+    });
+}
+</script>
+
+<div id="screen_container">
+    <div style="white-space: pre; font: 14px monospace; line-height: 14px"></div>
+    <canvas style="display: none"></canvas>
+</div>
+
+<pre>
+# Configure a static IP
+ifconfig eth0 up arp 10.5.0.x
+
+# Ping by IP
+ping 10.5.0.x
+
+# Run a DNS server and send a query (10.5.0.x for server, 10.5.0.y for record)
+echo "anotherhost 10.5.0.y" | dnsd -c - -v    - server
+nslookup -type=a anotherhost 10.5.0.x         - client
+
+# Telnet calculator
+socat TCP-L:23,fork exec:bc
+
+# Simple HTTP server
+socat TCP-L:80,crlf,fork system:'echo HTTP/1.1 200 OK;echo;lua /root/test.lua'
+</pre>