Contributing¶
Interested in helping out? Here's how things work.
🤝 Ways to Contribute¶
Share ideas - Open a discussion or comment on existing ones. All suggestions welcome, even half-baked ones.
Report bugs - Open an issue with: - What you expected to happen - What actually happened - Steps to reproduce (if possible) - Your setup (Docker/local, browser, OS)
Improve documentation - Typos, unclear explanations, missing info—all fair game. Docs live in the /docs folder.
Code contributions - Check good first issue tags or the roadmap for things I'm planning to work on.
🧭 Before You Start¶
If you're thinking of tackling something substantial (new feature, big refactor), open an issue or discussion first. Saves everyone time if the direction doesn't fit the project.
🛠️ Development Setup¶
Using Docker (Recommended)¶
See Docker Development guide for full instructions.
Local Development¶
git clone https://github.com/mark-me/mixtape-society.git
cd mixtape-society
uv sync --group dev
# Edit MUSIC_ROOT and APP_PASSWORD in .env
uv run python app.py
First run will index your music library.
See Local Development guide for more details.
🎨 Code Style¶
Nothing strict, but: - Keep it readable - Add docstrings for non-obvious functions - Follow existing patterns in the codebase - Run basic tests if you're changing core functionality
If something's unclear, just ask.
🔀 Pull Request Process¶
- Fork the repo
- Create a branch (
git checkout -b feature/thing) - Make your changes
- Commit with a clear message
- Push and open a PR
I'll review when I can. Might ask for changes, might take a while—this is a side project.
🗂️ Project Organization¶
The GitHub Project board tracks work in progress:
- Ideas - Things being explored (Ideas doc has more)
- Planned - Committed to building (Roadmap)
- In Progress - Currently working on
- Done - Shipped (see Changelog)
It's pretty informal, just helps keep things organized.
🎯 What Gets Prioritized¶
Roughly in this order:
- Bug fixes (especially breaking ones)
- Features that align with project goals (see About)
- Community interest (reactions, comments on issues)
- Maintainer availability (aka: when I have time)
🧪 Testing¶
Basic manual testing is fine for most changes. If you're modifying core components (musiclib, audio caching, database), please test thoroughly:
- Try it with your own music library
- Test edge cases (empty folders, weird filenames, large libraries)
- Check it doesn't break existing features
No formal test suite yet, but that might change.
📚 Documentation¶
If your PR adds a feature or changes behavior:
- Update relevant docs in /docs
- Add a brief note in CHANGELOG.md (I'll handle version numbering)
❓ Questions?¶
Not sure about something? Open a discussion or comment on a relevant issue. I'll respond when I can.
⚖️ License¶
By contributing, you agree your contributions will be licensed under the MIT License.
Thanks for considering contributing to Mixtape Society. Even small fixes are appreciated. 🎧
