--- layout: ../layouts/PageLayout.astro title: Colophon updated: 2025-01-03 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 { mapping } from "../mdx-components.ts"; export const components = mapping; 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. 🤘 ## 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 and other cover photos with [Stable Diffusion](https://stability.ai/), [FLUX](https://blackforestlabs.ai/) [ControlNet](https://github.com/lllyasviel/ControlNet), and [Affinity Photo](https://affinity.serif.com/photo/). My portrait photo was generated in Stable Diffusion with a custom model trainied in [DreamBooth](https://dreambooth.github.io/). - 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). ## 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 and [tailwindcss-logical](https://stevecochrane.github.io/tailwindcss-logical/) to get logical properties. - My site search is build with [Pagefind](https://pagefind.app/) using the [Astro-Pagefind](https://github.com/shishkin/astro-pagefind) integration. - 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) and [Astro Service Worker](https://github.com/tatethurston/astrojs-service-worker) 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 self-hosted with [Coolify](https://coolify.io/).