Week 08 of 2026

Development log of Esc Collective website

9 items
  1. Upgrade the dependencies
  2. Add Emmet language server to development environment
  3. Write a spec for navigation
  4. Remove the "People" navigation item
  5. Do not italicize open-moji icon labels
  6. Strengthen the tone of first paragraph
  7. Improve the home page text
  8. Create an about section
  9. Make the About us more concise

Upgrade the dependencies

On by Tad Lispy

The highlight_code option is no longer recognized. We don't have any code snippets anyway.

index 7c5153d..1e0105c 100644
--- a/config.toml
+++ b/config.toml
@@ -16,7 +16,6 @@ build_search_index = true
=[markdown]
=# Whether to do syntax highlighting
=# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
-highlight_code = true
=bottom_footnotes = true
=
=[[taxonomies]]
index 676b193..e675c98 100644
--- a/flake.lock
+++ b/flake.lock
@@ -6,19 +6,24 @@
=          "devenv"
=        ],
=        "flake-compat": [
-          "devenv"
+          "devenv",
+          "flake-compat"
=        ],
=        "git-hooks": [
-          "devenv"
+          "devenv",
+          "git-hooks"
=        ],
-        "nixpkgs": "nixpkgs"
+        "nixpkgs": [
+          "devenv",
+          "nixpkgs"
+        ]
=      },
=      "locked": {
-        "lastModified": 1744206633,
-        "narHash": "sha256-pb5aYkE8FOoa4n123slgHiOf1UbNSnKe5pEZC+xXD5g=",
+        "lastModified": 1760971495,
+        "narHash": "sha256-IwnNtbNVrlZIHh7h4Wz6VP0Furxg9Hh0ycighvL5cZc=",
=        "owner": "cachix",
=        "repo": "cachix",
-        "rev": "8a60090640b96f9df95d1ab99e5763a586be1404",
+        "rev": "c5bfd933d1033672f51a863c47303fc0e093c2d2",
=        "type": "github"
=      },
=      "original": {
@@ -32,18 +37,20 @@
=      "inputs": {
=        "cachix": "cachix",
=        "flake-compat": "flake-compat",
+        "flake-parts": "flake-parts",
=        "git-hooks": "git-hooks",
=        "nix": "nix",
+        "nixd": "nixd",
=        "nixpkgs": [
=          "nixpkgs"
=        ]
=      },
=      "locked": {
-        "lastModified": 1747717470,
-        "narHash": "sha256-tk2mRZAf8C5uOkMVJHemJ3ld09CYVp/z94/lHqsQ8ZA=",
+        "lastModified": 1771243888,
+        "narHash": "sha256-5IRVa5JWTLVRMFOnkppPpcnVqQgLYOlQJ1rN4XzKkb4=",
=        "owner": "cachix",
=        "repo": "devenv",
-        "rev": "c7f2256ee4a4a4ee9cbf1e82a6e49b253c374995",
+        "rev": "8e5434f65d6ca1db21564ae4295208a064d9de17",
=        "type": "github"
=      },
=      "original": {
@@ -55,11 +62,11 @@
=    "flake-compat": {
=      "flake": false,
=      "locked": {
-        "lastModified": 1733328505,
-        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
+        "lastModified": 1761588595,
+        "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
=        "owner": "edolstra",
=        "repo": "flake-compat",
-        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+        "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
=        "type": "github"
=      },
=      "original": {
@@ -72,16 +79,15 @@
=      "inputs": {
=        "nixpkgs-lib": [
=          "devenv",
-          "nix",
=          "nixpkgs"
=        ]
=      },
=      "locked": {
-        "lastModified": 1712014858,
-        "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
+        "lastModified": 1760948891,
+        "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
=        "owner": "hercules-ci",
=        "repo": "flake-parts",
-        "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
+        "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
=        "type": "github"
=      },
=      "original": {
@@ -90,10 +96,26 @@
=        "type": "github"
=      }
=    },
+    "flake-root": {
+      "locked": {
+        "lastModified": 1723604017,
+        "narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=",
+        "owner": "srid",
+        "repo": "flake-root",
+        "rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "srid",
+        "repo": "flake-root",
+        "type": "github"
+      }
+    },
=    "git-hooks": {
=      "inputs": {
=        "flake-compat": [
-          "devenv"
+          "devenv",
+          "flake-compat"
=        ],
=        "gitignore": "gitignore",
=        "nixpkgs": [
@@ -102,11 +124,11 @@
=        ]
=      },
=      "locked": {
-        "lastModified": 1746537231,
-        "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=",
+        "lastModified": 1760663237,
+        "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
=        "owner": "cachix",
=        "repo": "git-hooks.nix",
-        "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969",
+        "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
=        "type": "github"
=      },
=      "original": {
@@ -137,107 +159,113 @@
=        "type": "github"
=      }
=    },
-    "libgit2": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1697646580,
-        "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
-        "owner": "libgit2",
-        "repo": "libgit2",
-        "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
-        "type": "github"
-      },
-      "original": {
-        "owner": "libgit2",
-        "repo": "libgit2",
-        "type": "github"
-      }
-    },
=    "nix": {
=      "inputs": {
=        "flake-compat": [
-          "devenv"
+          "devenv",
+          "flake-compat"
+        ],
+        "flake-parts": [
+          "devenv",
+          "flake-parts"
+        ],
+        "git-hooks-nix": [
+          "devenv",
+          "git-hooks"
+        ],
+        "nixpkgs": [
+          "devenv",
+          "nixpkgs"
=        ],
-        "flake-parts": "flake-parts",
-        "libgit2": "libgit2",
-        "nixpkgs": "nixpkgs_2",
=        "nixpkgs-23-11": [
=          "devenv"
=        ],
=        "nixpkgs-regression": [
=          "devenv"
-        ],
-        "pre-commit-hooks": [
-          "devenv"
=        ]
=      },
=      "locked": {
-        "lastModified": 1745930071,
-        "narHash": "sha256-bYyjarS3qSNqxfgc89IoVz8cAFDkF9yPE63EJr+h50s=",
-        "owner": "domenkozar",
+        "lastModified": 1770395975,
+        "narHash": "sha256-zg0AEZn8d4rqIIsw5XrkVL5p1y6fBj2L57awfUg+gNA=",
+        "owner": "cachix",
=        "repo": "nix",
-        "rev": "b455edf3505f1bf0172b39a735caef94687d0d9c",
+        "rev": "ccb6019ce2bd11f5de5fe4617c0079d8cb1ed057",
=        "type": "github"
=      },
=      "original": {
-        "owner": "domenkozar",
-        "ref": "devenv-2.24",
+        "owner": "cachix",
+        "ref": "devenv-2.32",
=        "repo": "nix",
=        "type": "github"
=      }
=    },
-    "nixpkgs": {
+    "nixd": {
+      "inputs": {
+        "flake-parts": [
+          "devenv",
+          "flake-parts"
+        ],
+        "flake-root": "flake-root",
+        "nixpkgs": [
+          "devenv",
+          "nixpkgs"
+        ],
+        "treefmt-nix": "treefmt-nix"
+      },
=      "locked": {
-        "lastModified": 1733212471,
-        "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
+        "lastModified": 1763964548,
+        "narHash": "sha256-JTRoaEWvPsVIMFJWeS4G2isPo15wqXY/otsiHPN0zww=",
+        "owner": "nix-community",
+        "repo": "nixd",
+        "rev": "d4bf15e56540422e2acc7bc26b20b0a0934e3f5e",
=        "type": "github"
=      },
=      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
+        "owner": "nix-community",
+        "repo": "nixd",
=        "type": "github"
=      }
=    },
-    "nixpkgs_2": {
+    "nixpkgs": {
+      "inputs": {
+        "nixpkgs-src": "nixpkgs-src"
+      },
=      "locked": {
-        "lastModified": 1717432640,
-        "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
+        "lastModified": 1770434727,
+        "narHash": "sha256-YzOZRgiqIccnkkZvckQha7wvOfN2z50xEdPvfgu6sf8=",
+        "owner": "cachix",
+        "repo": "devenv-nixpkgs",
+        "rev": "8430f16a39c27bdeef236f1eeb56f0b51b33d348",
=        "type": "github"
=      },
=      "original": {
-        "owner": "NixOS",
-        "ref": "release-24.05",
-        "repo": "nixpkgs",
+        "owner": "cachix",
+        "ref": "rolling",
+        "repo": "devenv-nixpkgs",
=        "type": "github"
=      }
=    },
-    "nixpkgs_3": {
+    "nixpkgs-src": {
+      "flake": false,
=      "locked": {
-        "lastModified": 1746807397,
-        "narHash": "sha256-zU2z0jlkJGWLhdNr/8AJSxqK8XD0IlQgHp3VZcP56Aw=",
-        "owner": "cachix",
-        "repo": "devenv-nixpkgs",
-        "rev": "c5208b594838ea8e6cca5997fbf784b7cca1ca90",
+        "lastModified": 1769922788,
+        "narHash": "sha256-H3AfG4ObMDTkTJYkd8cz1/RbY9LatN5Mk4UF48VuSXc=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "207d15f1a6603226e1e223dc79ac29c7846da32e",
=        "type": "github"
=      },
=      "original": {
-        "owner": "cachix",
-        "ref": "rolling",
-        "repo": "devenv-nixpkgs",
+        "owner": "NixOS",
+        "ref": "nixpkgs-unstable",
+        "repo": "nixpkgs",
=        "type": "github"
=      }
=    },
=    "root": {
=      "inputs": {
=        "devenv": "devenv",
-        "nixpkgs": "nixpkgs_3",
+        "nixpkgs": "nixpkgs",
=        "systems": "systems"
=      }
=    },
@@ -255,6 +283,28 @@
=        "repo": "default",
=        "type": "github"
=      }
+    },
+    "treefmt-nix": {
+      "inputs": {
+        "nixpkgs": [
+          "devenv",
+          "nixd",
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1734704479,
+        "narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=",
+        "owner": "numtide",
+        "repo": "treefmt-nix",
+        "rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "treefmt-nix",
+        "type": "github"
+      }
=    }
=  },
=  "root": "root",

Add Emmet language server to development environment

On by Tad Lispy

index ff26771..1f74473 100644
--- a/flake.nix
+++ b/flake.nix
@@ -35,6 +35,7 @@
=                  packages = [
=                    pkgs.zola
=                    pkgs.miniserve
+                    pkgs.emmet-ls
=                  ];
=                }
=              ];

Write a spec for navigation

On by Tad Lispy

Currently there is a bug that only manifests in production builds, i.e. with zola build. The Home link always points to the currently viewed page, i.e. not necessarily home. The URL in href attribute is empty. Bizarrely when serving the website with zola serve it's fine.

I intend to use Tad Better Behavior to make sure it won't happen again.

new file mode 100644
index 0000000..25509d2
--- /dev/null
+++ b/spec/top-navigation.md
@@ -0,0 +1,68 @@
+# Top Navigation
+
+On top of the page there is a small navigation element with main sections of the website. This suite makes sure that the links behave as they should.
+
+
+## From home to home
+
+I.e. stay where you are.
+
+  * Navigate to `/`
+  * Follow the `Home` link
+  * The path is `/`
+
+
+## From home to people
+
+  * Navigate to `/`
+  * Follow the `People` link
+  * The path is `/people`
+
+
+## From home to services
+
+  * Navigate to `/`
+  * Follow the `Services` link
+  * The path is `/services`
+
+
+## From people to home
+
+  * Navigate to `/people`
+  * Follow the `Home` link
+  * The path is `/`
+
+
+## From people to people
+
+  * Navigate to `/people`
+  * Follow the `People` link
+  * The path is `/people`
+
+
+## From people to services
+
+  * Navigate to `/people`
+  * Follow the `Services` link
+  * The path is `/services`
+
+
+## From services to home
+
+  * Navigate to `/services`
+  * Follow the `Home` link
+  * The path is `/`
+
+
+## From services to people
+
+  * Navigate to `/services`
+  * Follow the `People` link
+  * The path is `/people`
+
+
+## From services to services
+
+  * Navigate to `/services`
+  * Follow the `Services` link
+  * The path is `/services`

Remove the "People" navigation item

On by Tad Lispy

The group disbanded, so there is no point to keep it.

index 1e0105c..a37dd7a 100644
--- a/config.toml
+++ b/config.toml
@@ -38,10 +38,6 @@ label = "Home"
=class = "green-accent"
=path = "_index.md"
=[[extra.navigation]]
-label = "People"
-class = "yellow-accent"
-path = "people/_index.md"
-[[extra.navigation]]
=label = "Services"
=class = "blue-accent"
=path = "services/_index.md"

Do not italicize open-moji icon labels

On by Tad Lispy

They are wrapped in an element, but should have same font style as surrounding element.

index af0b17e..3b1e66d 100644
--- a/static/openmoji-preamble.css
+++ b/static/openmoji-preamble.css
@@ -32,6 +32,7 @@ licensed under MIT: https://ellekasai.mit-license.org/
=i.om:not(:empty) {
=    display: inline;
=    margin: 0;
+	font-style: inherit;
=
=    padding-left: var(--moji-base-size);
=    background-position: 0 center;

Strengthen the tone of first paragraph

On by Tad Lispy

Also make it more positive, stressing freedom over moving away.

index d66b7e5..12363b0 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -1,7 +1,7 @@
=---
=---
=
-Move away from big tech. Stay in control of your tools, your data, and your values. {% om (moji="call me hand", position="end", size="4x") %}[Book a call to learn more](https://cal.com/tad-lispy/esc-co-intro){% end %}
+Free your organization from foreign big tech providers. Stay in control of **your tools**, **your data**, and **your values**. {% om (moji="call me hand", position="end", size="4x") %}[Book a call to learn more](https://cal.com/tad-lispy/esc-co-intro){% end %}
=
={{ table_of_contents() }}
=

Improve the home page text

On by Tad Lispy

index 12363b0..2c18371 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -25,14 +25,12 @@ For many mission-led teams, that's no longer acceptable.
=
=# {{ om(moji="handshake" size="2x") }} What we do
=
-ESC Collective helps you move to European and open source alternatives without the complexity.
+ESC Collective helps you move to European and open source alternatives, taking care of the operational complexity. We offer tailored solutions to seamlesly transition your organization from monopolistic platforms to ethical tools that:
=
-We guide you through the transition from proprietary platforms to ethical tools that:
-
-- Guarantee confidentiality and intellectual property
-- Are cost-effective over the long term
-- Support open standards, reducing the risk of vendor lock-in
-- Are easy to learn and use without in-house IT
+- Guarantee confidentiality of your sensitive business information;
+- Are more economic over the long term;
+- Support open standards, reducing the risk of vendor lock-in;
+- Are easy to learn and use without in-house IT.
=
=[You can read more about our services here](@/services/_index.md).
=
@@ -42,7 +40,7 @@ We guide you through the transition from proprietary platforms to ethical tools
=
=# How it works
=
-We don't drop a list of tools and walk away. We work with you from start to finish.
+We will work with you from start to finish, making sure that the solutions we provide fit your business needs.
=
={% wrap_with(tag="div", class="full-bleed card-list card-rows-4") %}
=1. Understand
@@ -79,10 +77,9 @@ We're built for organisations with long-term goals, and who care about autonomy,
=
=# {{ om(moji="glowing star" size="2x") }} Why Esc Collective?
=
-* We're a cooperative, not a corporation
-* We rely on cloud infrastructure in countries with strict privacy regulations
-* We offer support in multiple languages
-* We do the migration work so you don't have to
+  * A co-operative of passionate IT professionals.
+  * IT infrastructure in countries with strict privacy regulations.
+  * Support in multiple languages.
=
=You're not stuck. There are better tools. And you don't need to figure them out alone.
=

Create an about section

On by Tad Lispy

To temporarily replace People. They might get merged when we re-activate.

index a37dd7a..d67fa8f 100644
--- a/config.toml
+++ b/config.toml
@@ -38,6 +38,10 @@ label = "Home"
=class = "green-accent"
=path = "_index.md"
=[[extra.navigation]]
+label = "About"
+class = "yellow-accent"
+path = "about/_index.md"
+[[extra.navigation]]
=label = "Services"
=class = "blue-accent"
=path = "services/_index.md"
new file mode 100644
index 0000000..dee479c
--- /dev/null
+++ b/content/about/_index.md
@@ -0,0 +1,6 @@
+---
+title: About Esc Collective
+---
+
+
+The mission of Esc Collective is to provide commercial support to European organizations adopting free and open-source technologies. We aim to create a Europe-wide co-operative, owned and controlled by IT professionals dedicated to support and protect European values on the digital front. By providing high-quality enterprise solutions we hope to contribute to digital independence of our institutions and communities.

Make the About us more concise

On by Tad Lispy

index dee479c..ee9552b 100644
--- a/content/about/_index.md
+++ b/content/about/_index.md
@@ -3,4 +3,4 @@ title: About Esc Collective
=---
=
=
-The mission of Esc Collective is to provide commercial support to European organizations adopting free and open-source technologies. We aim to create a Europe-wide co-operative, owned and controlled by IT professionals dedicated to support and protect European values on the digital front. By providing high-quality enterprise solutions we hope to contribute to digital independence of our institutions and communities. 
+The mission of Esc Collective is to provide high-quality, enterprise solutions to European organizations adopting free and open-source technologies. We aim to create a Europe-wide co-operative, owned and controlled by IT professionals. We are dedicated to support and protect European values on the digital front.