diff options
Diffstat (limited to 'tvix/website')
-rw-r--r-- | tvix/website/default.nix | 46 | ||||
-rw-r--r-- | tvix/website/landing-en.md | 39 |
2 files changed, 85 insertions, 0 deletions
diff --git a/tvix/website/default.nix b/tvix/website/default.nix new file mode 100644 index 000000000000..a2fc247e4a48 --- /dev/null +++ b/tvix/website/default.nix @@ -0,0 +1,46 @@ +{ depot, lib, pkgs, ... }: + +let + description = "Rust implementation of the purely-functional Nix package manager"; + + # https://developers.google.com/search/docs/advanced/structured-data/ + # https://schema.org/SoftwareApplication + structuredData = { + "@context" = "https://schema.org"; + "@type" = "SoftwareApplication"; + name = "Tvix"; + url = "https://tvix.dev"; + abstract = description; + applicationCategory = "DeveloperApplication"; + contributor = "https://tvl.fyi"; + image = "https://tvix.dev/logo.webp"; + }; + + # 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} + ''; + + extraHead = '' + <meta name="description" content="${description}"> + <script type="application/ld+json"> + ${builtins.toJSON structuredData} + </script> + ''; + }; + +in +pkgs.runCommand "tvix-website" { } '' + mkdir $out + cp ${landing} $out/index.html + cp ${depot.tvix.logo}/logo.webp $out/ +'' diff --git a/tvix/website/landing-en.md b/tvix/website/landing-en.md new file mode 100644 index 000000000000..4537fc7f2a3b --- /dev/null +++ b/tvix/website/landing-en.md @@ -0,0 +1,39 @@ +<img class="tvl-logo" src="./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/castore` - subtree storage/transfer in a content-addressed fashion +* `//tvix/cli` - preliminary REPL & CLI implementation for Tvix +* `//tvix/eval` - an implementation of the Nix programming language +* `//tvix/nar-bridge` - a HTTP webserver providing a Nix HTTP Binary Cache interface in front of a tvix-store +* `//tvix/nix-compat` - a Rust library for compatibility with C++ Nix, features like encodings and hashing schemes and formats +* `//tvix/serde` - a Rust library for using the Nix language for app configuration +* `//tvix/store` - a "filesystem" linking Nix store paths and metadata with the content-addressed layer +* ... 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: |