diff --git a/components/NetworkDiagram.vue b/components/NetworkDiagram.vue
new file mode 100644
index 0000000..78f81f7
--- /dev/null
+++ b/components/NetworkDiagram.vue
@@ -0,0 +1,414 @@
+
+
+
\ No newline at end of file
diff --git a/layout_diagram.drawio b/layout_diagram.drawio
new file mode 100644
index 0000000..9c0a029
--- /dev/null
+++ b/layout_diagram.drawio
@@ -0,0 +1 @@
+5Vtbk+IoFP41PrYVQm4+eum5VPVsdY0zOzNPW3SChp0YrARHnV+/YEgMIe2ktWNi75PhBBC+cz7OB+IATle79wlah59ogKOBaQS7AZwNTNMEtss/hGWfWTzgZIZlQoLMBI6GOfmNpdGQ1g0JcKpUZJRGjKxVo0/jGPtMsaEkoVu12oJG6reu0RJrhrmPIt36jQQslLMw3aP9AybLMP9m4IyyNyuUV5YzSUMU0G3JBO8HcJpQyrKn1W6KIwFejkvW7t0zb4uBJThmTRpsnDFzfPcp9b3JP6P1bBWE7A7aWTe/ULSRM5ajZfscgoRu4gCLXsAATrYhYXi+Rr54u+VO57aQrSL5OkBpWNRdRigV+Bv8uZi+KCxIFE1pRBNejmnMu5rIceCE4d2zMwQFbjzgMF1hlux5FdnAcSTUMtackSxvj54DeZ1Q8Zo0Ihkty6LvI6D8QWL6EnytN4RvQUqJr+Xq+FpmDb7QaQ1f2Ca+7cB4Z1ZgbBqmptcajOZLYDR6AaNpqTC6RlO2G63BCG4PRqsCo90DGI3bg7Eajc1hHLUFY65RSqjhgIsbWaQJC+mSxii6P1onKq7HOg+UriWA/2LG9lKpoQ2jKtZ4R9j30vMP0dXQtGVxtpNdHwr7vBDzCX8vF8rNRPnY7lDKG6YMJWwsdB43+CIdEj83vyNRPqgMCDH70+7lYNFN4uMTqErBxL9gidmJel59uCQ4Qoz8Usfx+q73+uN697TrFQ9KPpbdZ3TjvtGF7pNNHynhIyxWCVBRULbtDq2R2ks2BdmwrOcrffElRunLgabWVzZNrS8ON9qXqq1FhfTEsM3qsL2TQwPuZfUdqGxl+EM24iMhCpeczxFLT9Zf1xFFAbfx2MO1DHpAT3yDq0Q9isgyFqsPj0XMk8pE5BHCd5Bj+WJFgiAjGE7Jb/R06E+EtYSdd25PBvbsVCKS21vZeFBsKssUOLESPJu2jKHhQRk0F8Y2VFxYZJ+8A7pYpJhV3PoqjtS3sHOccAy5bbzEMvLP1g6vLBdyRpg18qBu69TazgnosI0DEfvzkM+iy/RhDO1yAmkoHIaFVPiR99dUN7SfdZyGWcfuUjQ4WkB8JmtGAh4MxjQiPWVS7SHPdZmk7046Yws4iy3GH9jyikzwrqS/LpPPTpce7WDn1P4K2NTvptWl4z1tCfyGn1Lq/xTKxfgoBN5CLG99Wgfz7UDl8Lt7hWHaN88it2csGt0Ei0Yaiz58+fJ4awRyQNcEAqP+CIs3IcOBewvqIx9lJQtxStwCbdzu8w7QcLombZS80zDtgIGSdnqWdXLv/ZE2WeR2xRtL/y34b4K3xXGeMcMMkSitjY7bO9g7TUtjCKAHFGbK0rnHfO0f5MFu891ZgrHC3L4JxsbU7TTj5b+dlpg7o9v4zR3Gw2dQLjgLoeEpnL27kLTFlZOrncabui+5euGGibiMJ07l+6dhHK93Gka/NzZDPOJQ2ksRaPXu8AHqp9lfD9FnfEJ+SGIdRj571t5iIvJOmqUgcFjyE/oTVxzRzgF57fUyo8YXsDVf6BuaqciKSLQcP358+6545pJQ3QVK76qe0Q88pVb+jH2yrv3N5606x6leQuicN5a+hl22+Ct3hMuXh9tKq3BoVwLeaZYXQGtXXS19MXq4f3//1+x/FOiO5hY91N2rRrq+Dj0m1MepvlnvgdpxjWpc24Ye13ULudUWgLauuqc0ZogLnQsV9xXuztbg6YBmidFuC0/9cth8nzK8EhsZAR+SX3KTf+TQAXdAQ8BfHsC8ePyTU7bLPP5VDN7/Bw==
\ No newline at end of file
diff --git a/pages/index.vue b/pages/index.vue
index f0d775a..41bdd58 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -18,6 +18,30 @@
>.
+
+
+
How it works
+
+
+
+ Riptide relies on a server agent running locally on your machine as a
+ systemd service. This agent is responsible for managing the file
+ transfer and communicating with the Riptide server over a websocket
+ connection. When a downloader requests a file from you, the agent will
+ POST the file to the central server. The server will then begin to
+ stream the file to the downloader.
+
+ This process is entirely secure, running over https with complete
+ end-to-end encryption. Your server agent authenticates with a 256-bit
+ key, which is generated when you first install the agent. This key is
+ used for all authentication - so no one can pretend to be you or
+ upload a file.
+
+ We are entirely open source, and hosting your own central-api is
+ encouraged for those who want maximum security.
+
+