diff --git a/content/meta/index.json b/content/meta/index.json index a2f0aac45..99372ec0d 100644 --- a/content/meta/index.json +++ b/content/meta/index.json @@ -6985,7 +6985,6 @@ "redirect.6b277e7e-93d3-4301-a7cd-30872674f2ff": [ "user.b8966985-d4b2-42a7-a319-2e94ccfbb849" ], - "shortcut.81d560f9-aa02-4691-b078-766110a08554": [], "shortcut.45ca7a46-646c-4ae4-83ff-0a7630e48ca6": [], "shortcut.91b0a545-47e6-47f6-8c91-312400be7975": [], "taxonomy_term.306b315a-03c4-4f06-a396-cf0906676d47": [], @@ -7116,5 +7115,12 @@ ], "path_alias.209fea7d-3a92-4586-8514-63f514ac7ef5": [ "node.5c2e8f95-6484-42f6-a1e7-63734d1fd405" + ], + "node.7d1bee5e-19f0-4e40-b24a-6bbd162432d3": [ + "user.b8966985-d4b2-42a7-a319-2e94ccfbb849", + "node.c74de3cf-5362-4d08-935a-a9d0d22fcb94" + ], + "path_alias.82570ab1-60ad-4b41-b5a1-da92bc8e676e": [ + "node.7d1bee5e-19f0-4e40-b24a-6bbd162432d3" ] } \ No newline at end of file diff --git a/content/node.7d1bee5e-19f0-4e40-b24a-6bbd162432d3.yml b/content/node.7d1bee5e-19f0-4e40-b24a-6bbd162432d3.yml new file mode 100644 index 000000000..4b65857f4 --- /dev/null +++ b/content/node.7d1bee5e-19f0-4e40-b24a-6bbd162432d3.yml @@ -0,0 +1,81 @@ +uuid: + - value: 7d1bee5e-19f0-4e40-b24a-6bbd162432d3 +langcode: + - value: en +type: + - target_id: daily_email + target_type: node_type + target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 +revision_timestamp: + - value: '2025-07-19T22:39:30+00:00' +revision_uid: + - target_type: user + target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 +revision_log: { } +status: + - value: true +uid: + - target_type: user + target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 +title: + - value: 'Nix and the Dendritic pattern' +created: + - value: '2025-07-17T22:38:53+00:00' +changed: + - value: '2025-07-19T22:39:30+00:00' +promote: + - value: false +sticky: + - value: false +default_langcode: + - value: true +revision_translation_affected: + - value: true +path: + - alias: '' + pid: null + langcode: en +body: + - value: |- + As I wrote yesterday, [no two Nix configurations are the same][0]. + + As well as having different packages and configuration options, Nix configurations can all be structured differently - similar to Drupal websites. + + Some are simple and others are very complex and manage many systems. + + A lot of people will publish their dotfiles/Nix/NixOS configurations online for others to read and take inspiration from. + + I was reading someone's code yesterday and found a pattern they wrote about called [the Dendritic pattern][2]. + + Using the flake-parts module system, every file when using this pattern is a flake-parts module. + + This is different to most configurations, where only some files are modules and others are imported as needed within other files. + + From another perspective, [having consistency][1] and following a strict convention makes things like auto-importing modules possible. + + I like it solves a problem, making configurations easier to maintain as each file is responsible for adding one feature and are self-contained so things can easily be re-organised. + + If I was writing my configuration from scratch, this is the approach I'd take. + + Or, I may start looking to refactor my current configuration soon to be based on this pattern. + + [0]: /daily/2025/07/16/drupal-and-nix-similarities + [1]: /daily/2023/04/18/consistency-is-key + [2]: https://github.com/mightyiam/dendritic + format: markdown + processed: | +

As I wrote yesterday, no two Nix configurations are the same.

+

As well as having different packages and configuration options, Nix configurations can all be structured differently - similar to Drupal websites.

+

Some are simple and others are very complex and manage many systems.

+

A lot of people will publish their dotfiles/Nix/NixOS configurations online for others to read and take inspiration from.

+

I was reading someone's code yesterday and found a pattern they wrote about called the Dendritic pattern.

+

Using the flake-parts module system, every file when using this pattern is a flake-parts module.

+

This is different to most configurations, where only some files are modules and others are imported as needed within other files.

+

From another perspective, having consistency and following a strict convention makes things like auto-importing modules possible.

+

I like it solves a problem, making configurations easier to maintain as each file is responsible for adding one feature and are self-contained so things can easily be re-organised.

+

If I was writing my configuration from scratch, this is the approach I'd take.

+

Or, I may start looking to refactor my current configuration soon to be based on this pattern.

+ summary: '' +field_daily_email_cta: + - target_type: node + target_uuid: c74de3cf-5362-4d08-935a-a9d0d22fcb94 diff --git a/content/path_alias.82570ab1-60ad-4b41-b5a1-da92bc8e676e.yml b/content/path_alias.82570ab1-60ad-4b41-b5a1-da92bc8e676e.yml new file mode 100644 index 000000000..e3547c58c --- /dev/null +++ b/content/path_alias.82570ab1-60ad-4b41-b5a1-da92bc8e676e.yml @@ -0,0 +1,10 @@ +uuid: + - value: 82570ab1-60ad-4b41-b5a1-da92bc8e676e +langcode: + - value: en +path: + - value: /node/7d1bee5e-19f0-4e40-b24a-6bbd162432d3 +alias: + - value: /daily/2025/07/17/nix-and-dendritic-pattern +status: + - value: true diff --git a/content/shortcut.81d560f9-aa02-4691-b078-766110a08554.yml b/content/shortcut.81d560f9-aa02-4691-b078-766110a08554.yml deleted file mode 100644 index f8d2a682a..000000000 --- a/content/shortcut.81d560f9-aa02-4691-b078-766110a08554.yml +++ /dev/null @@ -1,17 +0,0 @@ -uuid: - - value: 81d560f9-aa02-4691-b078-766110a08554 -langcode: - - value: en -shortcut_set: - - target_id: default - target_type: shortcut_set - target_uuid: 57358499-6b6d-407c-9c39-ceef732c996c -title: - - value: 'Create Daily email' -weight: { } -link: - - uri: 'internal:/node/add/daily_email' - title: null - options: { } -default_langcode: - - value: true