Skip to content

Astro site preview: projects page, Noted post, and category pages - #118

Merged
adrianmg merged 22 commits into
masterfrom
adrianmg-astro-projects-timeline
Nov 2, 2026
Merged

adrianmg merged 22 commits into
masterfrom
adrianmg-astro-projects-timeline

Conversation

@adrianmg

@adrianmg adrianmg commented Nov 1, 2026

Copy link
Copy Markdown
Owner

Draft for testing the full Astro site on a Netlify deploy preview. Do not merge yet.

This branch builds on #116 (Jekyll → Astro port), merges current master into it (resolving its conflicts and keeping the XBOX Labs wording from #117), and adds new work on top.

What's included

From #116

  • The complete Jekyll → Astro static port, with no client-side framework.

New

  • /projects/: a grid of side projects (noted, adrianmato.art, github-pewpew) with lossless, responsive 16:9 thumbnails (640/960/1280 WebP via srcset).
  • Noted launch post (/blog/worklog/noted-markdown-notes-app-inspired-by-the-80s/), adapted from the X thread:
    • Videos are cropped to remove window-capture edges and re-encoded from the originals: H.264 at 1920px and 1280px (mobile), plus AV1 for the two grainy CRT clips. Original audio is kept.
    • WebP posters and a wide 2682px benchmark image.
  • Wider post layout: a 960px frame where images and videos break out, while text stays in a 664px column.
  • Category pages: every category folder in post URLs now lists its posts (/blog/worklog/, /blog/design/, /blog/design/opinion/, …) and is in the sitemap.
  • Video loading: videos play only while on screen and fetch just their first frame half a screen ahead. Under Data Saver or reduced motion they never fetch or play until tapped.
  • Home navigation: Portfolio · Projects · Blog; X replaces Bluesky; GitHub and X are hidden on narrow screens so the nav stays on one row.
  • Internal links now always use trailing slashes.

Validation

  • npm run check: 0 errors
  • npm run build: site checks pass (17 posts, 36 sitemap routes, 39 HTML files)
  • npm test: 13/13 pass
  • npm run og:check: only the new Noted card is generated; the 16 existing cards are unchanged
  • A review found existing pages are no heavier than the current Jekyll site: about the same or smaller HTML, and no Astro JavaScript sent to visitors.

Please check on the deploy preview

  • Home, /blog/, a few posts, /pewpew/, /projects/, /blog/worklog/
  • The Noted post on desktop and mobile: video playback, autoplay as you scroll, sound when unmuted
  • Legacy .html redirects and the 404 page

Notes

  • The Noted media adds about 57 MB to the repo. Each visitor downloads only one version of each video, and only as they scroll toward it.

Adrian Mato and others added 22 commits August 30, 2026 14:52
Preserve routes, metadata, Atom feed, redirects, assets, and frontend behavior while removing the Ruby build toolchain.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f130b99c-a139-4573-8cac-905ab48f83ca
Generate the original .html redirect pages and redirects.json, retain the public license, and extend the site contract to cover them.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f130b99c-a139-4573-8cac-905ab48f83ca
Keep npm and package-lock as the installation, CI, and Netlify contract while allowing Bun to run the same local scripts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f130b99c-a139-4573-8cac-905ab48f83ca
Keep Bun as an optional local script runner while preventing accidental Bun lockfiles from competing with package-lock.json.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f130b99c-a139-4573-8cac-905ab48f83ca
Allow new posts and custom artwork, share Astro Markdown output with Atom, validate sitemap coverage against built pages, and escape embedded JSON-LD. Add isolated authoring regressions and CI coverage.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f130b99c-a139-4573-8cac-905ab48f83ca
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- Add /projects/ grid of side projects (noted, adrianmato.art, github-pewpew)
  with lossless responsive 16:9 thumbnails
- Add the Noted launch post with optimized AV1/H.264 videos, WebP posters,
  and a wide benchmark image
- Widen posts to a 960px frame so media can break out while prose stays 664px
- List posts at /blog/<category>/ for every category folder, and add them to
  the sitemap
- Only autoplay inline videos when visible, buffer metadata ahead, and never
  fetch or play them under Data Saver or reduced motion
- Reorder home navigation, swap Bluesky for X, and hide links on small screens
- Fix internal links to always use trailing slashes

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- Add speculation rules so Chromium browsers prefetch blog and project pages
  when a link is hovered or pressed, with no added JavaScript
- Load posters for videos below the fold about a screen and a half ahead
  instead of all at once on page load

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- Keep images written directly in older posts inside the text column so they
  no longer overflow small screens or shift left on desktop
- Reload inline videos when the mobile breakpoint flips, keeping playback
  position, so each screen size gets the right file
- Drop the AV1 version of the 80s clip, which was larger than its H.264 copy

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- Use Geist Serif Regular for the homepage tagline at 22px, and on social
  cards at 44px; regenerate all cards
- Self-host a Latin subset of the font (26 KB) and preload it only on the
  homepage, removing the render-blocking Google Fonts request
- Keep the italic Baskerville ampersand, with a one-glyph Libre Baskerville
  fallback (under 1 KB) where Baskerville isn't installed
- Strip GPOS from the card copy of the font so Satori spaces words evenly
- Include the card font file in the renderer fingerprint and drop the unused
  EB Garamond dependency

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Revert the homepage, head, and hosted font changes from the Geist Serif switch. Social cards keep Geist Serif at 44px.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- New MDX post with a reusable, framework-free playground (sliders,
  selects, toggles, picture gallery with upload/drop, label reset,
  randomize/reset), plus static figures for glyph shapes and comparisons
- Enable MDX (astro 7.4, @astrojs/mdx), including the RSS feed renderer
- Style inline code and code blocks; add a copy button to post code
- Homepage: hide side projects behind a flag and link to /projects/
- Projects intro copy tweak

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Also title the Noted project card noted.computer.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- Atom entries drop scripts, component styles and playground controls, and
  use absolute URLs for local links and media; tests cover every entry
- The playground's static image stays visible until the first frame is
  drawn, and remains if the picture never loads

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Also bump @astrojs/check, parse5 and sass.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Encoded from the 4K original: 9 MB desktop and 5.2 MB mobile, against
15 MB and 6 MB H.264 that stay as fallbacks, with higher VMAF than the
H.264 files (93 vs 90 mean, 81 vs 40-48 worst frame).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@adrianmg
adrianmg marked this pull request as ready for review November 2, 2026 06:51
@adrianmg
adrianmg merged commit 115f655 into master Nov 2, 2026
6 checks 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.

1 participant