oliverdavies.uk/content/node.6fb0a429-0264-4308-9436-f1115d5b108b.yml

112 lines
5.8 KiB
YAML

uuid:
- value: 6fb0a429-0264-4308-9436-f1115d5b108b
langcode:
- value: en
type:
- target_id: daily_email
target_type: node_type
target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7
revision_timestamp:
- value: '2025-05-11T09:00:00+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: 'An example of feature flagging'
created:
- value: '2025-03-17T00:00:00+00:00'
changed:
- value: '2025-05-11T09:00:00+00:00'
promote:
- value: false
sticky:
- value: false
default_langcode:
- value: true
revision_translation_affected:
- value: true
path:
- alias: /daily/2025/03/17/feature-flags
langcode: en
body:
- value: |
<p>I've written a number of emails about feature flags, or feature toggles, and am a strong advocate of using them whilst developing new features.</p>
<p>I've used them a couple of times recently on my website so I wanted to share them as examples.</p>
<h2 id="experimenting-with-presentation-layouts">Experimenting with presentation layouts</h2>
<p>Firstly, I wanted to experiment with a different layout for my presentation pages.</p>
<p>They currently have a list of events, embedded slides and a video recording when there is one.</p>
<p>Each event linked to its website, where applicable, and the slides and video were from one of the most recent versions of the presentation.</p>
<p>I wanted to change this so each event would have links to its own slides, example code or demo.</p>
<p>I didn't want to change this yet for all presentations, only <a href="/presentations/sculpin">my Sculpin talk</a> as it's the most recent and, if I like it, later apply it to the others.</p>
<p>My website is built with Sculpin, so adding a feature flag was as simple as adding <code>new: true</code> to the YAML front matter at the top of the file for that presentation.</p>
<p>This is available as <code>page.new</code> in the layout file and I can use this <a href="https://code.oliverdavies.uk/opdavies/oliverdavies.uk/commit/8b721e63fb64f3c98b81353ca9cec7545d72a595">to load different markup</a>.</p>
<h2 id="rewriting-my-css">Rewriting my CSS</h2>
<p>Secondly, I've been wanting to re-style my website with Tailwind CSS 4 and refactor some of the templating.</p>
<p>As this is a change I wanted to be site-wide, I added <code>new_css: true</code> to my sculpin_site.yml file.</p>
<p>This time, I was able to use <code>site.new_css</code> to <a href="https://code.oliverdavies.uk/opdavies/oliverdavies.uk/commit/fa884644cf5aa233ad22fb28b83c5a0b150b037d">toggle the loaded stylesheet</a> and using Sculpin's environment files - e.g. sculpin_site_dev.yml and sculpin_site_prod.yml - I can be explicit about which stylesheets are used locally and for my live website.</p>
<h2 id="summary">Summary</h2>
<p>Feature flags are a great approach to splitting up large changes into manageable, deployable pieces, and they don't need to be complicated.</p>
<p>Essentially, they are a simple boolean value that you can use to execute different code based on whether it's false or true.</p>
format: full_html
processed: |
<p>I've written a number of emails about feature flags, or feature toggles, and am a strong advocate of using them whilst developing new features.</p>
<p>I've used them a couple of times recently on my website so I wanted to share them as examples.</p>
<h2 id="experimenting-with-presentation-layouts">Experimenting with presentation layouts</h2>
<p>Firstly, I wanted to experiment with a different layout for my presentation pages.</p>
<p>They currently have a list of events, embedded slides and a video recording when there is one.</p>
<p>Each event linked to its website, where applicable, and the slides and video were from one of the most recent versions of the presentation.</p>
<p>I wanted to change this so each event would have links to its own slides, example code or demo.</p>
<p>I didn't want to change this yet for all presentations, only <a href="/presentations/sculpin">my Sculpin talk</a> as it's the most recent and, if I like it, later apply it to the others.</p>
<p>My website is built with Sculpin, so adding a feature flag was as simple as adding <code>new: true</code> to the YAML front matter at the top of the file for that presentation.</p>
<p>This is available as <code>page.new</code> in the layout file and I can use this <a href="https://code.oliverdavies.uk/opdavies/oliverdavies.uk/commit/8b721e63fb64f3c98b81353ca9cec7545d72a595">to load different markup</a>.</p>
<h2 id="rewriting-my-css">Rewriting my CSS</h2>
<p>Secondly, I've been wanting to re-style my website with Tailwind CSS 4 and refactor some of the templating.</p>
<p>As this is a change I wanted to be site-wide, I added <code>new_css: true</code> to my sculpin_site.yml file.</p>
<p>This time, I was able to use <code>site.new_css</code> to <a href="https://code.oliverdavies.uk/opdavies/oliverdavies.uk/commit/fa884644cf5aa233ad22fb28b83c5a0b150b037d">toggle the loaded stylesheet</a> and using Sculpin's environment files - e.g. sculpin_site_dev.yml and sculpin_site_prod.yml - I can be explicit about which stylesheets are used locally and for my live website.</p>
<h2 id="summary">Summary</h2>
<p>Feature flags are a great approach to splitting up large changes into manageable, deployable pieces, and they don't need to be complicated.</p>
<p>Essentially, they are a simple boolean value that you can use to execute different code based on whether it's false or true.</p>
summary: null
field_daily_email_cta: { }