<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Root Work</title>
  <link>https://blog.clvaughan.com</link>
  <description>A space for things I'm growing</description>
  <language>en</language>
  <lastBuildDate>Sat, 22 Aug 2026 09:15:31 +0000</lastBuildDate>
  <atom:link href="https://blog.clvaughan.com/feed.xml" rel="self" type="application/rss+xml"/>
  <item>
    <title>Music and Mediation</title>
    <link>https://blog.clvaughan.com/music-and-mediation/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/music-and-mediation/</guid>
    <pubDate>Sat, 22 Aug 2026 00:00:00 +0000</pubDate>
    <description>This week has been long and stressful.  I find myself falling back on old stress relief habits I haven't used in a while... It's been kinda nice to...</description>
    <content:encoded><![CDATA[<p>This week has been long and stressful.  I find myself falling back on old stress relief habits I haven't used in a while... It's been kinda nice, aside from the stress.  I've always found music to be cathartic.  But lately I've been listening to a lot of old school hip-hop and gansta rap.  It's great for workouts but not so much calming my mental.  Plus, music is often deligated to the background of other activities. </p>

<h2>Sara B. </h2>
<p>I was so stressed/irritated earlier this week though that I could feel my heartbeat in my head and that's not great. So I reached for an older album that i used to listen to all the time, <i>What's Inside</i> by Sara Bareilles.  I sat in silence and listened to the whole album from start to finish. it's been so long since I've listened to music as the "main event."  It was a nice calm hour or so, and then I felt better. So, I put on my shoes and went for a 2 mile walk, with the album on repeat. </p>

<div style="float:left;display:inline;max-width:100%; padding-right:1rem;"><iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/track/2D4BSm5Z8Hq5zYbSgJwEOh?utm_source=generator&si=3ecec3cd284f48f9" width="100%" height="152" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe></div>

<p>Lately I've been doing my walk to T.I.'s latest album, but it wasn't a good fit for my mood.  What's Inside is songs she wrote for the musical, The Waitress.  That being the case the whole album is basically a story.  It's about fear and self-doubt, losing control of your circumstance, love, unexpected blessings, and a lot more.  I love this type of album (see also "The Jungle" by Shakka). It left me feeling relaxed and seen.</p>

<p>Standouts are
<ul>
  <li>What's inside (intro)</li>
  <li>She Used to Be Mine</li>
  <li>Opening Up</li>
  <li><a href="https://open.spotify.com/track/6GxexyfupoH665lm63C0zs?si=ef32c8a960854dc4" target="_blank">When He Sees Me</a></li>
</ul>
</p>

<h2>Joe Budden</h2>
<p>That was a super relaxing and enjoyable afternon and it reminded me how i used to consume music. So I continued the streak by reaching for hip-hop I used to love, but not gangsta rap.  Joe is a podcaster now and, like all podcasters, he gets on my nerves a lot haha... but let nobody ever say Joe can't rap!</p>

<div style="float:left;display:inline;max-width:100%; padding-right:1rem;">
  <iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/track/7e8QDdIGAPZOoZdYxFjzzK?utm_source=generator&si=db1f9433f9c94f70" width="100%" height="152" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
</div>
<p>Joe Budden's <i>All Love Lost</i> is one of my favorite albums of all time. It's super introspective and raw and honest!  I sat an listened to that one in it's entirety as well. There's something about the intimacy of an honest piece of art that is really healing to experience. The album is about 80 minutes I think, cus Joe has several songs on there that are like 7/8 minutes long lol... it's a no-skip album for me though.</p>

<p>Standouts are 
<ul>
  <li><a href="https://open.spotify.com/track/1QjgRFI3gjwl4QiFhuPvGT?si=1af3b5d9f9dc4cc2" target="_blank">All Love lost (the intro)</a></li>
  <li>Man Down</li>
  <li>Only Human</li>
</ul>
</p>

<h2>Meditation</h2>
<img src="/music-and-mediation/images/meditation-woman.png" alt="Illustrated woman Meditating" style="float:right;max-width:50%;">

<p>In addition to the music, I had an hour long meditation session. It's been probably a year since I've meditated and every time I do it I wonder why I dont do it more.  I lit some candles turned off everything but some very quiet tones, and let myself be for a while. It really helped me get some thoughts and feelings in order and solidify some things that have been moving around the edges of my consiousness.</p>

<p>I've heard mediation described a lot of different ways by different people, but for me it's a bit like fixing the focus through which I view myself and the world around me.  It helps me bring important things into focus and let other things blend into the background. I spent time on ideas/feelings that I haven't really given my full attention in some time. I definitely came away feeling less stressed about thigns and more capable of dealing with them. </p>

<p>I should do this more :-) </p>

<p class="signature">Peace.</p>]]></content:encoded>
    <category>daily</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>Starting a weight loss challenge</title>
    <link>https://blog.clvaughan.com/weight-loss-challenge/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/weight-loss-challenge/</guid>
    <pubDate>Mon, 17 Aug 2026 00:00:00 +0000</pubDate>
    <description>Starting a weight loss challenge today....  let's see how this goes</description>
    <content:encoded><![CDATA[<p>Today I started a weight loss challenge, at my brother's suggestion.  He, of course, roped in any number of people to participate.  I definitely need some accountability when it comes to this, so it should be "fun."</p>

<p> I think I'll just use this post to log everything, and update it periodically. </p>]]></content:encoded>
    <category>health &amp; fitness</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>My Personal/Private Daily Apps</title>
    <link>https://blog.clvaughan.com/personal-tracker-apps/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/personal-tracker-apps/</guid>
    <pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate>
    <description>Living with ESRD, there are a LOT of things I need to track on a daily basis. These are some of the personal tracking apps I've built that I use every day</description>
    <content:encoded><![CDATA[<p>Living with ESRD, there are a LOT of things I need to track on a daily basis. These are some of the personal tracking apps I've built that I use every day and find quite useful. They all share a cohesive, basic graphic style that I find easy to read and unobtrusive.</p>

<h2>Daily Medication Tracker</h2>
<p>This is a fairly basic medication tracker. It helps me keep track of my medications for the day and when I took them.  It's helpful, given that my meds and their timings sometimes change. There is a web version of this that I started with. I build the mobile app once I worked out exactly what features I needed and what friction points needed to be smoothed out so that I'll actually use it. </p>

<div class="devstack-container">
  <h2>Tech Stack</h2>
  <span>React Native</span> <span>sqlite</span>
</div>
<div style="display:flex; flex-direction:row; width:100%" class="image-box-flex">
<img src="/personal-tracker-apps/images/daily_log.png" alt="Daily medication log screen" style="width:45%;margin-right:0.5em;" >
<img src="/personal-tracker-apps/images/Screenshot_20260818-201341.png" alt="Log History Screen"  style="width:45%;margin-left:0.5em;" ></div>
<h2>Treatment (Home Dialysis) Tracker</h2>
<p>This is the most recent project I've built.  It helps me log all the things that the clinic needs wants me to log, and gives me a nice view of how I'm doing.  This is a web app for now, but I have plans to expand it to a mobile app.  </p>
<div class="devstack-container">
  <h2>Tech Stack</h2>
  <span>Vanilla HTML/CSS/JS</span> <span>sqlite</span> <span>PHP</span>
</div>
<img src="/personal-tracker-apps/images/Screenshot_2026-08-17_at_07-42-44_PD_Treatment_Tracker.png" alt="Dialysis Tracker Dashboard">
<img src="/personal-tracker-apps/images/Screenshot_2026-08-17_at_07-43-56_PD_Treatment_History.png" alt="PD Tracker Reporting">


<h2>Blood Pressure Tracker</h2>
<p>This one has become a bit less useful, as I have integrated blood pressure tracking into the treatment tracker.  But this was the first one I built, that kinda of set the tone, and helped me work out what's useful for me peronsally in a UX. </p>

<div class="devstack-container">
  <h2>Tech Stack</h2>
  <span>Java/Kotlin</span> 
</div>]]></content:encoded>
    <category>projects</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>Chia Seed Bread?</title>
    <link>https://blog.clvaughan.com/making-bread-4/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/making-bread-4/</guid>
    <pubDate>Sun, 26 Jul 2026 21:00:00 +0000</pubDate>
    <description>My fourth attempat at making bread!</description>
    <content:encoded><![CDATA[<p>Today's attempt is basically a combination of the thigns I've tried so far.  The dough overall was less sticky than yesterday and easier to work with. The chia seeds are just for added fiber and to test addins.  The main thing I wanted to find out was whether backing powder + yeast makes a significant difference. Thus far it's been one or the other. </p>

<h2>Attempt #4</h2>

<img src="/making-bread-4/images/hero.jpg" alt="" class="inline">


<div class="image_box">
    <div class="title">Prep Work</div>
    <img src="/assets/PXL_20260726_230609617.MP.jpg" alt="" class="">
    <img src="/assets/PXL_20260726_230613408.jpg" alt="" class="">
    <img src="/assets/PXL_20260726_231056735.jpg" alt="" class="">
    <img src="/assets/PXL_20260727_013045185.jpg" alt="" class="">
</div>

<div class="image_box">
    <div class="title">Finished Product</div>
    <img src="/assets/PXL_20260727_015155184.jpg" alt="" class="">
    <img src="/assets/PXL_20260727_015207078.jpg" alt="" class="">
</div>

<div class="recipe-card">
  <h3>Basic Bread</h3>
  <div class="recipe-meta">
    <span><strong>Proof:</strong> Overnight + 1.5 hours</span>
    <span><strong>Cook:</strong> 14 min at 350°F</span>
  </div>

  <p class="recipe-section-title">Ingredients</p>
  <ul class="recipe-ingredients">
    <li>300g all-purpose flour</li>
    <li>150 ml water (approx.)</li>
    <li>1 packet yeast</li>
    <li>30g chia seeds</li>
    <li>30g white sugar</li>
    <li>15g baking powder</li>
    <li>1 egg</li>
  </ul>

  <p class="recipe-section-title">Instructions</p>
  <ol class="recipe-instructions">
    <li>Mix yeast, sugar, water in a bowl and leave it for 3 mintues</li>
    <li>Mix flour, chia seeds, baking powder, egg, and yeast mixture, and fold until a dough forms</li>
    <li>Proof 90 mintues</li>
    <li>Preheat air fryer to 400°F.</li>
    <li>Cook at 350°F for 14 minutes.</li>
    <li>brush the top with toasted sesame oil(or maybe bacon grease??)</li>
    <li>Cook at 400°F for 2-3 minutes.</li>
  </ol>
</div>



<h2>Thoughts</h2>

<p class="notes">This is, by far, the best loaf yet!  It about doubled in size during proofing and rose pretty well during baking. This is also the most shaped loaf I've done as it wasn't too stiff or too sticky and I was able to actually make it loaf shaped :-) </p>

<p>Yeast plus backing powder seemed to work fairly well and the chia seeds held up. I was curious how if they would have a negative effect, as they tend to gather up moisture, but it seems like they didn't. </p>

<p>I'll consider this my first proper bread recipe, and probably continue expanding on it with mixins.  It feels like a solid "daily" though.</p>]]></content:encoded>
    <category>bread making</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>Sunday Haikus - Loss</title>
    <link>https://blog.clvaughan.com/haikus-4-dying/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/haikus-4-dying/</guid>
    <pubDate>Sun, 26 Jul 2026 03:00:00 +0000</pubDate>
    <description>Sister Poet

Just there, now she's gone
her words, anticipated
Now... Only silence</description>
    <content:encoded><![CDATA[<p>A short collection of haikus I wrote today. feeling melancholy and a bit retrospecitve.</p>

<div class="haiku">
    <h1>Death March</h1>

    <span class='hk-line-1'>who can stop this train?</span>
    <span class='hk-line-2'>time marches ever faster</span>
    <span class='hk-line-3'>I want to get off</span>
</div>

<div class="haiku">
    <h1>Sister Poet</h1>

    <span class='hk-line-1'>Just there, now she's gone</span>
    <span class='hk-line-2'>her words, anticipated</span>
    <span class='hk-line-3'>Now... Only silence</span>
</div>

<div class="haiku">
    <h1>Only Forward</h1>

    <span class='hk-line-1'>I reach for the past</span>
    <span class='hk-line-2'>feelings then, long forgotten</span>
    <span class='hk-line-3'>they do not respond</span>
</div>]]></content:encoded>
    <category>poetry</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>Redesigning My Portfolio for the Third Time</title>
    <link>https://blog.clvaughan.com/portfolio-redesign/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/portfolio-redesign/</guid>
    <pubDate>Sun, 26 Jul 2026 00:00:00 +0000</pubDate>
    <description>This time I'm going minimal — no frameworks, no build step. Just HTML, CSS, and the hard question of what to leave out.</description>
    <content:encoded><![CDATA[<p>Every few years, I redesign my portfolio. I always struggle because I am primarily a backend developer, so it's hard for me to "display" my work. But, here I am again, as I attempt to get back into the workforce after a few years of disability due to ESRD.  This time I'm just gonna stick with raw html/css/js. 

<h2>Why So Simple?</h2>
<p>My portfolio doesn't change often. And honestly, I'm so tired of bloated framework code. is "framework fatigue" a thing?  I guess you can get fatigued by anything.  It's all so over complicated and removed from the actual base level of coding that I think I kinda burned out even before I got sick. I prefer to keep things simple these days.</p>

<h2>Constraints</h2>
<ul>
    <li>No JavaScript frameworks. just minimal raw js.</li>
    <li>No build step</li>
    <li>Under 50KB total page weight (not including project images)</li>
    <li>Works in any browser from the last 20 years</li>
</ul>

<h2>The Result</h2>
<p>1 html page, with css and a small amount of js. I don't think I'm done yet, but I think I'm close. I need to do some sample sites, for skills/ideas that I don't have client work for. I'll keep you posted. </p>

<p>I'm still not really done with it. It currently functions as less a portfolio and more a digital resume. I'll probably add a few pages to it at some point, as time allows.</p>]]></content:encoded>
    <category>projects</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>Growing Lettuce Indoors</title>
    <link>https://blog.clvaughan.com/just-lettuce/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/just-lettuce/</guid>
    <pubDate>Sat, 25 Jul 2026 00:00:00 +0000</pubDate>
    <description>Lettuce seems to be the most eager to sprout for me this summer...</description>
    <content:encoded><![CDATA[<img src="/just-lettuce/images/hero.jpg" alt="" style="display:inline;">
<h2>Lettuce is Growing Well</h2>
<p>The only thing I've been able to consistently get going in my grow tent recently is lettuce.  It's fine, since I'm not starting any fruiting plants right now, but it's weird. I may need to get new seeds. These are from 2 seasons ago so they may not be viable or just have a very low hit rate at this point.</p>

<p>In any case, this lettuce is about 6 weeks old right now. It's growing in an inert medium with nutrient added separately through watering.  I learned the hard way that actual soil WILL create a pest problem.  so far I haven't seen any really issues with using a more hydroponic method, other than the need to add nutirents obviously.  But I don't have to add much.</p>

<h2>Other Plants</h2>
<img src="/assets/PXL_20260726_062534139.jpg" alt="arugula" class="wrap">
<p>I'm starting a few more plants in these other pots (chives, cilantro, arugula, cabage).  We'll see if they sprout.  The chives are the newest I think, so I have high hopes for them. </p>

<img src="/assets/PXL_20260726_062539524.jpg" alt="" class="inline">
<img src="/assets/PXL_20260726_062531156.jpg" alt="" class="inline">
<img src="/assets/PXL_20260726_062543383.jpg" alt="" class="inline">]]></content:encoded>
    <category>gardening</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>Bread Making Attempt #2</title>
    <link>https://blog.clvaughan.com/making-bread-2/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/making-bread-2/</guid>
    <pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate>
    <description>Second attempt at making bread from scratch, using the air fryer...</description>
    <content:encoded><![CDATA[<p>Today's bread was better. It didn't seem to rise much overnight, and did less risng during the cooking process than attempt 1.  However, it was less dense than the first batch, while still feeling hearty.  I made the load in the morning and ate it alone (while on my walk), with soup, and as a bun for a burger.  all three worked well, with the soup meal being the best use.  If I had to guess I'd say the egg made the difference.</p>


<h2>Attempt #1</h2>

<img src="/making-bread-2/images/hero.jpg" alt="" class="inline">




<div class="recipe-card">
  <h3>Basic Bread</h3>
  <div class="recipe-meta">
    <span><strong>Proof:</strong> Overnight + 1.5 hours</span>
    <span><strong>Cook:</strong> 14 min at 350°F</span>
  </div>

  <p class="recipe-section-title">Ingredients</p>
  <ul class="recipe-ingredients">
    <li>2 cups all-purpose flour</li>
    <li>⅓ cup water (approx.)</li>
    <li>1 packet yeast</li>
    <li>1 tbsp syrup (approx.)</li>
    <li>1 tbsps white sugar</li>
    <li>1 egg</li>
  </ul>

  <p class="recipe-section-title">Instructions</p>
  <ol class="recipe-instructions">
    <li>Mix flour, yeast, and syrup. Add water and knead into a dough.</li>
    <li>Proof overnight.</li>
    <li>Remove from fridge and let it proof on the counter for 90 mintues</li>
    <li>Preheat air fryer to 400°F.</li>
    <li>Cook at 350°F for 14 minutes.</li>
  </ol>
</div>

<h2>Thoughts</h2>

<p class="notes">These two breads have been yeasted, but comparatively yeast is expensive. I just happend to have a few packets on hand. I have one more, but continuing this way will add up consideraly.  So I may try using baking powder as the rising agent in a few attempts and see how that works. </p>

<p>I do think I have the air fryer settings figured out, which is wild since I was totally just winging it. Next things to try....  </p>

<ul>
  <li>Using backing powder as the rising agent</li>
  <li>Adding things to the dough(seeds, pigs in a blanket?)</li>
</ul>]]></content:encoded>
    <category>bread making</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>Experimenting with making bread in the air fryer</title>
    <link>https://blog.clvaughan.com/making-bread/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/making-bread/</guid>
    <pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate>
    <description>My first attempt at making bread from scratch...ever</description>
    <content:encoded><![CDATA[<p>So, I've been trying to be less wasteful, and save some money. And to that end, I was looking at my pantry today and lamenting not having any buns for my soon to be made turkey burger... and I thought "Can I make a hamburger bun?"  And that took me down a bit of a rabit hole and ended with the question: </p>

<blockquote>Can you make bread in the air fryer?</blockquote>

<p>Yes! yes, you can!</p>

<h2>Attempt #1</h2>

<img src="/making-bread/images/hero.jpg" alt="" class="inline">

<p>I call this, the most basic of bread. Mind you I was freestyling here, based on what I had. The fact I made edible bread is kind of a miracle.</p>


<div class="recipe-card">
  <h3>Basic Bread</h3>
  <div class="recipe-meta">
    <span><strong>Proof:</strong> 1 hour</span>
    <span><strong>Cook:</strong> 17 min at 350°F</span>
  </div>

  <p class="recipe-section-title">Ingredients</p>
  <ul class="recipe-ingredients">
    <li>1½ cups all-purpose flour</li>
    <li>⅓ cup water (approx.)</li>
    <li>1 packet yeast</li>
    <li>1 tbsp syrup (approx.)</li>
  </ul>

  <p class="recipe-section-title">Instructions</p>
  <ol class="recipe-instructions">
    <li>Mix flour, yeast, and syrup. Add water and knead into a dough.</li>
    <li>Proof for 1 hour.</li>
    <li>Preheat air fryer to 400°F.</li>
    <li>Cook at 350°F for 17 minutes.</li>
  </ol>
</div>

<h2>Overall Result:</h2>
<p class="notes"> It turned out pretty great for a first try. It was edible, toasted well, and filling.  It was a bit denser than ideal. Not sure if that's from the basic recipe or the short proof time. I'm going to try again tomorrow. </p>

<p>Also: I made a turkeyburger today using the bread I made, with lettuce I grew myself. That's pretty cool! </p>]]></content:encoded>
    <category>bread making</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>I just wanna sleep today</title>
    <link>https://blog.clvaughan.com/i-just-wanna-sleep/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/i-just-wanna-sleep/</guid>
    <pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate>
    <description>Every once in a while I have a day or several where my body just wants to sleep. Usually it's a result of either my dialysis treatments or some vitamin deficientcy, but it could also just be fatigue from the toll esrd takes on my body...</description>
    <content:encoded><![CDATA[<p>Every once in a while I have a day or several where my body just wants to sleep. Usually it's a result of either my dialysis treatments or some vitamin deficientcy, but it could also just be fatigue from the toll esrd takes on my body.</p>

<p>In any case, today is one of those days!  And I have client work to do.  This is really the main challenge with re-entering work after so long.  Some days I just can't, even when I have to. I can force myself but I'll find it hard to concentrate and end up taking 6 hours for what could have taken 2.  </p>


<p class="callout">Do I go to sleep and just be more productive later, ocne my body is more cooperative? </p>

<p>Edit:  I ended up sleeping, then working overnight lol</p>]]></content:encoded>
    <category>daily</category>
    <category>health &amp; fitness</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>Hello World / Reinventing the Wheel</title>
    <link>https://blog.clvaughan.com/hello-world/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/hello-world/</guid>
    <pubDate>Sun, 19 Jul 2026 01:00:00 +0000</pubDate>
    <description>My first blog post using StaticBlogger, a piece of software I wrote specifically for this blog, because I love to reinvent the wheel.</description>
    <content:encoded><![CDATA[<p>Welcome to my new blog! This is the obligatory first post. I expect this blog will be fairly boring, for a bit. But it's mostly for my own accountability and to give myself a place to talk into the void, that isn't social media :-)</p>

<h2>What is this?</h2>
<p> A blog written in StaticBlogger(I'm not very creative), a local blogging tool that generates a fully static website from HTML posts with YAML front matter. Each post can have its own CSS, use templates, and even include PHP code that runs on the server. It's very remniscent of Dreamweaver from back in the day, but less garbage haha</p>

<h2>Features</h2>
<ul>
    <li>Fully customizable HTML posts</li>
    <li>Template system with per-template CSS</li>
    <li>Per-post custom CSS</li>
    <li>RSS feed generation</li>
    <li>Standalone search API</li>
    <li>Extension system for adding features</li>
</ul>

<h2>Why?</h2>
<p>Isn't that what being a developer is all about.  Not just consuming tools, but creating purpose-built solutions.  In this instance I was the client.  I wanted a way to blog, but I didn't want any server constraints or unnecessary dependencies that would come baked into something like wordpress.</p>

<p>So, I build a custom blogging platform, from a Laravel base because Laravel is fantastic for this type of thing. And because I built it, I can extend it to do whatever I need it to. Plus.... I've been in a rut lately and I really just needed to ship something. :-)  </p>

<p>I may post more about the software/build process in another post.  It was a fairly straight forward build, but also kinda antithetical to the normal standard.</p>

<p>That's all for now, I guess.  </p>]]></content:encoded>
    <category>projects</category>
    <category>daily</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
  <item>
    <title>Building a Static Site Generator From Scratch</title>
    <link>https://blog.clvaughan.com/static-site-generator/</link>
    <guid isPermaLink="true">https://blog.clvaughan.com/static-site-generator/</guid>
    <pubDate>Sun, 19 Jul 2026 00:00:00 +0000</pubDate>
    <description>So, I built a thing.  Because it didn't exist in the exact way I wanted.</description>
    <content:encoded><![CDATA[<p>Every time I try to start a blog, I got bogged down in the framework, theming, etc... everything but writing actual blog posts. Eventually I get frustrated at the lack of simplicity for what i see as a simple thing, and abandon the project.  Not this time though.  This time, I was over frameworks that felt too complciated for what I wanted to do.  I don't need access to 5k plugins and 20k templates.  I just need a simple blog that can put my thoughts online, and on my own server.</p>

<h2>My Main Requirements</h2>
<p>The system had to have a few things:</p>
<ul>
    <li>Be able to accept raw HTML as a blog post (no special tags to work around an interpreter).</li>
    <li>A Minimal (or no) db. I settled on HTML files with YAML front matter (because simplicity), plus I don't need to open anything but the blog post html file to see all the information I need.</li>
    <li>Render them through templates - I wanted to be able to quickly swap design if I felt like it. Laravel offers blade templates so that was simple.</li>
    <li>Generate a static site I could deploy anywhere. Minimal server requirements. No composer, node, etc... even cheap shared hosting must satisfy.</li>
    <li>Include an RSS feed and basic API, for syndicaing relevant posts to different places, like my main site.</li>
    <li>Be build in such a way that it's easily extendable when I do want new features.  </li>
</ul>

<h2>Implementation</h2>
<p>I chose Laravel as the local tool, somewhat out of habit/preference, but also for Blade templates and Artisan commands. The structure of the application is pretty simple and The build process is straightforward: parse posts, render through templates, write to disk. Pages are basically static html/css with minimal js where necessary.</p>

<pre>
    <code>

blog_content/
  posts/              # HTML files with YAML front matter
  templates/          # Blade templates + CSS
    rootwork/
      style.css
      index.blade.php
      post.blade.php
      tag.blade.php
      partials/
        header.blade.php
        footer.blade.php
  images/             # Per-post images
    {slug}/
      hero.jpg
  assets/             # Shared images, fonts, etc.
dist/                 # Generated static site
config/blog.php       # All configuration
app/Extensions/       # Extension classes (just in case)
    </code>
</pre>
<pre><code>public function build(): array
{
    $posts = $this->postService->all();
    foreach ($posts as $post) {
        $html = $this->templateService->renderPost($post);
        file_put_contents("dist/{$post->slug}/index.html", $html);
    }
}</code></pre>

<p >I really like this build process because it just sort of gets out of my way.  I write each post in raw html and push it throgh the build process where it gets dropped into my template and then added to the static site. deployment is just uploading a single folder over scp/rsync.  I'm quite happy with how it turned out :-) </p>

<h2>What I Learned</h2>
<p>The code was the easiest part, once I figured out a structure that seemed intuitive. Then, how to render to static files in the way I needed to. </p>
<p>Deciding what to leave out was a bit of a challenge.  I noticed I kept reaching for standard paradigms that I didn't really need, just out of habit. In the end there's no comments, no analytics, no social sharing, etc. Just words on a page, rendered fast and served from a simple web server. Maybe I'll add comments or something later, but for now it's just me, screaming (softly) into the void, for my own sake.</p>

<p>Sometimes the best features are the ones you don't build... or something profound like that haha</p>]]></content:encoded>
    <category>projects</category>
    <css><link rel="stylesheet" type="text/css" href="https://blog.clvaughan.com/templates/rootwork/style.css"/></css>
  </item>
</channel>
</rss>
