Back to projects
active

johannesgrof.me

This site: a portfolio that reads its own release data from GitHub.

An Astro site with no client framework, where every project row pulls its version, release assets and download counts from the GitHub API at build time and a daily rebuild keeps them current. Bilingual EN/DE, static except for one contact function.

Platform
Web
Source
GitHub repository
Updated
Sep 16, 2026
Problem

A portfolio goes out of date the moment a release ships: versions, download counts and dates get typed in by hand and are quietly wrong a week later.

What I built

A static Astro site that resolves each repository once per build and renders the numbers it gets back, with verified fallbacks for the case where GitHub is unreachable. A scheduled deploy hook rebuilds it daily; the contact form is the only server-side surface.

Developer setup

clonegit clone https://github.com/jx-grxf/johannesgrof.me.git && cd johannesgrof.me

Highlights

  • Build-time GitHub data with verified fallbacks, so a rate-limited build degrades instead of lying.
  • Bilingual EN/DE with hreflang alternates on every route, project pages included.
  • One serverless function for the contact form: origin check, per-IP rate limit, honeypot.