diniscruz.ai / engineering

How this site is built

This is a static site on GitHub Pages, built the same way as sgit.ai and open-source.sgit.ai, and sharing their design language. There is no framework and no JavaScript bundle. Every page works without scripts, and every page has a markdown twin.

Two kinds of page

KindSource of truthWhat the build does
Hand-written
home, about, building, admin
The .html file itself, edited by handRewrites the nav and footer from admin/build/site_config.py, fills the <!-- build:* --> blocks (such as the latest-writing cards), and derives the .md twin from the HTML
Generated
essays, research hubs, talks
The markdown under content/, migrated from docs.diniscruz.ai with its front matter intactRenders each file to HTML at the same path it had on docs.diniscruz.ai, expands the old MkDocs macros (PDF, LinkedIn, video and slide embeds), and writes the cleaned markdown as its twin

The indexing surfaces

Search and AI features

Google's guidance for its AI features (AI Overviews and AI Mode) is that no special optimisation is needed beyond the fundamentals, so this site does the fundamentals and checks them on every build:

llms.txt follows the llmstxt.org format. Google has said its search does not use llms.txt, so it is here for the other agents and LLM tools that do read it, not for ranking.

Release process

  1. Bump admin/build/version.txt and add a row to the release history.
  2. pip install -r admin/build/requirements.txt (python-markdown and PyYAML, once).
  3. python3 admin/build/build.py regenerates every derived file.
  4. node admin/build/validate.js checks the version, internal links, canonicals, twins and licence lines.
  5. git commit -am "site vX.Y.Z: ..." && git push origin dev

Every push runs .github/workflows/deploy-pages.yml. It rebuilds the site and fails if anything committed is stale, then validates, then deploys to GitHub Pages. Pull requests run the checks only.

Adding an essay

Drop a markdown file at content/YYYY/MM/DD/slug.md with the same front matter the old site used (title, authors, date, and optionally description, tags, pdf_file, linkedin and back_link), then run the build. It appears in the writing index, the feed, the sitemap, llms.txt and, if it is among the newest, on the home page.