Source for my software portfolio — https://kisoolabs.github.io/
A static site served by GitHub Pages from the repo root. No framework, no bundler — the one build step regenerates the notes/programs listings.
index.html— home: Head, Recent Notes, Programsnotes/— the Notes section (index.html,feed.xml, one folder per note)mactab/,usagepop/,pdf-page-remover/— project pages, each self-containedstyles.css,fonts/,assets/— shared shell styling and assetsdata/site.json— single source of truth for the note list and program listtools/build_site.py— regenerates every listing fromdata/site.json
-
Write the note at
notes/<slug>/index.html. -
Add an entry to the
notesarray indata/site.json(program: nullif the note isn't about one of the programs). -
Run the build:
python tools/build_site.py
That rewrites, from the one manifest:
- home
Recent Notes(newest 5, controlled bynotes_on_home) - home
Programs— each program'sMaking notebutton notes/index.html— the full listnotes/feed.xml— RSS
Only the regions between <!-- BUILD:*:start --> / <!-- BUILD:*:end -->
markers are touched; everything else in those files is hand-written. The script
is idempotent and fails loudly if a note points at a missing folder or an
unknown program.
Never hand-edit the generated regions or feed.xml — the next build
overwrites them. Editing the listings by hand is what let the home page fall a
note behind in July 2026.
Add an entry to the programs array in data/site.json (order in the array is
the display order — newest first) and run the build. Platform icons come from
platforms: windows, macos, web, chrome.