Colophon
I designed and built this site myself. As with my other projects, this site is free/libre, free/gratis and open-source software, with the source code available on GitHub to use as you like. Except steal and claim as your own, because that would not be a nice thing to do.
Apart from this colophon, you might also find interesting writing related to this site under the "portfolio" tag.
Ideology
This site subscribes to many IndieWeb tenets such as data and domain ownership, open-source tools and longevity of plain text files. I plan on integrating more IndieWeb technologies such as RelMeAuth and Webmention in the future.
Design
Colors
The site's color palette comes from Catppuccin, specifically the Mocha and Latte variants for the dark and light modes respectively. Earlier iterations of the site have used Solarized and Flexoki, both of which are also excellent color palettes.
Typography
The site uses Inter by Rasmus Andersson, as the sans-serif typeface. Inter is famously readable at all sizes and weights, for both headings and body text. The résume, for a more classical look, uses the serif typeface Spectral by Production Type. Both fonts are open-source and licensed under the SIL Open Font License 1.1.
The programming typeface is set to monospace
for a multitude of reasons:
- This respects the font choices of the user. Programmers are very particular about their typefaces, and letting them read in their preferred font makes for a good experience.
- Not having to download a font makes the site faster and more efficient, and avoids the flash of unstyled text.
Unfortunately, users of Safari will probably not have a choice in fonts, so they will have to exercise their choice in web browsers.
Technology
For a developer portfolio, I find it ironic that this is a collection of largely static pages.
- The site is built on the concept of progressive enhancement and can be used without both CSS and JavaScript, with little or no degradation in the overall experience.
- The source code is TypeScript, Astro and Tailwind, because JS should be strongly typed, HTML should be broken into components and CSS should be tokenized.
- Open Graph images (e.g. this one) are generated with
@vercel/og
. Automation is great for tasks like this that are otherwise impossible to do manually with consistency. - GoatCounter provides privacy-friendly metrics without adding too much bloat. Data is only retained for 31 days. You can opt out by disabling JavaScript in your browser.
- My interactive résumé and some other parts of the site generated from a JSON file using Récivi, a personal endeavour to create a new kind of résumé for computers.
- The only external requests this site makes are to Rasmus' site for Inter, Goat Counter for analytics and Google Fonts for Spectral (only on the résumé PDF page).