Personal website for Troels Holger Vaaben.
This repository contains a small Next.js site for:
- a landing page / profile
- publications
- writing posts
- links and resources
- a CV page
Next.js 14React 18TypeScriptTailwind CSS
app/— route pages and app shellcomponents/— reusable UI componentsdata/— editable site content such as profile, publications, and writing entriespublic/— static assets such as images and icons
Most site content is driven by files in data/:
data/profile.json— name, tagline, links, about textdata/publications.json— publication listdata/writing.json— writing / post cardsdata/inspirations.json— curated inspirations/resources
For simple content changes, edit the JSON files first before changing page code.
Install dependencies:
npm installStart the development server:
npm run devThen open:
http://localhost:3000
Create a production build:
npm run buildThe static export is written to out/.
This repo already includes a GitHub Pages workflow in .github/workflows/deploy-pages.yml.
- Push to
main - GitHub Actions builds the static site
- The workflow deploys the
out/directory to GitHub Pages
The workflow supports an optional repository variable:
PAGES_CUSTOM_DOMAIN
If this variable is set, the build will:
- remove the project-page base path
- set the site URL to the custom domain
- generate a
CNAMEfile during the Pages build
If the variable is not set, the site builds as a normal project Pages site under:
https://<username>.github.io/<repository-name>/
- The repository currently contains some old
.next*build directories from earlier local runs. - The README now documents the actual website project, not the older unrelated workflow that had previously been copied into this repository.