Awesome Mechanical Keyboard
⌨️ A curated list of Open Source Mechanical Keyboard resources.
#Keebfolio
The goal of this repository is to collect mechanical keyboard related projects (preferably Open Source).
View the pages on Keebfolio.netlify.app
#Contributing
Contributions are welcome!
#Adding Content
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.
#Development Environment
- Clone the repository.
- Install dependencies:
npm install
- Start the development server:
npm run dev
Open http://localhost:4321 to view the site.
#Adding a Theme
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.
#Housekeeping
- Cleanup Unused Images:
npm run cleanup
This deletes any downloaded images that are no longer referenced in your Markdown files.
#Contributors Display
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
#Updates Display
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.