00 // MENU
NAV My Projects >> X Gallery >> X Repos >> NAV Posts >>
+--------------------------------------------------------------------+
            
created // [ 22.06.2026 ]

Today I decided to organize the website files and structure. The first thing I needed to do was solve the problem of duplicating the menu, site header, and decorative elements across all site page files. I really didn't want to resort to any frameworks.

HTML Import Script

When I decided to create this site, I decided that I would do it with the minimal possible technology stack. No libraries, no frameworks. Ideally, not even using scripts. This is a kind of protest against the fact that the frontend industry is mired in dependencies and libraries. Literally, almost every website now weighs an unreasonable amount because of the abundance of build layers and libraries.

Given this, I needed something like a templating engine. My eyes fell on PostHTML. But then, I thought that its functionality might be excessive for me. So I decided to write my own templating engine with the minimal functionality I need. And then, if necessary, expand it.

This way I will strictly control the code, keeping only what I really need.

So the functionality of my templating engine is as simple as possible: I simply introduce a new HTML construct like:

<include src="/path/to/index.html"/>

And my script simply goes through the file passed to it and replaces all such constructs with the contents of the file whose path is specified in src.

Project Structure

I also decided to structure the project a bit, since now I have the functionality to import in HTML files. For now, it looks like this:

  • components - folder where HTML code snippets are now located, which are imported using <include/>
  • dist - compiled HTML files ready to upload to neocities
  • post - essentially just a folder for my posts, and since there are many, it will be easier to keep them in a separate folder to avoid visual clutter

And next to the site itself, the rest of the files are located, for example a small script for communication with neocities in manager/. In fact, so far it just uploads files from site/dist/.

There's also a justfile here. I love this thing—I use them in almost all my projects elsewhere in the system.

That's all for now. Probably in the future, the structure will become more complex. I may write another post about this later.