This is the source code for my personal website, built on top of the astro-theme-vitesse template with extensive customizations to fit my needs.
Originally, the Vitesse theme seemed to be discontinued, and the source code was no longer being updated. Therefore, I forked it, updated it, and continue to maintain it myself. If you want to use this theme, feel free to do so!
All the packages are using the latest versions and are upgraded by me regularly.
Extensions on top of the original Vitesse theme:
- Astro 6 with the new content layer API
- 7 content collections —
blog,infosec,ctf,talks,research,paper,pages - Auto OG image generation — dynamic Open Graph images per page and per post (Satori)
- Per-post
lastmodsupport - Self-hosted variable fonts — Google Sans Flex + Google Sans Code (no external font requests)
- Competition experience — table with CTF placements and rankings
- Friends page — card layout with hover effects
- Gear page — share your setup and tools
- Links page — linktree-style with stagger animation
- Projects page — showcase with category grouping
- Responsive design — mobile-first with card/table adaptive layouts
- Dark-only theme — optimized for dark mode viewing
Requires Bun and Node 22+ (npm/yarn not supported here).
bun install # install dependencies
bun dev # dev server (--host enabled)
bun build # production build
bun lint:fix # auto-fix lint issuesCLAUDE.md— orientation for Claude Code and other AI coding toolsAGENTS.md— full reference for OpenCode; covers repo conventions, content rules, and the checklist for adding a new content collection
This project is licensed under the MIT License.