Finish the Astro migration and switch deployment to GitHub Pages#6
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Testing
Notes