1# SPDX-FileCopyrightText: 2025 Norbert Melzer
2# SPDX-FileContributor: Norbert Melzer
3#
4# SPDX-License-Identifier: MIT
5{
6 description = "nobbz.dev - Website";
7
8 outputs = {
9 self,
10 nixpkgs,
11 nix-filter,
12 flake-parts,
13 ...
14 } @ inputs: let
15 systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"];
16 in
17 flake-parts.lib.mkFlake {inherit inputs;} {
18 inherit systems;
19
20 imports = [];
21
22 perSystem = {
23 config,
24 pkgs,
25 self',
26 inputs',
27 system,
28 ...
29 }: {
30 formatter = pkgs.writeShellScriptBin "formatter" ''
31 ${pkgs.lib.getExe pkgs.alejandra} .
32 yarn prettier -w .
33 '';
34
35 devShells.default = pkgs.mkShell {
36 packages = let
37 astro-ls = pkgs.writeShellScriptBin "astro-ls" ''exec yarn run astro-ls "$@"'';
38 mdx-language-server = pkgs.writeShellScriptBin "mdx-language-server" ''exec yarn run mdx-language-server "$@"'';
39 in
40 builtins.attrValues {
41 inherit (pkgs) nodejs_22 yarn2nix nil tailwindcss-language-server;
42 inherit (pkgs) pre-commit alejandra reuse;
43 inherit (pkgs.nodejs_22.pkgs) yarn typescript-language-server;
44 inherit astro-ls mdx-language-server;
45 };
46 };
47 };
48 };
49
50 inputs = {
51 nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable";
52 nix-filter.url = "github:numtide/nix-filter";
53 flake-parts.url = "github:hercules-ci/flake-parts";
54 };
55}