about summary refs log tree commit diff
path: root/web/tvl
diff options
context:
space:
mode:
Diffstat (limited to 'web/tvl')
-rw-r--r--web/tvl/default.nix76
-rw-r--r--web/tvl/static/favicon.webpbin0 -> 14710 bytes
-rw-r--r--web/tvl/static/virus_lounge.webpbin0 -> 77556 bytes
-rw-r--r--web/tvl/tvl.dot186
4 files changed, 262 insertions, 0 deletions
diff --git a/web/tvl/default.nix b/web/tvl/default.nix
new file mode 100644
index 000000000000..2321f2e00a0d
--- /dev/null
+++ b/web/tvl/default.nix
@@ -0,0 +1,76 @@
+{ depot, pkgs, ... }:
+
+let
+  inherit (pkgs) graphviz runCommandNoCC writeText;
+
+  tvlGraph = runCommandNoCC "tvl.svg" {
+    nativeBuildInputs = with pkgs; [ fontconfig freetype cairo jetbrains-mono ];
+  } ''
+    ${graphviz}/bin/neato -Tsvg ${./tvl.dot} > $out
+  '';
+
+  homepage = writeText "index.html" ''
+    <!DOCTYPE html>
+    <head>
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width, initial-scale=1">
+      <meta name="description" content="The Virus Lounge">
+      <link rel="stylesheet" type="text/css" href="/static/tazjin.css" media="all">
+      <link rel="icon" type="image/webp" href="/static/favicon.webp">
+      <title>The Virus Lounge</title>
+      <style>
+        svg {
+          max-width: inherit;
+          height: auto;
+        }
+      </style>
+    </head>
+    <body class="light">
+      <header>
+        <h1><a class="blog-title" href="/">The Virus Lounge</a> </h1>
+        <hr>
+      </header>
+
+      <main>
+        <img alt="The Virus Lounge" src="/static/virus_lounge.webp">
+      </main>
+
+      <p>
+        Welcome to <b>The Virus Lounge</b>. We're a random group of
+        people who feel undersocialised in these trying times, and
+        we've decided that there isn't enough spontaneous socialising
+        on the internet.
+      </p>
+
+      <hr>
+      <h2>Where did all these people come from?</h2>
+
+      <p>
+        It's pretty straightforward. Feel free to click on people, too.
+      </p>
+      ${builtins.readFile tvlGraph}
+
+      <hr>
+      <footer>
+        <p class="footer">
+          <a class="uncoloured-link" href="https://cs.tvl.fyi/depot/-/blob/README.md">code</a>
+          |
+          <a class="uncoloured-link" href="https://cl.tvl.fyi/">reviews</a>
+          |
+          <a class="uncoloured-link" href="https://b.tvl.fyi/">bugs</a>
+          |
+          <a class="uncoloured-link" href="https://todo.tvl.fyi/">todos</a>
+        </p>
+        <p class="lod">ಠ_ಠ</p>
+      </footer>
+    </body>
+  '';
+in runCommandNoCC "website" {} ''
+  mkdir -p $out/static
+  cp ${homepage} $out/index.html
+  cp -r ${./static}/* $out/static
+
+  # Some assets are stolen from tazjin's blog
+  cp ${depot.users.tazjin.homepage}/static/jetbrains-* $out/static
+  cp ${depot.users.tazjin.homepage}/static/tazjin.css $out/static
+''
diff --git a/web/tvl/static/favicon.webp b/web/tvl/static/favicon.webp
new file mode 100644
index 000000000000..42fdc7b44cfb
--- /dev/null
+++ b/web/tvl/static/favicon.webp
Binary files differdiff --git a/web/tvl/static/virus_lounge.webp b/web/tvl/static/virus_lounge.webp
new file mode 100644
index 000000000000..1f898b6ad8a7
--- /dev/null
+++ b/web/tvl/static/virus_lounge.webp
Binary files differdiff --git a/web/tvl/tvl.dot b/web/tvl/tvl.dot
new file mode 100644
index 000000000000..17f072ee9ccc
--- /dev/null
+++ b/web/tvl/tvl.dot
@@ -0,0 +1,186 @@
+digraph tvl {
+  node [fontname = "JetBrains Mono"];
+  overlap = false;
+  splines = polyline;
+
+  TVL [style="bold" href="http://tvl.fyi"];
+  tazjin -> TVL [style="bold"];
+
+  // people
+  subgraph {
+    adisbladis [href="http://nixos.expert/"];
+    andi [label="andi-" href="https://andreas.rammhold.de/"];
+    anon1 [color="grey" fontcolor="grey"];
+    aranea;
+    aurora [href="https://nonegenderleftfox.aventine.se/"];
+    benjojo [href="https://benjojo.co.uk/"];
+    camsbury [href="https://camsbury.com/"];
+    cynthia [href="https://cynthia.re/"];
+    edef [href="https://edef.eu/files/edef.hs"];
+    ericvolp [href="https://ericv.me"];
+    espes;
+    eta [href="https://theta.eu.org/"];
+    firefly [href="http://firefly.nu/"];
+    flokli [href="https://flokli.de/"];
+    ghuntley [href="https://ghuntley.com/"];
+    grfn [href="http://gws.fyi"];
+    htbf [href="https://htbf.dev/"];
+    hyperfekt [href="https://hyperfekt.net"];
+    implr [href="https://twitter.com/implring"];
+    Irenes [href="https://www.pluralpride.com/"];
+    isomer [href="https://www.lorier.net/"];
+    jooiiee [href="https://jooiiee.se/"];
+    jusrin [href="https://jusrin.dev/"];
+    kanepyork [href="https://social.wxcafe.net/@riking"];
+    leah2 [href="https://leahneukirchen.org/"];
+    lukegb [href="https://lukegb.com/"];
+    marcusr [href="http://marcus.nordaaker.com/"];
+    maskerad [href="https://femalelegends.com/"];
+    ncl;
+    nikky [href="http://nikky.moe/"];
+    nyanotech [href="https://twitter.com/nyanotech"];
+    poigon;
+    profpatsch [href="http://profpatsch.de/"];
+    puck [href="https://puckipedia.com/"];
+    qyliss [href="https://alyssa.is"];
+    rcombs [href="http://rcombs.me/"];
+    seven [href="https://open.spotify.com/user/so7"];
+    spacekookie [href="https://spacekookie.de/"];
+    tazjin [href="https://tazj.in/"];
+    wpcarro [href="https://wpcarro.dev/"];
+  }
+
+  // companies (blue)
+  subgraph {
+    node [color="#4285f4" fontcolor="#4285f4"];
+    spotify [href="https://www.spotify.com/"];
+    google [href="https://www.google.com/"];
+    urbint [href="https://www.urbint.com/"];
+  }
+
+  // communities? (red)
+  subgraph {
+    node [color="#db4437" fontcolor="#db4437"];
+    eve [href="https://www.eveonline.com/"];
+    nix [href="https://nixos.org/nix/"];
+    ircv3 [href="https://ircv3.net/"];
+    lgbtslack [label="lgbt.tech" href="https://lgbtq.technology/"];
+    muccc [label="µccc" href="https://muc.ccc.de/"];
+    afra [label="AfRA" href="https://afra-berlin.de/"];
+  }
+
+  // special
+  subgraph {
+    baby [color="pink" fontcolor="pink" href="https://cynthia.re/s/baby"];
+    unspecific [color="grey" fontcolor="grey"];
+  }
+
+  // primary edges (how did they end up in TVL?)
+  subgraph {
+    // Direct edges
+    nix -> tazjin;
+    spotify -> tazjin;
+    google -> tazjin;
+    eve -> tazjin;
+    unspecific -> tazjin;
+    edef -> tazjin;
+
+    // via nix
+    adisbladis -> nix;
+    jusrin -> nix;
+    ghuntley -> nix;
+    flokli -> nix;
+    andi -> nix;
+    profpatsch -> nix;
+
+    // via edef
+    benjojo -> edef;
+    espes -> edef;
+    firefly -> edef;
+    leah2 -> aurora;
+    ncl -> edef;
+    puck -> edef;
+    qyliss -> edef;
+    rcombs -> edef;
+
+    // via spotify
+    seven -> spotify;
+
+    // via google
+    htbf -> google;
+    Irenes -> google;
+    isomer -> google;
+    lukegb -> google;
+    wpcarro -> google;
+
+    // via urbint
+    grfn -> urbint;
+
+    // random primary
+    urbint -> wpcarro;
+    camsbury -> wpcarro;
+    anon1 -> google;
+    aurora -> eve;
+    cynthia -> benjojo;
+    eta -> anon1;
+    ericvolp -> lukegb;
+    jooiiee -> unspecific;
+    kanepyork -> lukegb;
+    marcusr -> unspecific;
+    maskerad -> unspecific;
+    nyanotech -> kanepyork;
+    poigon -> eve;
+    implr -> lukegb;
+    hyperfekt -> espes;
+    afra -> unspecific;
+    nikky -> afra;
+    spacekookie -> qyliss;
+  }
+
+  // secondary edges (how are they connected otherwise?)
+  subgraph {
+    edge [weight=0 style="dotted" color="grey" arrowhead="none"];
+
+    // lgbt slack
+    aurora -> lgbtslack;
+    leah2 -> lgbtslack;
+    edef -> lgbtslack;
+
+    // ircv3
+    eta -> ircv3;
+    firefly -> ircv3;
+
+    // µccc
+    leah2 -> muccc;
+
+    // random
+    leah2 -> edef;
+    lukegb -> isomer;
+    eta -> firefly;
+    cynthia -> firefly;
+    cynthia -> lukegb;
+    implr -> google;
+    kanepyork -> google;
+    nyanotech -> google;
+    lukegb -> benjojo;
+    espes -> benjojo;
+    espes -> aurora;
+    puck -> nix;
+    qyliss -> nix;
+    grfn -> nix;
+    edef -> nix;
+    aranea -> nix;
+    aranea -> profpatsch;
+    hyperfekt -> edef;
+    camsbury -> urbint;
+    spacekookie -> afra;
+    qyliss -> afra;
+  }
+
+  // baby
+  subgraph {
+    edge [weight=0 style="dotted" color="pink" arrowhead="none"];
+    cynthia -> baby;
+    eta -> baby;
+  }
+}