Repositories openvibers afresume official

openvibers/afresume

AlexFrison.net

Get it

Get this repository

Clone over HTTPS

A Git token is made for this copy and shown once. It can read and write the repositories you own, and expires in an hour.

git clone https://git.openvibe.codes/openvibers/afresume.git
Clone to my computer

OpenVibe Link asks you on your computer. The folder is inside the root you chose in Link, and the request ends after two minutes.

Clone to my computer
Open in Codes

A Codes session clones from our disk: no network, no GitHub quota. When this repository has a GitHub twin, Codes pushes there too.

Open in Codes

README.md

View file

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.