about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2023-03-14T18·40+0300
committertazjin <tazjin@tvl.su>2023-03-14T21·59+0000
commit19c452875ee998222dbe4063fc5078f7789c210d (patch)
treea8b712e181945b5d1dcdd67bf6525115f19ee005
parent3370724062499ece9f4e841aba3564e96e95afbb (diff)
feat(tvix): add simple initial website r/6002
The website itself contains no useful information that we don't
already have published anywhere, but it's a decent landing place.

Mostly I want to have something on the root of tvix.dev, so that we
can start using it for other purposes.

Change-Id: Id2b4dabc7f6e4dd26b61484b86dbde2f39aa1719
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8296
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
-rw-r--r--tvix/website/default.nix32
-rw-r--r--tvix/website/landing-en.md36
-rw-r--r--tvix/website/tvix-logo.webpbin0 -> 82366 bytes
3 files changed, 68 insertions, 0 deletions
diff --git a/tvix/website/default.nix b/tvix/website/default.nix
new file mode 100644
index 0000000000..2dd939e8a9
--- /dev/null
+++ b/tvix/website/default.nix
@@ -0,0 +1,32 @@
+{ depot, lib, pkgs, ... }:
+
+let
+  # https://developers.google.com/search/docs/advanced/structured-data/logo
+  structuredData = {
+    "@context" = "https://schema.org";
+    "@type" = "Organisation";
+    url = "https://tvl.fyi";
+    logo = "https://static.tvl.fyi/latest/logo-animated.svg";
+  };
+
+  # All Tvix-related blog posts from the main TVL website
+  tvixPosts = builtins.filter
+    (post: !(post.draft or false) && (lib.hasInfix "Tvix" post.title))
+    depot.web.tvl.blog.posts;
+
+  postListEntries = map (p: "* [${p.title}](https://tvl.fyi/blog/${p.key})") tvixPosts;
+
+  landing = depot.web.tvl.template {
+    title = "Tvix - A new implementation of Nix";
+    content = ''
+      ${builtins.readFile ./landing-en.md}
+      ${builtins.concatStringsSep "\n" postListEntries}
+    '';
+  };
+
+in
+pkgs.runCommand "tvix-website" { } ''
+  mkdir $out
+  cp ${landing} $out/index.html
+  cp ${./tvix-logo.webp} $out/tvix-logo.webp
+''
diff --git a/tvix/website/landing-en.md b/tvix/website/landing-en.md
new file mode 100644
index 0000000000..5620800d92
--- /dev/null
+++ b/tvix/website/landing-en.md
@@ -0,0 +1,36 @@
+<img class="tvl-logo" src="./tvix-logo.webp"
+     alt="A candy bar in different shades of blue that says 'Tvix by TVL' on it">
+
+------------------
+
+Tvix is a new implementation of Nix, a purely-functional package manager. It
+aims to have a modular implementation, in which different components can be
+reused or replaced based on the use-case.
+
+Tvix is developed as a GPLv3-licensed open-source project by
+[TVL][], with source code available in the [TVL monorepo][].
+
+There are several projects within Tvix, such as:
+
+* `//tvix/eval` - an implementation of the Nix programming language
+* `//tvix/serde` - a Rust library for using the Nix language for config files
+* `//tvix/nix-compat` - a Rust library for compatbility with C++ Nix
+  features like encodings and hashing schemes
+* ... and a handful others!
+
+The language evaluator can be toyed with in [Tvixbolt][], and you can check out
+the [Tvix README][] ([GitHub mirror][gh]) for additional information on the
+project and development workflows.
+
+Developer documentation for some parts of Tvix is [available online][docs].
+
+[TVL]: https://tvl.fyi
+[TVL monorepo]: https://cs.tvl.fyi/depot/-/tree/tvix
+[Tvixbolt]: https://tvixbolt.tvl.su
+[Tvix README]: https://code.tvl.fyi/about/tvix
+[gh]: https://github.com/tvlfyi/tvix/
+[docs]: https://docs.tvix.dev
+
+-------------------
+
+Check out the latest Tvix-related blog posts from TVL's website:
diff --git a/tvix/website/tvix-logo.webp b/tvix/website/tvix-logo.webp
new file mode 100644
index 0000000000..07bffc18b7
--- /dev/null
+++ b/tvix/website/tvix-logo.webp
Binary files differ