Skip to content

Astro rebuild - version 3.0.0#12

Merged
Fayhen merged 61 commits into
mainfrom
next
Jun 23, 2026
Merged

Astro rebuild - version 3.0.0#12
Fayhen merged 61 commits into
mainfrom
next

Conversation

@Fayhen

@Fayhen Fayhen commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Summary

This PR delivers a complete site rewrite, migrating the previous Vue 3 + Quasar SPA to an Astro static site, built by hand.

This delivers a faster, mostly-static site with a redesigned UI, full internationalization, a theming system, and extensive accessibility work.

Stack migration

Completely rebuilt the application, dropping the previous Vue/Quasar stack in favor of Astro 6, including:

  • Astro 6 islands architecture for components.
  • New UI.
  • Handmade CSS.
  • Moving from yarn to pnpm.
  • An Open Graph image generation build step (scripts/build-og-image.mjs).

UI redesign

A new UI was implemented, inspired by various similar online portfolios and Figma designs. The branding was also updated, with an updated logo and favicon set.

This new UI features:

  • Responsive Astro components.
  • A new theming system via CSS custom properties.
  • A themeable icon set.
  • New typography.
  • Cross-browser layout fixes.

Internationalization

en-US and pt-BR were kept as the available locales, with en-US as the default fallback. This is delivered through a custom i18n layer (src/i18n/ui.ts, locales.ts) integrated with Astro's tooling, including:

  • Localized routes (/, /pt-br/).
  • Route-aware language switching.
  • Default locale fallback.

Accessibility

Extensive attention was paid to accessibility features, previously maintained as an afterthought. The new site delivers:

  • Semantic markup and keyboard-navigable controls throughout.
  • WCAG-compliant skip-to-main-content link.
  • Reduced-motion handling on various elements.

SEO

Attention was also paid to SEO features, bringing in several additions and new features to the new site:

  • Localized page titles
  • Open Graph tags with per-locale OG images
  • JSON-LD structured data
  • New favicons/webmanifest
  • Sitemap
  • robots.txt.

Fayhen added 30 commits April 24, 2026 09:51
Deleted old application, kept a few assets.
Set up boilerplate for the next version with Astro.
Implemented a theme toggling system. Organized styles into CSS files. Added FOUC prevention on inlined
script at head. Added a few starter components.
Added a golbal page container class and a logo component to the header.
Added an presentation component with name, title and profile picture.
Made a few UI tweaks and added more about me text.
Added new logos, integrated with theme toggle.
Added, configured and ran ESLint.
Configured and applies a few additional TypeScript rules.
Added a new skills and experience section.
Added current experience as a listing of collapsible cards.
Redesigned the experience section, with one column for experience listings and another for stack and activity (currently a placeholder).
Migrated old project data into a new structure, with very early UI to visualize information.
Removed deprecated files from old_assets/.
Reworked the projects section with a grid layout and better cards.
Made more improvements to the featured project cards. Refactored the stack icons with Astro's Image component.
Various improvements to project card CTA elements. Reorganized icon folders.
Minor tweaks to the introduction section.
Added a contacts section and tweaked fa icons to respond to theme palettes.
Improved responsivity at the experience section.
Added a simple footer.
Added, configured and ran stylelint in the codebase.
Ongoing refactor of the theme system.
Refactored the featured projetcs strip for better looks and mostly finished the new theming system, with
footer elements and a few others remaining.
Integrated the footer with new theme tokens.
Added a header box-shadow theme token. Adjusted the body's padding.
Made several enhancements to the experience item cards, including animated toggling, dropdown icons and several accessibility
improvements. Also Fixed an accessibility issue in the Logo component.
Added base typography using the Inter font.
Added a skip-to-main-content link, conforming to the WCAG 2.4.1 Bypass Blocks rule.
Extensive improvements to the header and navbar. Added different navbar layouts for mobile and desktop views.
Added a togglable navbar menu with transition animations. Took extra care with accessibility standards.
Made a few tweaks to the footer and the dark theme.
Fayhen added 25 commits May 30, 2026 00:08
Fixed 4s lint times with ESLint due to configuration block ordering overriding an important tab rule setting on .astro files.
Made UI improvements to the language switcher and the theme toggle components.
Made a few content alignment tweaks to the StackPill.astro compoenent and CTA buttons on project cards.
Refactored the projects section and components into a single component featuring both featured and
and other project rows.
Fixed a couple instances of cross-browser layout discrepancies, specifically the experience item dropdowns
and featured projects strip.
Hided the activity placeholder element in the skills and experience section.
Adjusted inner margins in the tools column.
Adjusted the padding surrounding the experince inner list in at ExperienceItem.astro.
Added a dedicated projects page.
Tweaked exisiting navigation links to be locale-aware and not reset the selected language.
Also added a link to the projects page at the home page.
Tweaked laguage switching so that it's route-aware, meaning it stays in the current page when a new language is selected.
Extracted the footer to a reusable component.
Extracted the contacts section contents to a reusable component.
Favicon rework. Added a theme-compliant logo.svg file and integrated to Logo.astro. Created an alternate logo for
display as favicon at small sizes. Optimized logo and favicon SVGs with svgo. Added relevant favicon PNGs at different
resolutions. Added a site.webmanifest. Added a meta description. Moved old assets into legacy directory.
Added i18n SEO hreflang signals to the base layout.
Updated pnpm to version 11.8.0 and added sharp to dev dependencies for use at build time.
Added localized page titles.
Added Open Graph meta tags. Added a Open Graph image builder script via shap, which produces a
/public/og-image.jpg file based on the current profile picture at src/assets/images/profile-pic.jpg.
Integrated OG image generation with the dev and build scripts, leaving the final file out ofthe git
history.
Adjusted the Open Graph image pipeline to include internationalized text for each available locale.
Added JSON-LD structured data to the base layout, along with a locale-compliant data builder.
Added an automated sitemap Astro integration, and a robots.txt file.
Extracted and reused the ProjectCategoryTag.astro component. Also removed the leftover
Welcome.astro boilerplate component.
Reduced animations on the project cards at the ProjectStrips.astro component, restricting motion to
the CTA buttons and tack tags.
Updated the README.md for the latest version.
Created new CI and deployment to GitHub Pages pipelines
Updated package.json with version 3.0.0 and made minor additions.
@Fayhen Fayhen self-assigned this Jun 23, 2026
@Fayhen Fayhen added enhancement New feature or request release New public release labels Jun 23, 2026
@Fayhen
Fayhen merged commit 8352b19 into main Jun 23, 2026
1 check passed
@Fayhen
Fayhen deleted the next branch June 29, 2026 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request release New public release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant