Skip to content

feat: make more generic and optimize version - #8

Merged
dineshbyte merged 7 commits into
mainfrom
fix/dependabot-xmldom
Jun 20, 2026
Merged

feat: make more generic and optimize version#8
dineshbyte merged 7 commits into
mainfrom
fix/dependabot-xmldom

Conversation

@dineshbyte

Copy link
Copy Markdown
Owner

No description provided.

…erts

The 4 High Dependabot alerts were all @xmldom/xmldom@0.7.13, a transitive
dep of epubjs (the only dev deps). These deps existed solely to refresh the
vendored lib/ reader bundles via 'pnpm run vendor' — never deployed, never
executed (the vendor script only copies files). EPUBs are now local-only and
the in-browser reader is orphaned, so removing both dev deps + the lockfile
deletes the vulnerable subtree at the root and restores a true zero-dependency
repo. Vendored lib/ bundles stay committed, so reader.html still works locally.

Removes: devDependencies (epubjs, jszip), the 'vendor' script, pnpm-lock.yaml.
Closes 4 High Dependabot alerts (no manifest left for them to resolve from).
The reader (reader.html), its local static server (server.js), vendored
libs (lib/epub.min.js, lib/jszip.min.js), and package.json existed solely
to support the personal/local EPUB reader — nothing else in the site links
to them. With EPUBs now local-only, the whole stack is dead weight in the
public repo.

Untracks (keeps on local disk via .gitignore) the reader, server, lib/, and
package.json, drops reader.html from sitemap.xml, leaving the public repo as
pure static HTML with zero dependencies and zero EPUB footprint. Combined
with removing the epubjs/jszip dev deps, there is no manifest left for
Dependabot to flag.
Move the entire published static site (index.html, assets/, all 9 track
folders, sitemap.xml, robots.txt, .nojekyll) into docs/ so the repo root
holds only meta (README, LICENSE, config). GitHub Pages serves docs/ as the
site root, so all relative links, canonical/OG URLs, and sitemap entries are
unchanged — no build step, no CI (just set Pages source to main /docs).

Also drops the now-orphaned pnpm-workspace.yaml (epubjs/pnpm build config,
dead after removing the dev deps). Updates README quick-start, Pages
instructions, and repo-layout for the docs/ root.

ACTION REQUIRED after merge: Settings -> Pages -> Branch: main, Folder: /docs.
Unify all 9 track folder slugs on the dominant bare kebab-case pattern and
fix a long-standing typo:
  ai-agents-mastery -> ai-agents
  rest-api-matery   -> rest-api   (was misspelled 'matery')

Swept every web-facing reference across 24 files: hub links, cross-links,
canonical/OG URLs, sitemap entries, and FAQ JSON-LD. Sitemap re-validated.
EPUB internal identifiers (dc:identifier UUID) and local build notes are
intentionally left unchanged — they are stable book IDs, not web paths.

Public URLs change (/rest-api-matery/* -> /rest-api/*, /ai-agents-mastery/*
-> /ai-agents/*); done now while the docs/ Pages cutover is still pending and
the indexed footprint is ~zero.
Adds two zero-dependency Node checks (built-ins only) and wires them as CI
gates that run on PRs and pushes to main touching docs/:

  scripts/check-broken-links.js  — verifies every internal href/src in docs/
    resolves to a real file, GitHub-Pages style (exact, then .html, then
    /index.html); skips external links, anchors, and <script>/<style> content.
  scripts/validate-content.js    — per indexable page: exactly one <title>,
    canonical, og:url, meta description; interview data-level values valid
    (core|senior|staff|design); JSON-LD parses; sitemap.xml is in sync with
    files on disk (no stale entries, no missing lesson/reference/hub pages).

  .github/workflows/link-check.yml
  .github/workflows/content-validation.yml

The link checker immediately caught 14 pre-existing broken links: REST
interview/ and reference/ pages linked to ../index.html (a non-existent
rest-api/index.html) instead of the hub at ../../index.html — fixed here.

Turns the manual pre-merge checks into enforced, non-bypassable gates.
Adds a pull request template and three issue templates tailored to StackDepth:

  PULL_REQUEST_TEMPLATE.md       — what/why, change type, scope, and a checklist
    that mirrors the CI gates (run check-broken-links + validate-content, sitemap
    updated, SEO tags) plus content-quality gates (visual-first ship test, cited
    sources, valid interview panel, length-balanced quiz).
  ISSUE_TEMPLATE/content-fix.md  — accuracy/clarity/typo, requires a source for
    factual corrections (matches the 'never from memory' content rule).
  ISSUE_TEMPLATE/new-content.md  — propose a lesson/track with rung + outline + sources.
  ISSUE_TEMPLATE/bug-report.md   — broken link/rendering/search, with repro + env.
  ISSUE_TEMPLATE/config.yml      — disables blank issues; links to the site and Discussions.

Templates activate once on the default branch (main).
The og-cover (used as og:image/twitter:image on every page) was stale: it
still read 'ENGINEERING LEARNING HUB', advertised 'Kindle EPUBs' (removed),
and was missing the Context Engineering track (8 chips, not 9). That wrong
card showed on every social/link share.

Updated og-cover.svg to StackDepth branding, headline 'System design & AI
engineering, from first principles', tagline with 'interview panels' instead
of EPUBs, and a 9th 'Context' chip; re-rasterized og-cover.png (1200x630).
@dineshbyte
dineshbyte merged commit dbf79d0 into main Jun 20, 2026
2 checks passed
@dineshbyte
dineshbyte deleted the fix/dependabot-xmldom branch June 20, 2026 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant