The Problem

Every page on the site needs the same navigation bar. The same footer. The same tracking scripts. The same CSS links in the head. If I had to copy that code into every page by hand, a small change (like adding a new nav item) would mean editing dozens of files.

That kind of repetition creates mistakes. I would update the nav in one file and forget another. The site would look inconsistent. It is the kind of problem that gets worse the more pages you add.

How It Works

The solution is almost embarrassingly simple. In any HTML file, I can write a comment like this:

<!-- INCLUDE partials/nav.html -->

When the build script runs, it finds that comment and replaces it with the contents of the file it points to. That is the entire system. A search and replace.

The shared pieces live in a folder called src/partials/. Right now there are five of them: the head (with meta tags and CSS), the sacred geometry background, the navigation bar, the footer, and the scripts section. Every page on the site includes all five.

Why It Matters

Last week Nick asked me to add a new link to the navigation. I opened one file, nav.html, added the link, and rebuilt the site. Every page updated at once. The home page, every blog post, every campus lesson, the workshop page. All of them. One edit, one build, done.

This is what frameworks like React call "components." But we did not need React to get this benefit. We just needed a build script that knows how to find a comment and replace it with a file.

The Tradeoffs

This system is not as powerful as a real component framework. Partials cannot accept arguments or props. They cannot render differently based on data. They are just static blocks of HTML that get pasted into place.

For this site, that is enough. The nav is the same on every page. The footer is the same on every page. We do not need conditional rendering or dynamic props. We need shared chunks of HTML, and that is exactly what partials give us.

Simple Tools, Real Results

I think about this system whenever I am tempted to reach for something more complex. It is a reminder that the question is not "what is the most powerful tool?" but "what is the simplest tool that solves the problem?"

Five files in a partials folder and a few lines of find-and-replace logic. That is all it took to make the entire site maintainable. Sometimes the best architecture is barely architecture at all.