About Deno:

Deno is an open-source JavaScript runtime for the modern web. Built on web standards with zero-config TypeScript, unmatched security, and a complete built-in toolchain.

  • Kissaki@programming.devOP
    link
    fedilink
    English
    arrow-up
    0
    ·
    17 days ago

    I totally get the focus on avoiding “layers”, it’s something I’m very mindful of too.

    Thank you for the insight, I’ll have a closer look into it, although I’m a little bit skeptical about having to integrate additional extensions and workflows, which is it’s own bag of worms for maintainability, longevity, and complexity in general.

    • spartanatreyu@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      16 days ago

      although I’m a little bit skeptical about having to integrate additional extensions and workflows

      Just to allay your fears, it’s not a mishmash of random extensions and brittle workflows.

      11ty was originally built in a more all-in-one box style, but it was kind of annoying to have 10+ templating languages to choose from (and all the dependencies that came along with them), when you only wanted one.

      Every update, the author does two things:

      1. Splits more functionality into first party plugins
      2. Removes, or forks and takes over third party dependencies.

      You can see that here: (data taken from here: https://www.11ty.dev/blog/dependency-watch/#full-history)

      Version Deps (3rd-party) Change node_modules Size Change
      v0.2.0 (2018 January) First npm release! ×401 (400) n/a 51 MiB -
      v0.12.1 (2021 March) ×362 (360) -9.70% 68 MiB +33.30%
      v1.0.2 (2022 August) ×360 (357) -0.50% 71 MiB +4.40%
      v2.0.1 (2023 March) ×213 (208) -40.80% 35 MiB -50.70%
      v3.0.0 (2024 October) ×187 (174) -12.20% 27 MiB -22.80%
      v3.1.2 (2025 June) ×134 (123) -28.30% 21 MiB -22.20%
      v4.0.0-alpha.1 (2025 July) ×130 (116) -2.90% 16 MiB -23.80%
      v4.0.0-alpha.6 (2025 December) ×105 (89) -19.20% 14 MiB -12.50%

      The first-party plugins are all compatible with each other and all use the same 11ty config with the same sensible defaults, and 11ty is built with all of the first-party plugins in mind.

      You can add them all in if you still want the all-in-one-box approach, but this way lets your environments be smaller.

      It’s basically pre-computed tree shaking.

      There’s also a security argument for it. By splitting everything apart, you isolate security issues. If one of the random 10+ templating languages got a security issue (e.g. supply-chain attack, redos, misglobbing, etc…), it will only affect the projects that decided to use that templating language.