<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Idan Goldman</title>
    <description>The latest articles on DEV Community by Idan Goldman (@idangoldman).</description>
    <link>https://dev.to/idangoldman</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F432440%2F1e347ff5-3ecf-468d-b67c-9942e84ecf25.png</url>
      <title>DEV Community: Idan Goldman</title>
      <link>https://dev.to/idangoldman</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/idangoldman"/>
    <language>en</language>
    <item>
      <title>King Content is Dead, Long Live King Content</title>
      <dc:creator>Idan Goldman</dc:creator>
      <pubDate>Tue, 14 Jul 2026 08:27:07 +0000</pubDate>
      <link>https://dev.to/idangoldman/king-content-is-dead-long-live-king-content-2f8c</link>
      <guid>https://dev.to/idangoldman/king-content-is-dead-long-live-king-content-2f8c</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;King Content lived a life of theory, hypothesis, and analysis, and died to live a life of thesis. Long live King Content II.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ideas are perfect until they meet reality and adjustments must be made as Plan B or C (OK, more like Plan K-L-M-N-O-P). The exact same thing happened to me while writing &lt;em&gt;&lt;a href="https://dev.to/idangoldman/a-thesis-on-personal-website-architecture-foo"&gt;Content is King&lt;/a&gt;&lt;/em&gt;. While the theory made perfect sense on paper, in practice it required real-world adjustments to become a thesis. In this field note, I will review what actually worked to keep my focus solely on content while moving the plumbing code aside.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plumbing Code
&lt;/h2&gt;

&lt;p&gt;The most significant architectural shift was replacing &lt;em&gt;Quartz&lt;/em&gt; with &lt;em&gt;Hugo&lt;/em&gt; and the &lt;em&gt;Stack&lt;/em&gt; theme. For my specific use case, Hugo is simply a better-matched &lt;em&gt;SSG&lt;/em&gt;, allowing me to minimize additions and extensions to the codebase.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Write &amp;gt; Preview &amp;gt; Publish &amp;gt; Read&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The second major adjustment to the plumbing code was the forgotten step of &lt;em&gt;previewing&lt;/em&gt; the website before publishing. I needed a way to review the look, feel, and theme of the website before publishing it live, rather than debugging it after the fact. To achieve this, I used &lt;em&gt;Process Compose&lt;/em&gt; as a lightweight alternative to &lt;em&gt;Docker Compose&lt;/em&gt;, reusing my existing scripts while keeping &lt;em&gt;BASH&lt;/em&gt; scripting as the good old glue holding everything together.&lt;/p&gt;

&lt;p&gt;For an expand version of tools used to glue the website togather, you can check out the &lt;a href="https://github.com/idangoldman/web#credit-where-due" rel="noopener noreferrer"&gt;README.md&lt;/a&gt; on the public &lt;em&gt;GitHub&lt;/em&gt; repository mirror.&lt;/p&gt;

&lt;h2&gt;
  
  
  Structure
&lt;/h2&gt;

&lt;p&gt;On the structural side, the biggest change involved decluttering the notebook folder. I split a single, flat list of files into 3 sub-folders:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;archived&lt;/code&gt;: Content from previous website iterations that I still want to keep.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;drafts&lt;/code&gt;: Ideas and active writings, which are excluded from the public mirror repository on GitHub, I want to keep an element of surprise — BOO!&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;published&lt;/code&gt;: Finalized writings live on the current website.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All other changes were minor cleanups of unused assets and content or small migrations to better-suited place for them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Content vs. Plumbing Code Ratio: &lt;code&gt;2:1&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;...and instead of boring you with a Git repository tree code block, here is the breakdown of how the repository's files are distributed:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Asset&lt;/th&gt;
&lt;th&gt;%&lt;/th&gt;
&lt;th&gt;Files&lt;/th&gt;
&lt;th&gt;%&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Content&lt;/td&gt;
&lt;td&gt;66.39%&lt;/td&gt;
&lt;td&gt;Markdown&lt;/td&gt;
&lt;td&gt;42.62%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;JPG&lt;/td&gt;
&lt;td&gt;14.75%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;PNG&lt;/td&gt;
&lt;td&gt;8.20%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;0.82%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code&lt;/td&gt;
&lt;td&gt;33.61%&lt;/td&gt;
&lt;td&gt;HTML&lt;/td&gt;
&lt;td&gt;7.38%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;SVG&lt;/td&gt;
&lt;td&gt;8.20%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;YAML&lt;/td&gt;
&lt;td&gt;7.38%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;TOML&lt;/td&gt;
&lt;td&gt;5.74%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Shell&lt;/td&gt;
&lt;td&gt;2.46%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;SCSS&lt;/td&gt;
&lt;td&gt;1.64%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;JS&lt;/td&gt;
&lt;td&gt;0.82%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Workflows
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj8pymx8me4arj0wu3m27.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj8pymx8me4arj0wu3m27.png" alt="Workflow diagram" width="800" height="125"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For automation, I broke down one monolithic workflow into two smaller, single-purpose workflows, and added two helper workflows that I didn't know I would need in theory phase:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Release&lt;/code&gt;: Handles structuring the content and plumbing code in the right way for &lt;em&gt;Hugo&lt;/em&gt;, building the static files, and packaging the website into a versioned &lt;em&gt;ZIP&lt;/em&gt; file uploaded to the &lt;em&gt;Forgejo Registry&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Publish&lt;/code&gt;: Pulls the latest versioned package from the &lt;em&gt;Forgejo Registry&lt;/em&gt; and deploys it to &lt;em&gt;Cloudflare Pages&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Mirror&lt;/code&gt;: Automatically maintains an up-to-date copy of the repository on &lt;em&gt;GitHub&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Purge Packages&lt;/code&gt;: Automatically cleans-up older website builds from the &lt;em&gt;Forgejo Registry&lt;/em&gt; to prevent disk space bloat and unexpected "insufficient funds" crush.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Writing Content
&lt;/h2&gt;

&lt;p&gt;The one thing I still hypothesize on is my writing tools.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On &lt;em&gt;macOS&lt;/em&gt;: I use &lt;em&gt;iA Writer&lt;/em&gt; and &lt;em&gt;VS Code&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;On &lt;em&gt;iOS&lt;/em&gt; and &lt;em&gt;iPadOS&lt;/em&gt;: I use &lt;em&gt;Obsidian&lt;/em&gt; with &lt;em&gt;Obsidian Git&lt;/em&gt; plugin or &lt;em&gt;Forgejo’s&lt;/em&gt; native web UI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't perfect setup yet, but gets the job done for me to continue and release-publish content to you the readers.&lt;/p&gt;

&lt;p&gt;Thanks for reading, and see you in the next one.&lt;/p&gt;

</description>
      <category>contentwriting</category>
      <category>architecture</category>
      <category>jamstack</category>
      <category>automation</category>
    </item>
    <item>
      <title>A Thesis on Personal Website Architecture</title>
      <dc:creator>Idan Goldman</dc:creator>
      <pubDate>Mon, 13 Jul 2026 09:28:03 +0000</pubDate>
      <link>https://dev.to/idangoldman/a-thesis-on-personal-website-architecture-foo</link>
      <guid>https://dev.to/idangoldman/a-thesis-on-personal-website-architecture-foo</guid>
      <description>&lt;p&gt;For years, I had developer's block as a writer — trying to build/rebuild/optimize the website, putting my writings aside, chasing the perfect structure worthy enough to exhibit my thoughts, ideas, feelings, and work. All I wanted was a way to write and post the damn thing… yet all I did was code the damn thing, which got me blocked from writing the damn thing again and again. Now, I'm trying a new thing (for me): writing about how to build the damn thing while building the damn thing — dogfooding myself, if you will.&lt;/p&gt;

&lt;p&gt;So… my current thesis is: content should be front and center, with everything else kept aside and to a minimum.&lt;/p&gt;

&lt;h2&gt;
  
  
  Focus on Content
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Write &amp;gt; Publish &amp;gt; Read&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pretty simple, isn't it? While it looks like any other generic content-publishing flow out there, my peace of mind lies in the details — keeping plumbing code out of sight, hidden in a dot folder, while content resides in the git repository's root folder. Let me explain what I mean by that.&lt;/p&gt;

&lt;p&gt;In any other SSG/CMS setup, the codebase is front and center and the content is just a folder or database entry that plays its part. I don't like that, because it takes my focus from writing the content to maintaining the codebase, as any other ADHD developer would.&lt;/p&gt;

&lt;p&gt;This time, content files are the main focus — as they always should have been — while the code setup files sit in a "hidden" folder at the top of the git repository. That way, when I open the main folder in any editor, the content is right there and not in a side folder a couple of clicks down.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it looks
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;web/
├── .forgejo/
├── about.md
├── home.md
├── notebook/
│&amp;nbsp;&amp;nbsp; ├── april-fools-beginning.md
│&amp;nbsp;&amp;nbsp; ├── i-want-to-tell-you-a-story.md
│&amp;nbsp;&amp;nbsp; ├── month-of-flying-by.md
│&amp;nbsp;&amp;nbsp; ├── public-beta-is-out/
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── content.md
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── staticpage-logo.png
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── staticpage-landing-page.png
│&amp;nbsp;&amp;nbsp; ├── ready-to-go-full-time.md
│&amp;nbsp;&amp;nbsp; └── ...
├── ...
└── studio.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Well, what do you think? To my eyes the codebase clutter is gone, and all I'm left with is structured content — files and folders translated into web paths, with some code plumbing underneath, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;about.md&lt;/code&gt; becomes &lt;code&gt;/about/index.html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;home.md&lt;/code&gt; becomes &lt;code&gt;/index.html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;content.md&lt;/code&gt; files inside folders become &lt;code&gt;index.html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Any media files (like images) related to a piece of content live beside it, in a folder named after that piece of content.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The hidden piece of code plumbing (the magic) is done inside the &lt;code&gt;.forgejo&lt;/code&gt; folder. Take a look:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.forgejo/
├── quartz/
│&amp;nbsp;&amp;nbsp; ├── custom.scss
│&amp;nbsp;&amp;nbsp; ├── quartz.config.ts
│&amp;nbsp;&amp;nbsp; └── quartz.layout.ts
└── workflows/
    ├── build.yml
    └── deploy.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, what do we have here? &lt;code&gt;workflows&lt;/code&gt; and &lt;code&gt;quartz&lt;/code&gt; folders — one for building and deploying the website's content you read here, and the other for the website's configuration and customization you see here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Forgejo and Quartz?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Forgejo&lt;/strong&gt; is easy: I already enjoy using it as my self-hosted git server and action runner. It runs blazing fast (in my setup) and has a snappy web UI, which helps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quartz&lt;/strong&gt;… don't know yet, we will see. Seems like it's made for generating websites out of folder-based content structures like &lt;em&gt;Obsidian&lt;/em&gt;'s, and comes with supporting plugins to make life easier.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Workflows
&lt;/h2&gt;

&lt;p&gt;The last part of this piece, before I jump into proving my thesis right, is how it all actually comes together — from writing a piece of content, through publishing it, to reading it on this website. The best way for me to explain is with a flowchart. So, here it is:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fujcibek4klnuxw2zlizj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fujcibek4klnuxw2zlizj.png" alt="Workflow diagram" width="800" height="759"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yeah, I know it's a bit much for a personal website, and might change later.&lt;/p&gt;

&lt;h2&gt;
  
  
  The End
&lt;/h2&gt;

&lt;p&gt;…and that's it, folks — thank you for reading! See you next time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; If you are reading this, the website is up and this content piece is already outdated on how the actual website got built. Wait a minute for the next post to read how the website was actually released and published.&lt;/p&gt;

</description>
      <category>contentwriting</category>
      <category>architecture</category>
      <category>jamstack</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
