--- 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;
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 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).
## 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/).