diff --git a/src/content/daily-email/2023-10-12.md b/src/content/daily-email/2023-10-12.md
new file mode 100644
index 00000000..4837b430
--- /dev/null
+++ b/src/content/daily-email/2023-10-12.md
@@ -0,0 +1,22 @@
+---
+title: >
+  Business logic in template files?
+pubDate: 2023-10-12
+permalink: >
+  archive/2023/10/12/business-logic-in-template-files
+tags:
+  - software-development
+  - drupal
+  - twig
+  - automated-testing
+---
+
+I've often heard and advocated for not "putting logic" in template files and having a separation of concerns.
+
+The templates should be as simple to read and change as possible, and any complicated logic should be moved elsewhere.
+
+There can be presentational logic - such as a simple if condition to determine if a value should be shown or looping over a list of items, but business logic should be within custom code - ideally within Service, Action or Command classes - and injected into the templates.
+
+As well as making the templates simpler and cleaner, this logic can be tested separately with automated tests to ensure it works as expected. If the logic is within a template, this can be done for some things using Functional tests, such as whether some text appears on a page, but testing whether it appears in a certain order, for example, is much harder. This is best done within kernel or unit tests.
+
+As well as being more testable, extracting the logic from a template makes it more reusable. You can use a service from multiple places within your website without duplicating it, making your website code smaller and easier to maintain.