Mirror of github.com/OpenVibers/AFResume
  • Astro 62.5%
  • Python 20.1%
  • MDX 7.2%
  • CSS 6.7%
  • JavaScript 2.2%
  • Other 1.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
OpenVibers c11fdb6200 Show the 33 OpenVibe sites that went live, an IT-support plain résumé, colocated
The Work section's "Coming soon" chips listed nine sites that all serve their products now, and the
network has grown past them: networkLive lists the 33 live sites beyond the six core services, in
two rows (for people, for builders), and the old OpenVibe.Sites tile (13 placeholder domains, which
that repository no longer builds) becomes the "33 more live sites" tile. The counts in the group
header, the tile, the diagram and "How it fits together" come from that list.

build_ats_resume.py gains a third version, IT and technical support, for jobs near home; a
version's bullets can now be picked by index. build_resume.py keeps whatever files that script
writes. Fixes "collocated" in the LLC bullet (the designed PDF is otherwise pixel-identical).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01UgqWFqsrjYdYbusKn5547T
2026-10-21 06:37:18 -07:00
.github/workflows CI: run the shared security workflow (gitleaks secret scan + dependency audit, Track Q) 2026-09-23 12:33:55 -07:00
public Show the 33 OpenVibe sites that went live, an IT-support plain résumé, colocated 2026-10-21 06:37:18 -07:00
resume Show the 33 OpenVibe sites that went live, an IT-support plain résumé, colocated 2026-10-21 06:37:18 -07:00
scripts Plain one-column résumés for tracking systems, October content, deploy to the OVH server 2026-10-20 18:43:22 -07:00
src Show the 33 OpenVibe sites that went live, an IT-support plain résumé, colocated 2026-10-21 06:37:18 -07:00
.gitignore Full redesign for 2026: OpenVibe network era 2026-09-18 23:28:37 -07:00
astro.config.mjs Full redesign for 2026: OpenVibe network era 2026-09-18 23:28:37 -07:00
package-lock.json Full redesign for 2026: OpenVibe network era 2026-09-18 23:28:37 -07:00
package.json Plain one-column résumés for tracking systems, October content, deploy to the OVH server 2026-10-20 18:43:22 -07:00
README.md Full redesign for 2026: OpenVibe network era 2026-09-18 23:28:37 -07:00
tsconfig.json Initial commit: AlexFrison.net Astro portfolio site 2026-05-12 07:55:10 -07:00

alexfrison.net

Personal site, portfolio and resume for Alex Frison. Built with Astro, fully static, zero CDN dependencies in production (fonts, icons and the one JS library are vendored under public/assets/vendor/). Deployed to GitHub Pages on every push to main (.github/workflows/deploy.yml), served at https://alexfrison.net via the public/CNAME file.

Quick start

npm install
npm run dev             # http://localhost:4321
npm run build           # outputs dist/
npm run preview         # preview the built site
npm run vendor:fetch    # re-download pinned vendor libraries (only needed after editing the list)
npm run resume:pdf      # regenerate public/Alex_Frison_Resume_Sep_2026.pdf (needs python3 + reportlab)

Where the content lives

Everything the site and the PDF say comes from one set of files, so they never drift:

What Where
Name, pitch, contact, metrics, network tiles, "open to" src/data/profile.json
Roles / experience src/content/experience/*.json (sorted by order)
Skill groups src/content/skills/*.json
Projects and case notes src/content/projects/*.mdx (frontmatter + body)
Site screenshots for the network section public/assets/img/sites/*.webp
Portrait public/assets/img/me-cut1.png, me-cut2.png

Edit JSON or MDX, run npm run build, and push. To refresh the PDF after a content change run npm run resume:pdf and commit the regenerated file (the filename is read from profile.resumePdf, so bump it there when you want a new dated version).

Structure

  • src/layouts/Base.astro: head, SEO and JSON-LD, theme boot, smooth scroll (Lenis), reveal animations, custom cursor, spotlight and tilt cards, magnetic buttons.
  • src/components/: Hero (aurora canvas, kinetic name, scramble rotator), Metrics (count-up), Marquee, Now, Network (bento + architecture diagram), ProjectGrid (filterable), Timeline, Skills, Contact, Nav, Footer.
  • src/pages/: index, resume, portfolio, portfolio/[slug], 404.
  • resume/build_resume.py: reportlab PDF builder driven by the same content files.
  • scripts/fetch-vendor.mjs: downloads the pinned vendor files.

Deploy

Push to main. The workflow builds with Node 20 and publishes dist/ to GitHub Pages. The custom domain is configured in the repository's Pages settings and pinned by public/CNAME.

License

Code: MIT. Vendored libraries retain their own licenses, see public/assets/vendor/README.md. Content, copy and images are © Alex Frison.