Colophon
- A website to share myself, my writing, and my projects
- Minimal design
- Load and feel fast
- Easy content creation and updating
- Keep accessibility in mind
The source code is available under MIT license. Issues and PRs are welcome especially if they align with the goals above. The following will redirect to the source code as well: koichi.io/source.
Since I’m not particularly interested in frontend development and this is a non-serious personal website, I allowed myself to use LLMs to generate some code, especially for CSS and JavaScript, while I instruct and still have the big picture. This LLM use differs from my policy and preference, but that’s because frontend development is not my main interest.
If you’re looking for a way to host a static website on Cloudflare Pages while using Codeberg as a remote git repository, refer to this documentation and the Forgejo Actions’ config used in this repo. You need to set the environment variable in Codeberg. GitHub Actions–like syntax will mostly work on Forgejo Actions.
- Why JavaScript without arrow?
I used JavaScript (not TypeScript) without arrow functions as much as possible since I’m not familiar with, nor interested in, frontend and JavaScript/TypeScript, and JavaScript arrow functions are hard for me to read. Even though I use an LLM for JavaScript, as mentioned in LLM Use and Disclosure, I review, clean up, and debug it, so readability was important, even if it doesn’t follow the JavaScript convention.
- Why not open external links in a new tab/window?
Because I believe the user should have the full control over what they do. I once indicated the external link with an icon, but even then, they can’t open the link in the same tab if that’s set to be opened in a new tab, where as usually they can decide whether to open in a new tab if the link is not configured like that.
This website is built with free technologies and hosted for free. To acknowledge the work of the maintainers and contributors, I list the major technologies directly used by this website. Excuse me for not listing all the dependencies.
-
Astro for SSG (Static Site Generation)
-
Tailwind CSS and CSS for styling
-
Cloudflare Pages for website hosting
-
Codeberg for source hosting
-
Forgejo Actions and Cloudflare Wrangler for CD (Continious Deployment)
-
feed for Atom feed generation
-
Hachyderm and the Mastodon API for Fediverse integration
-
Fontsource for self-hosting fonts
-
Iosevka for the main font family
-
Lucide for SVG icons
-
npm for package management
-
Node.js for the JavaScript runtime
-
Git for version control
-
JavaScript as the main programming language
-
Taplo, Prettier, and EditorConfig for editing support