Files
immich-folio/CONTRIBUTING.md
Ralksta ff77519ea9 feat: release automation and doc fixes (#238)
* fix: align env vars and config paths in CI and contributing docs

* feat: add automatic docker publishing to ghcr workflow

---------

Co-authored-by: ralksta <ralksta@users.noreply.github.com>
2026-05-31 10:13:53 +02:00

70 lines
1.9 KiB
Markdown

# Contributing to Immich Folio
Thanks for your interest in contributing! 🎉
## Ways to contribute
- **Bug reports** — [Open a bug report issue](https://github.com/ralksta/immich-folio/issues/new?template=bug_report.md)
- **Feature requests** — [Open a feature request](https://github.com/ralksta/immich-folio/issues/new?template=feature_request.md)
- **Pull requests** — see below
- **Discussions** — [Ask questions or share ideas](https://github.com/ralksta/immich-folio/discussions)
## Development setup
```bash
# 1. Clone
git clone https://github.com/ralksta/immich-folio.git
cd immich-folio
# 2. Install
npm install
# 3. Configure
cp .env.local.example .env.local
cp content/gallery.yaml.example content/gallery.yaml
# Edit .env.local or set IMMICH_API_URL + IMMICH_API_KEY
# 4. Run
npm run dev # http://localhost:3000
npm run build # production build check
```
## Before submitting a PR
```bash
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 `any` without 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](https://www.conventionalcommits.org/):
```
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 --noEmit` passes
- [ ] `npx vitest run` passes
- [ ] `npm run build` passes
- [ ] No secrets in the diff
- [ ] Documentation updated if needed
## License
By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).