<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>theokrueger.dev - /posts/</title>
    <subtitle>the occasional thoughtless muse</subtitle>
    <link rel="self" type="application/atom+xml" href="https://theokrueger.dev/posts/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://theokrueger.dev/posts/"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-07-14T00:00:00+00:00</updated>
    <id>https://theokrueger.dev/posts/atom.xml</id>
    <entry xml:lang="en">
        <title>On Bikeshedding</title>
        <published>2026-07-14T00:00:00+00:00</published>
        <updated>2026-07-14T00:00:00+00:00</updated>
        
        <author>
          <name>theokrueger</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://theokrueger.dev/posts/bikeshedding/"/>
        <id>https://theokrueger.dev/posts/bikeshedding/</id>
        
        <content type="html" xml:base="https://theokrueger.dev/posts/bikeshedding/">&lt;h1 id=&quot;the-voices&quot;&gt;* The voices&lt;/h1&gt;
&lt;p&gt;We live in a human world, which entails continuous compromise in and adoption of seemingly strange systems built for the common denominator.
The world of computation, being largely designed by and for humans throughout most of its history, follows closely in this pattern of incomprehensible compromise.
As it grew:  VLIW disappeared, everything turned into webapp, and functional languages remained cults.&lt;/p&gt;
&lt;p&gt;The worse choice is systematically the default choice in so many aspects of hardware, programming, and general computer use, that to a specific kind of person there is this omnipresent, nagging voice whispering &quot;you can do it better yourself&quot;.&lt;/p&gt;
&lt;p&gt;And the best part of it? You can. That&#39;s why its a dangerous thought.
The tools are available, open, and free to do anything from write an editor to an operating system, entirely by yourself, exactly to your tastes.
But let the rest of this article serve as a warning: you are certain to learn exactly why the other offerings are the way they are.&lt;/p&gt;
&lt;h1 id=&quot;a-lesson-in-triviality&quot;&gt;* A lesson in triviality&lt;/h1&gt;
&lt;p&gt;I&#39;ve redesigned this site five times in five years, switching between various tools and going so far as to write entire tool ecosystems, without writing a single post.
How could I have failed to achieve the sole purpose of a blog-style website (to have blog posts) for this long?
Bikeshedding. Yak-shaving. Let&#39;s do an autopsy.&lt;/p&gt;
&lt;div class=&quot;flickity-carousel-4620 flickity-carousel&quot;&gt;
&lt;h3 class=&quot;flickity-title&quot;&gt;Revisions of this site 2021-2026&lt;/h3&gt;
&lt;span class=&quot;carousel-cell&quot;&gt;
&lt;img src=&quot;https://theokrueger.dev/processed_images/site-1.c1f4fe44b58cdd6a.webp&quot; alt=&quot;An image depicting a revision of this website in 2021. It has a grey background, black borders on elements, and a white foreground. It focuses on being a mod portfolio, with monospace text and large bold headings. Each mod has a colorful image thumbnail and centered title underneath. There is room for four entries per line.&quot; /&gt;
&lt;p&gt;&lt;em&gt;2021, written in pure HTML5&lt;/em&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;span class=&quot;carousel-cell&quot;&gt;
&lt;img src=&quot;https://theokrueger.dev/processed_images/site-2.5a8a2c2412e5a05a.webp&quot; alt=&quot;An image depicting a revision of this website in 2022. It is similar to the 2021 revision, but foregoes the focus on mods and focuses on a blog format. Posts now have a short description, and the design is slightly more refined in general.&quot; /&gt;
&lt;p&gt;&lt;em&gt;2022, compiled by blogc&lt;/em&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;span class=&quot;carousel-cell&quot;&gt;
&lt;img src=&quot;https://theokrueger.dev/processed_images/site-3.55a4ee70a3216469.webp&quot; alt=&quot;An image depicting a revision of this website in 2023. It is similar to the 2022 revision, but drops the images entirely in favor of a list-based format.&quot; /&gt;
&lt;p&gt;&lt;em&gt;2023, compiled by blogc&lt;/em&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;span class=&quot;carousel-cell&quot;&gt;
&lt;img src=&quot;https://theokrueger.dev/processed_images/site-4.f9948d111969a968.webp&quot; alt=&quot;An image depicting a revision of this website in 2024. It is entirely different from the 2023 revision, with a new color scheme and unique navigation bar. The foreground is light-blue, and significant flair and polish has been generally added to the site.&quot; /&gt;
&lt;p&gt;&lt;em&gt;2024, designed using SSGen&lt;/em&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;span class=&quot;carousel-cell&quot;&gt;
&lt;img src=&quot;https://theokrueger.dev/processed_images/site-5.fadb38d488c8384d.webp&quot; alt=&quot;An image depicting a revision of this website in 2025. It is similar to the 2024 revision, but is much simpler in content formatting, and fixes longstanding alignment and padding issues. It is also designed for comfortable mobile reading.&quot; /&gt;
&lt;p&gt;&lt;em&gt;2026 (current), built with Zola&lt;/em&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;script&gt;
new Flickity( document.querySelector(&#39;.flickity-carousel-4620&#39;), {
adaptiveHeight: true,
imagesLoaded: true,
cellSelector: &#39;.carousel-cell&#39;,
});
&lt;/script&gt;
&lt;br/&gt;
&lt;p&gt;Each site pictured is a significant enough rewrite to be considered an independent revision.
The design language may be relatively consistent, but more was thrown out than kept between each revision.&lt;/p&gt;
&lt;p&gt;I wouldn&#39;t dare call any of these &lt;em&gt;good&lt;/em&gt;, but they certainly encompass the author&#39;s taste.
The ethos of this strange design direction is underpinned by some key motivations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The site should be accessible for all users.&lt;/li&gt;
&lt;li&gt;JavaScript should be optional without an asterisk.&lt;/li&gt;
&lt;li&gt;It should be frictionless to create content for the site.&lt;/li&gt;
&lt;li&gt;The site should be stupid fast and look good&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-subjective-1&quot;&gt;&lt;a href=&quot;https://theokrueger.dev/posts/bikeshedding/#fn-subjective&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;li&gt;Wildly overcomplicated one-off content should be possible with relative ease.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Reading those requirements, I really just wanted a &lt;a rel=&quot;external&quot; href=&quot;https://motherfuckingwebsite.com/&quot;&gt;motherfuckingwebsite&lt;/a&gt; -- but stylesheets make the post more than the actual content, and I wouldn&#39;t be content without one.&lt;/p&gt;
&lt;h2 id=&quot;2021-html&quot;&gt;** 2021: HTML&lt;/h2&gt;
&lt;p&gt;Where do I even begin with this one? It&#39;s truly awful.&lt;/p&gt;
&lt;p&gt;Originally meant to hold links to some game mods I was working on at the time, I elected to use pure HTML5 as a simple entrypoint into web design. It was my first (actual) website, after all.
Just looking at it, theres no way that its not accessible, flexible, and fast.&lt;/p&gt;
&lt;p&gt;But if I told you that modals were created and loaded/unloaded with CSS on checkbox forms, any illusion of maintainability vanishes, buried another 6 feet under by complete lack of templating.
And as such, this revision was left untouched for months without a single post written.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Failures: Inaccessible, Unmaintainable, Ugly&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;2022-2023-blogc&quot;&gt;** 2022-2023: blogc&lt;/h2&gt;
&lt;p&gt;At this point I&#39;d learned that I actually enjoyed the flexibility of straight HTML5, but some sort of templating engine is probably a must in order to wrangle the poor maintainability of multi-page sites.&lt;/p&gt;
&lt;p&gt;Instead of a widely-used and highly-supported site engine like Jekyll or Hugo, I scrolled all the way down on Jamstack until I fould &lt;a rel=&quot;external&quot; href=&quot;https://blogc.rgm.io/&quot;&gt;blogc&lt;/a&gt;.
Aptly described as &quot;a blog compiler&quot;, it promised a close connection to straight HTML5 with powerful templating and useful modules.&lt;/p&gt;
&lt;p&gt;So a new site was born, looking strikingly similar to the first revision&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-poortaste-1&quot;&gt;&lt;a href=&quot;https://theokrueger.dev/posts/bikeshedding/#fn-poortaste&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;, I quickly fell into despair again working around blogc&#39;s strict philosophy.&lt;/p&gt;
&lt;span class=&quot;file-head&quot;&gt;
  &lt;code class=&quot;file-head-type-file file-head-type-all&quot;&gt;
    FILE
  &lt;/code&gt;
  &lt;code class=&quot;file-head-path&quot;&gt;Sample blogc Post&lt;/code&gt;
&lt;/span&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CAD3F5; background-color: #24273A;&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;TITLE: post title&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F5A97F;&quot;&gt;-------------------------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #ED8796;&quot;&gt;# heading&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;paragraph text&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;another paragraph&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B7BDF8;&quot;&gt;[link text]&lt;/span&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AADF4;&quot;&gt;https://theokrueger.dev/&lt;/span&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;A sample blogc post&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Blogc envisions a very straightforward sitemap, and a consistent design language.
You get an index, some posts, and an archive of those posts.
Using per-post templates, conditional template formatting, macros, and the like are beyond it&#39;s reaches of maintainability.
It&#39;s really a Unix-like tool in that sense, which appeals to me in a fundamental way.
But using it felt more like &lt;code&gt;make&lt;/code&gt; when I need a &lt;code&gt;cmake&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Funnily enough, the ergonomics of using &lt;code&gt;blogc&lt;/code&gt; (the program) are akin to that of &lt;code&gt;gcc&lt;/code&gt;, and you do end up using &lt;code&gt;make&lt;/code&gt; to generate your sites.
Documentation lives as a manpage and the source is incredibly hackable.&lt;/p&gt;
&lt;p&gt;But the beautiful philosophy of blogc was unable to save it both from my need to let posts and templates define each-others contexts, and my desire to manage my site as a series of blocks and templates and content rather than just one of each.
I moved on after trying to shoehorn my large scope into the small vision of blogc, without a single post written.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Failures: Inflexible, Ugly&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;2024-ssgen&quot;&gt;** 2024: SSGen&lt;/h2&gt;
&lt;p&gt;I convinced myself that &quot;I could do it better&quot;, and I wrote my own site generator.
It would be easier to use, faster to run, more flexible, and powered by YAML.
So I wrote SSGen, which ended up being a great learning experience and little more.&lt;/p&gt;
&lt;p&gt;Yet in some way, it was beautiful.
SSGen pages and blocks are turing complete, and at their best felt incredible in terms of power to circularly define context between templates and their content.
At their worst, you&#39;re left fighting HTML shoehorned into a simpler markup language in an environment devoid of debugging and tracing tools.&lt;/p&gt;
&lt;p&gt;At some point in complexity however, your design is more of a DSL&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-dsl-1&quot;&gt;&lt;a href=&quot;https://theokrueger.dev/posts/bikeshedding/#fn-dsl&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; over an engine, and has the ergonomics of a cinder block.
It turns out that YAML is a horrible choice for writing websites.&lt;/p&gt;
&lt;span class=&quot;file-head&quot;&gt;
  &lt;code class=&quot;file-head-type-file file-head-type-all&quot;&gt;
    FILE
  &lt;/code&gt;
  &lt;code class=&quot;file-head-path&quot;&gt;Sample SSGen Post&lt;/code&gt;
&lt;/span&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CAD3F5; background-color: #24273A;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #C6A0F6;&quot;&gt; !DEF&lt;/span&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: #A6DA95;&quot;&gt;TITLE&lt;/span&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #A6DA95;&quot;&gt; &amp;#39;theokrueger.dev&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F5BDE6;&quot;&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #C6A0F6;&quot;&gt;!DEF&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;  -&lt;/span&gt;&lt;span style=&quot;color: #A6DA95;&quot;&gt; POST_CONTENT&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;  -&lt;/span&gt;&lt;span style=&quot;color: #8AADF4;&quot;&gt; post&lt;/span&gt;&lt;span style=&quot;color: #8BD5CA;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8AADF4;&quot;&gt;      div&lt;/span&gt;&lt;span style=&quot;color: #8BD5CA;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;        -&lt;/span&gt;&lt;span style=&quot;color: #8AADF4;&quot;&gt; h1&lt;/span&gt;&lt;span style=&quot;color: #8BD5CA;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #A6DA95;&quot;&gt; heading&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;        -&lt;/span&gt;&lt;span style=&quot;color: #8AADF4;&quot;&gt; p&lt;/span&gt;&lt;span style=&quot;color: #8BD5CA;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #A6DA95;&quot;&gt; paragraph text&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;        -&lt;/span&gt;&lt;span style=&quot;color: #8AADF4;&quot;&gt; p&lt;/span&gt;&lt;span style=&quot;color: #8BD5CA;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #A6DA95;&quot;&gt; another paragraph&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;        -&lt;/span&gt;&lt;span style=&quot;color: #8AADF4;&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color: #8BD5CA;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;            -&lt;/span&gt;&lt;span style=&quot;color: #8AADF4;&quot;&gt; _href&lt;/span&gt;&lt;span style=&quot;color: #8BD5CA;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #A6DA95;&quot;&gt; &amp;#39;https://theokrueger.dev&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;            -&lt;/span&gt;&lt;span style=&quot;color: #A6DA95;&quot;&gt; link text&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Sample of a .page file&#39;s YAML. Yeah, its bad.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I didn&#39;t think this going into it, as YAML is well-liked for being easy to write and not requiring a ton of escape codes everywhere, yet two&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-bonus_ssgen_issue-1&quot;&gt;&lt;a href=&quot;https://theokrueger.dev/posts/bikeshedding/#fn-bonus_ssgen_issue&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; glaring flaws turn YAML into a nightmare:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;No duplicate keys in mappings&lt;/li&gt;
&lt;li&gt;No metadata for keys.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This meant that metadata for a key had to be like any other sub-node, just prefixed with an underscore a la &lt;code&gt;_class&lt;/code&gt; or &lt;code&gt;_href&lt;/code&gt;.
Similarly, any time you needed more than one &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; in a span you had to nest it in an array.
It was so obtuse to use that it killed any motivation to get the site finished.&lt;/p&gt;
&lt;p&gt;Using my own &#39;perfect&#39; tool defeated me. And not a single post was written.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Failures: Unmaintainable, Ugly&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;2026-zola&quot;&gt;** 2026: Zola&lt;/h2&gt;
&lt;p&gt;The lesson was learned. It was time to start fresh one last time before it gets excessive.
Done shaving yaks, I decided that the best place to park my bike is in tooling good enough to do the job.
I browsed through each SSG on Jamstack, making careful note of how it appears to meet my five criteria.&lt;/p&gt;
&lt;p&gt;The arduous search landed me on Zola, which while not without flaws is about as good as it is ever going to get for this.
It&#39;s fast, its flexible, and offers powerful enough tooling to work around its shortcomings in macros.&lt;/p&gt;
&lt;span class=&quot;file-head&quot;&gt;
  &lt;code class=&quot;file-head-type-file file-head-type-all&quot;&gt;
    FILE
  &lt;/code&gt;
  &lt;code class=&quot;file-head-path&quot;&gt;Sample Zola Post&lt;/code&gt;
&lt;/span&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CAD3F5; background-color: #24273A;&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;+++&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;title = &amp;quot;theokrueger.dev&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;+++&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #ED8796;&quot;&gt;# heading&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;paragraph text&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;another paragraph&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B7BDF8;&quot;&gt;[link text]&lt;/span&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AADF4;&quot;&gt;https://theokrueger.dev&lt;/span&gt;&lt;span style=&quot;color: #939AB7;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Remarkably, Zola&#39;s featureset is basically the same as blogc&#39;s, with only two additions that I use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Flexible macros in templates, with parameters definable in posts.&lt;/li&gt;
&lt;li&gt;Batteries-included syntax highlighting in codeblocks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The maintainability remains very high due to this, although I miss the ability to call external tools without resorting to hacks.&lt;/p&gt;
&lt;p&gt;With that hindsight, I could (and should) have just forked blogc to add those missing features and written this post a few years early.
Yet I&#39;m sure that trying and failing to build my own tooling is the sole reason I&#39;m able to settle for something less than perfect.
Which ironically is what makes Zola perfect.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Success: Just Ugly, Stopped Caring&lt;/strong&gt;&lt;/p&gt;
&lt;h1 id=&quot;perfection-is-the-worst-product-you-ve-ever-used&quot;&gt;* Perfection is the worst product you&#39;ve ever used.&lt;/h1&gt;
&lt;p&gt;Tools are designed the way they are for a reason.
The truth is that there is no perfect intersection of simplicity and power, they are mutually exclusive diagonals on the compass of scalability and flexibility.
No amount of triviality dedicated to finding out &lt;em&gt;which SSG should I use?&lt;/em&gt; will protect you from this property, and it isn&#39;t worth your time unless you enjoy it.&lt;/p&gt;
&lt;p&gt;The cycle of using tools -&amp;gt; wishing they were better -&amp;gt; making your own (that&#39;s worse) -&amp;gt; reverting back to the original (or similar) tooling is a lesson that only has to be learned once.
Don&#39;t let that stop you from trying, I for one will probably never stop random sidequests and excessive planning of ultimately trivial things.
But sometimes, please listen to the expert in you that intrinsically knows the answer.
Perfection is the worst product you&#39;ve ever used, not because its good but because it works.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 id=&quot;footnotes&quot;&gt;*** footnotes&lt;/h3&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn-subjective&quot;&gt;
&lt;p&gt;Very subjectively. &lt;a href=&quot;https://theokrueger.dev/posts/bikeshedding/#fr-subjective-1&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn-poortaste&quot;&gt;
&lt;p&gt;Due to poor taste. &lt;a href=&quot;https://theokrueger.dev/posts/bikeshedding/#fr-poortaste-1&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn-dsl&quot;&gt;
&lt;p&gt;I ended up starting on one of these in 2025, but its a footnote for a reason. &lt;a href=&quot;https://theokrueger.dev/posts/bikeshedding/#fr-dsl-1&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn-bonus_ssgen_issue&quot;&gt;
&lt;p&gt;A bonus issue was that maps are not ordered per YAML spec, but the &lt;code&gt;serde_yaml&lt;/code&gt; library just so happened to leave them ordered and it was a non-issue in implementation. &lt;a href=&quot;https://theokrueger.dev/posts/bikeshedding/#fr-bonus_ssgen_issue-1&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
        
    </entry>
</feed>
