Skip to content

Website overhaul, phase 1: Astro site with the dwm desktop - #15

Merged
NN0X merged 12 commits into
devfrom
claude/beautiful-ritchie-ejszez
Oct 1, 2026
Merged

NN0X merged 12 commits into
devfrom
claude/beautiful-ritchie-ejszez

Conversation

@NN0X

@NN0X NN0X commented Oct 1, 2026

Copy link
Copy Markdown
Owner

Phase 1 of the overhaul agreed in docs/overhaul/DECISIONS.md. It replaces the PHP/HTML site with an Astro project that builds static files for Apache on the Pi.

What's in it

  • Static pages in English and Polish (/… and /pl/…): home, all repositories, one page per public repo (34), and a 404 page. They work without JavaScript and carry hreflang links for search engines.
  • The dwm desktop, loaded over those pages:
    • Bar: tags, layouts, dmenu, a [us]/[pl] language switch, and Kraków time and weather.
    • zsh with the oh-my-zsh behaviour: highlighting, suggestions, completion menu, typo correction, autocd, plus the easter eggs.
    • htop listing every repo.
    • nvim with a dashboard and project pages: README, code excerpt, git log, demo.
    • A partly working Firefox.
    • A project URL opens that project in nvim, and the address bar follows whatever is open. Visitors can switch to the plain pages and back.
  • Build-time repo data (npm run data): activity, recent commits, file trees and code excerpts come straight from the repos. The only hand-written content is the project write-ups (src/content/projects/{en,pl}/*.md).
  • Redirects from the old URLs (/html/projects, /html/proj/brutus, /html/proj/cicero, and /html/proj/f1ratings from the F1Ratings README). The old easter-egg routes are kept.
  • House style enforced by ESLint: Allman braces and 8-space indents, as in the C/C++ repos. Unit tests and a CI workflow are included.

Not in this phase

  • Demos: the Brutus and Cicero demos are mocks until the WebAssembly builds (phase 2).
  • F1Ratings: f1ratings opens the write-up; the tables arrive in phase 3.
  • Media and deployment: the easter-egg pages, re-encoded media, the deploy workflow and the Pi pull script come in phase 4.
  • The committed repo-data snapshot: it was generated without the GitHub API, so repo descriptions are empty and languages are guessed from file extensions. Running npm run data with API access (for example in CI) fills in the real values.

Checks

  • npm run verify: lint, astro check (0 errors), 12 unit tests and a 73-page build all pass.
  • Browser walkthrough on the built site:
    • The desktop boots; deep links, URL syncing and the EN/PL switch work.
    • The 404 page boots the desktop with a shell message.
    • Plain and desktop switching works.
    • The no-JS pages render, and the phone layout works.

Before merging dev into master

The old site is only preserved in master's history. Please create the legacy branch first (git push origin master:legacy); this session can't create branches.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Nq9YrSAj91fqZFLCbH3CUM


Generated by Claude Code

NN0X and others added 12 commits September 24, 2024 16:40
Htaccess fix and merge changes
SUPER IMPORTANT CHANGE (not)
changed projects styling and added cicero tokenizer
Merge pull request #5 from NN0X/htaccess-fix
important cicero fix
Records the agreed stack, hosting and design decisions for the v2 site
and checks in the clickable prototype plus the script that pulled its
repo data. Both are replaced by the real Astro build in phase 1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nq9YrSAj91fqZFLCbH3CUM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nq9YrSAj91fqZFLCbH3CUM
The PHP/HTML site lives on in master's history (and on the legacy branch
once created). The new project builds static files for Apache on the Pi:
Astro 7 with TypeScript, ESLint enforcing the house style (Allman braces,
8-space indents), Vitest, the logo assets and an .htaccess that redirects
the old /html/... URLs and keeps the easter-egg routes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nq9YrSAj91fqZFLCbH3CUM
scripts/fetch-repos.mjs lists public repos via the GitHub API (or a given
list), reads each with a blob-less bare clone and records monthly activity,
recent commits, the top-level tree and a code excerpt per featured project.
The featured projects are configured in src/data/projects.json and
described in Markdown, one file per language.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nq9YrSAj91fqZFLCbH3CUM
Home, all repositories, a page per repository and a 404 page, with
hreflang alternates. They are complete without JavaScript and are what
search engines index; the desktop loads over them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nq9YrSAj91fqZFLCbH3CUM
Window manager with per-tag layouts, bar (Kraków time and Open-Meteo
weather, [us]/[pl] language switch), dmenu, dunst notifications, and the
zsh, htop, nvim and Firefox windows from the approved mockup. Project URLs
open the project in nvim and the address bar follows what is open. If the
desktop fails to start the plain page stays visible, and visitors can
switch between the two.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nq9YrSAj91fqZFLCbH3CUM
Unit tests for the shared helpers and the shell's filesystem, a CI
workflow running lint, type check, tests and build, a README for the new
project and the phase plan in the decision record.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nq9YrSAj91fqZFLCbH3CUM
@NN0X
NN0X merged commit 4527b1f into dev Oct 1, 2026
1 check passed
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.

2 participants