The goal of this repository is to collect mechanical keyboard related projects (preferably Open Source).
View the pages on Keebfolio.netlify.app
Contributions are welcome!
To add content, create a new Markdown file in src/content/keyboards/[category]/.
You can copy an existing file as a template.
New Image Policy:
- You should use remote URLs (e.g.
https://github.com/.../image.jpg). - The build process will automatically download and optimize them for you.
- Clone the repository.
- Install dependencies:
npm install
- Start the development server:
Open http://localhost:4321 to view the site.
npm run dev
Themes are defined in src/data/themes.json. To add a new theme, add an entry:
"theme-id": {
"name": "Display Name",
"background": "#hexcolor",
"foreground": "#hexcolor",
"accent": "#hexcolor"
}The theme will automatically appear in the header dropdown.
- Cleanup Unused Images:
This deletes any downloaded images that are no longer referenced in your Markdown files.
npm run cleanup
All repository contributors are displayed in the footer on every page, sorted by contribution count. Contributors are fetched from the GitHub API during build and cached for 1 hour.
To limit the number of displayed contributors, edit MAX_DISPLAY in src/components/Contributors.astro (set to 0 to show all).
To increase the API rate limit (recommended for frequent builds):
- Create a GitHub Personal Access Token at https://github.com/settings/tokens (no special scopes needed)
- Copy
.env.exampleto.envand add your token:cp .env.example .env # Edit .env and add your GITHUB_TOKEN
The homepage shows recent site updates extracted from git commit history. Only user-relevant commits (with docs: or feat: prefixes) are displayed. Updates are cached for 1 hour during build.