- .github/workflows/ci.yml: TypeScript check + Vitest + build on every PR - .github/dependabot.yml: weekly npm + Actions updates (minor/patch grouped) - .github/ISSUE_TEMPLATE/: bug_report, feature_request, config (→ Discussions) - .github/PULL_REQUEST_TEMPLATE.md: checklist for contributors - SECURITY.md: responsible disclosure policy via GitHub Advisories - CONTRIBUTING.md: dev setup, code style, commit conventions
1.8 KiB
1.8 KiB
Contributing to Immich Folio
Thanks for your interest in contributing! 🎉
Ways to contribute
- Bug reports — Open a bug report issue
- Feature requests — Open a feature request
- Pull requests — see below
- Discussions — Ask questions or share ideas
Development setup
# 1. Clone
git clone https://github.com/ralksta/immich-folio.git
cd immich-folio
# 2. Install
npm install
# 3. Configure
cp content/gallery.example.yaml content/gallery.yaml
# Edit .env or set IMMICH_URL + IMMICH_API_KEY
# 4. Run
npm run dev # http://localhost:3000
npm run build # production build check
Before submitting a PR
npx tsc --noEmit # must be 0 errors
npx vitest run # all tests must pass
npm run build # build must succeed
Code style
- TypeScript — strict mode, no
anywithout justification - Components — Server Components by default; use
'use client'only when necessary - CSS — vanilla CSS variables, no Tailwind, no CSS-in-JS
- Naming — descriptive names, no abbreviations in public APIs
Commit messages
Use Conventional Commits:
feat: add new hero style
fix: correct image aspect ratio on mobile
security: escape HTML in map popups
docs: update theming guide
chore: bump next to 15.x
Pull Request checklist
npx tsc --noEmitpassesnpx vitest runpassesnpm run buildpasses- No secrets in the diff
- Documentation updated if needed
License
By contributing, you agree that your contributions will be licensed under the MIT License.