Last updated June 23, 2026
Contributing
2 minutes read
Contributions are welcome: bug fixes, new features, documentation improvements, and accessibility fixes alike.
Development setup
To get started, install Bun ≥ 1.1.
git clone https://github.com/amousavigourabi/folio.md.git
cd folio-md
bun install
bun run devThe dev server starts at http://localhost:4321 and hot-reloads on every file save.
Code style
folio.md uses Biome for linting and formatting. Run it before pushing:
bun run lint # check
bun run lint:fix # auto-fixKey conventions Biome enforces:
- 2-space indentation
- Double quotes for strings
- Trailing commas everywhere they’re valid
- Imports auto-organized on save
TypeScript uses strict mode from astro/tsconfigs/strict. Avoid any. Prefer explicit types on public-facing APIs.
Before opening a pull request
- Run the linter:
bun run lint - Run the tests:
bun run test, using Vitest - Validate links:
bun run build, which runs the link checker automatically - Check both themes: if your change touches UI, verify it in both light and dark mode
- Check mobile: resize to below 1024 px and confirm the mobile drawer and search bar still work
Adding a Lucide icon
Icons available in the icon frontmatter field come from src/components/NavIcon.tsx. To add one:
- Import it from
lucide-react - Add it to the
iconsmap in the same file
See the Icon Reference for the current list.
Submitting changes
Open a pull request against master. Keep PRs focused: one logical change per PR makes review faster. Include a short description of what changed and why.