Skip to content

Finish the Astro migration and switch deployment to GitHub Pages#6

Merged
AlFontal merged 16 commits into
mainfrom
migrate/astro
Apr 21, 2026
Merged

Finish the Astro migration and switch deployment to GitHub Pages#6
AlFontal merged 16 commits into
mainfrom
migrate/astro

Conversation

@AlFontal

@AlFontal AlFontal commented Apr 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • complete the Astro migration across the site UI, content model, notebook publishing flow, and static deployment setup
  • switch deployment from the extra published branch flow to native GitHub Pages Actions, while keeping the repo ready for external DNS management
  • add notebook watch scripts, improve Quarto-backed post rendering, and import the vegetation and land-use notebook post with its source assets
  • refine the homepage, projects, publications, and blog layouts, including responsive cleanup and a single consistent blog-card treatment
  • add giscus comments for blog posts, mapped to GitHub Discussions and synced with the site theme
  • clean up generated-output ignore rules and remove vestigial migration leftovers in the content model and styles

Testing

  • npm run check
  • npm run build

Notes

  • The repo is ready for GitHub Pages, but repository Pages settings still need to be set to GitHub Actions
  • Netlify DNS changes are intentionally not part of this PR
  • giscus is currently configured against the repository Discussions Comments category

The CV was drifting toward nested surfaces and long vertical scans, so this
change flattens the information architecture while keeping progressive
disclosure where it helps. Development skills now scan in two columns,
experience uses lighter expandable rows, and education/languages follow the
same flatter rhythm instead of introducing another layer of panels.

Astro's static checker is also installed so CV changes can be validated
without relying only on build output.

Constraint: The CV needed faster scanning while preserving expandable detail for evaluators
Rejected: Keep the long single-column skills list | too verbose and visually monotonous
Rejected: Reintroduce dense inner cards for education and languages | compounded the section-in-section weight problem
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Keep CV subsections visually flat inside the main section shells unless a browser QA pass proves extra surfaces are necessary
Tested: npx astro check; npm run build; Playwright visual QA on /cv at desktop and mobile sizes
Not-tested: Print/PDF rendering of the HTML CV
The previous CV pass improved scanability, but the disclosure rows still
wasted horizontal space, the action label competed with metadata, and the
languages column felt visually disconnected from the education side.

This follow-up makes the expanded state use the available width, moves the
expand/collapse affordance into a clearer trailing control, softens the open
state so hover remains perceptible, and vertically centers the languages
column against the education records.

Constraint: Changes had to stay scoped to the Astro CV surface and preserve the existing data model
Rejected: Keep the summary line visible while expanded | redundant copy compressed the detail area
Rejected: Use the same strong glow for open and hover states | made hover feedback feel fixed instead of interactive
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep expanded disclosure rows wide and avoid reintroducing hard max-width limits that force unnecessary wrapping
Tested: npx astro check; npm run build; Playwright visual QA against built /cv page at desktop and mobile sizes
Not-tested: Browser-specific differences outside the Playwright run
The previous CV layout improved structure, but the experience header still had
awkward negative space and the tag styling felt out of place. This pass makes
better use of horizontal space, compacts the skills into a 3x2 grid, and uses
career-coach CV data to sharpen the skill taxonomy toward Python engineering,
ML evaluation, workflow automation, and collaborative delivery.

Constraint: The changes needed to stay within the Astro CV surface while preserving responsive readability
Rejected: Keep the broader six-skill labels unchanged | they wasted width and undermined the denser 3-column layout
Rejected: Preserve the old outlined mono pill styling | it looked disconnected from the rest of the CV surfaces
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: If skills stay in a 3-column grid, keep labels short and summaries tightly edited so the layout earns the density
Tested: npx astro check; npm run build; Playwright visual QA against built /cv page on desktop
Not-tested: Additional mobile QA after the final skill-label shortening tweak
The disclosure version of the skills section was too heavy for content that is
already short. This change restores always-visible skill cards, keeps the copy
fully readable without interaction, and removes the persistent expanded-state
highlight from experience so emphasis only appears on hover.

The CV page title now includes Alejandro Fontal, PhD without changing the main
visible heading.

Constraint: The fix needed to stay scoped to the Astro CV surface and preserve the current data structure
Rejected: Keep collapsible skill cards with short copy | interaction cost was higher than the value of hiding the text
Rejected: Preserve open-state accent styling on experience rows | made expanded rows look hovered even when idle
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep CV interactions proportional to content length; short descriptive text should usually stay visible
Tested: npx astro check; npm run build; Playwright visual QA against built /cv page on desktop, including expanded experience state
Not-tested: Mobile QA after this simplification pass
The previous change put the PhD suffix into page metadata, but the request was
specifically about the visible CV card heading. This updates the displayed CV
name without touching the homepage heading.

Constraint: The fix had to change only the CV-facing name source and avoid homepage regressions
Rejected: Leave the visible heading unchanged and rely on metadata | did not address the actual UI request
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Treat content requests about visible titles as UI changes first, not metadata changes
Tested: npm run build
Not-tested: Browser QA for this one-line content correction
This consolidates the current migration branch into a deployable Astro site with
Quarto-backed notebook posts, updated homepage/blog/projects/publications
presentation, a user-facing README, notebook watch scripts, and native GitHub
Pages deployment wiring.

The repo now treats notebooks as source content and render artifacts as build
outputs, which keeps the working tree cleaner and makes the deployment story
match the actual architecture: build in GitHub Actions, serve static files,
and keep Netlify available only for DNS if desired.

Constraint: Notebook-backed posts must preserve Quarto-authored structure while still rendering inside the Astro shell
Constraint: Hosting must remain static-only so the site can move cleanly to GitHub Pages
Rejected: Keep deploying by publishing to site-html | adds an extra published branch without adding functionality
Rejected: Commit generated Quarto fragments and copied notebook assets | they are reproducible build artifacts and create noisy diffs
Confidence: medium
Scope-risk: broad
Reversibility: clean
Directive: Treat notebooks/ as source and web/src/generated plus copied notebook assets as generated outputs; do not recommit them without changing the build contract
Tested: npm run check; npm run build
Not-tested: Live GitHub Pages deploy and Netlify DNS cutover
Add a reusable giscus comments component for blog posts, tighten the about and project layouts across breakpoints, simplify the blog index to one card pattern, and fold in the latest content updates.

Also removes a few vestigial migration leftovers such as unused featured-post and quick-path labels plus dead feature-story styling.
@AlFontal AlFontal merged commit 4b778a3 into main Apr 21, 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.

1 participant