Personal portfolio site for LinJohn8, built with Next.js and exported as a static site for GitHub Pages.
pnpm install
pnpm devRun pnpm build to generate the static export.
The home page uses Utterances. It authenticates visitors with GitHub OAuth and stores comments as Issues in LinJohn8/LinJohn8.github.io, so no client secret or server API is required.
Before publishing comments, install the Utterances GitHub App on this repository and keep Issues enabled. The Comments section will then show the GitHub sign-in and comment editor automatically.
Recent-page history is stored under linjohn-browse-history-v1 in browser localStorage. It survives site rebuilds and GitHub Pages deployments as long as the domain stays the same. It is local to one browser profile and is removed if the visitor clears site data.
Aggregated visitor analytics cannot be persisted by GitHub Pages alone. Use an external analytics endpoint such as GoatCounter or Umami for cross-device and cross-visitor reporting; do not expose a GitHub token in client-side code.
/- home and profile/about- full introduction/projects- project archive/photowall- searchable masonry photo wall with lightbox preview/support- support and contact