---
layout: ../layouts/PageLayout.astro
title: Colophon
description: The design and technology behind this website explained.
intro: In publishing, a colophon is a brief statement containing information about the publication.
backLink: /
---

import { animation, animationDelay } from "../data/site";
import { mapping } from "../mdx-components.ts";
export const components = mapping;

<div {...animation}>

The source code of this website is available on [GitHub](https://github.com/kogakure/website-astro-stefanimhoff.de). You are welcome to learn from the source code and reuse code for your projects. Don’t steal it. Learn from it. Remix. Reuse. Build your own things. 🤘

</div>

<div {...animationDelay}>

## Design

- I designed the website myself in [Affinity Designer](https://affinity.serif.com/designer/), using the Japanese art form of _shibui_ (渋い) as a source of inspiration. To learn more about the process, please read the essays about the [inspiration](/new-website-2020-inspiration/) and [design](/new-website-2020-design/).
- The design uses the variable typeface [Secuela](https://fontlibrary.org/en/font/secuela-variable) by [deFharo](https://github.com/defharo). I use a font scale that is based on the golden ratio, and the font scales automatically to the viewport size.
- I created the Bonsai image on my homepage with [Stable Diffusion](https://stability.ai/), [ControlNet](https://github.com/lllyasviel/ControlNet), and [Affinity Photo](https://affinity.serif.com/photo/).
- The minimalistic icons are by [Remix Icon](https://remixicon.com/), which is [Jimmy Cheung](https://github.com/xiaochunjimmy) and [Wendy Gao](https://github.com/wendygaoyuan).

</div>

<div {...animationDelay}>

## Technology

- The website is built with [Astro](https://astro.build/), the all-in-one web framework.
- I write the code in [Neovim](https://neovim.io/), using [GitHub Copilot](https://github.com/features/copilot), and [Raycast AI](https://www.raycast.com/pro) (ChatGPT).
- The layouts, templates, and components are written in Astro and [Preact](https://preactjs.com/).
- My content is written in [MDX](https://mdxjs.com/), which allows using components in the [Markdown](https://daringfireball.net/projects/markdown/).
- I use [Tailwind CSS](https://tailwindcss.com/) for my styling.
- The scroll animations are created with [Sal.js](https://mciastek.github.io/sal/).
- Icons are handled by [Astro Icon](https://github.com/natemoo-re/astro-icon).
- All images are optimized with [Astro ImageTools](https://github.com/RafidMuhymin/astro-imagetools/).
- I use YouTube Lite, provided by [Astro Embed](https://github.com/astro-community/astro-embed).
- [Astro SEO](https://github.com/jonasmerlin/astro-seo) makes it easy to add the SEO relevant information.
- I use [Astro Webmanifest](https://github.com/alextim/astro-lib/tree/main/packages/astro-webmanifest), [Astro Service Worker](https://github.com/tatethurston/astrojs-service-worker), [Astro Critters](https://github.com/astro-community/astro-critters), and [Astro Compress](https://github.com/astro-community/astro-compress) to optimize the website.
- To generate charts, I use [Chart.js](https://www.chartjs.org/), [react-chartjs-2](https://react-chartjs-2.js.org/), and [chartjs-plugin-autocolors](https://github.com/kurkle/chartjs-plugin-autocolors).
- I use [reading-time](https://github.com/ngryman/reading-time) to add the reading time to Remark.
- To parse and format dates I use [Moment.js](https://momentjs.com/).
- I use [Plop](https://plopjs.com/) to generate content from templates.
- The website is hosted on [Netlify](https://www.netlify.com/).

</div>
