No description
  • TypeScript 70.2%
  • Nix 25.4%
  • HTML 4.2%
  • CSS 0.2%
Find a file Use this template
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-05 20:17:39 +02:00
apps/web (feat): update navbar logo 2026-07-30 14:49:48 +02:00
packages/mtp Add template 2026-07-29 15:28:20 +02:00
.envrc Add template 2026-07-29 15:28:20 +02:00
.gitignore Add template 2026-07-29 15:28:20 +02:00
.prettierignore Add template 2026-07-29 15:28:20 +02:00
flake.lock Add template 2026-07-29 15:28:20 +02:00
flake.nix (feat): update methanium ui 2026-07-30 15:18:23 +02:00
LICENSE Add template 2026-07-29 15:28:20 +02:00
package.json Add template 2026-07-29 15:28:20 +02:00
pnpm-lock.yaml (feat): update methanium ui 2026-07-30 15:18:23 +02:00
pnpm-workspace.yaml (feat): update methanium ui 2026-07-30 15:18:23 +02:00
README.md Add template 2026-07-29 15:28:20 +02:00
renovate.json Add renovate.json 2026-08-05 20:17:07 +02:00
tsconfig.json Add template 2026-07-29 15:28:20 +02:00

Methanium Template

A pnpm React template with Vite, Tailwind CSS, Methanium UI, MTP, TanStack Router, and a base nix flake.

Development

nix develop
pnpm install
pnpm dev

Configure MTP

  1. Define the host's communication and data types in apps/web/type-maps.yaml.
  2. Set the connection options in apps/web/src/mtp-options.ts.

The reusable provider and useMTP hook are in packages/mtp/.

Nix

Build the static frontend:

nix build

To serve it with nginx on NixOS, import the included module:

{
  inputs.methanium-template.url =
    "git+https://git.methanium.net/methanium/template";

  outputs = {nixpkgs, methanium-template, ...}: {
    nixosConfigurations.host = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        methanium-template.nixosModules.default
        {
          services.methanium-template = {
            enable = true;
            hostName = "app.example.com";
            openFirewall = true;
          };
        }
      ];
    };
  };
}