Files

136 lines
3.6 KiB
Markdown

# Contributing to Popcorn Time
Popcorn Time is starting fresh. The project is being rebuilt from the ground up, and we need contributors to help shape this new era.
Whether you're a seasoned developer, a designer, a translator, or just someone who wants to test and give feedback - there's a place for you here.
> [!NOTE]
> See [DEVELOPMENT.md](DEVELOPMENT.md) for instructions on building and running Popcorn Time.
## Table of Contents
- [Code of Conduct](#code-of-conduct)
- [Ways to Contribute](#ways-to-contribute)
- [Developers](#1-developers)
- [Designers & UX](#2-designers--ux)
- [Translators](#3-translators)
- [Testers](#4-testers)
- [Documentation & Community](#5-documentation--community)
- [How to Start](#how-to-start)
- [Contributing in Issues](#contributing-in-issues)
- [Pull Requests](#pull-requests)
- [Commit Messages](#commit-messages)
- [Reviews](#reviews)
- [Not Just Code](#not-just-code)
---
## Code of Conduct
Popcorn Time follows the [Rust Code of Conduct](CODE_OF_CONDUCT.md).
We expect all contributors to help create a respectful, inclusive, and welcoming environment.
---
## Ways to Contribute
No [Rust skills](https://www.rust-lang.org/) are required for most of these, if you can run the app and provide feedback, you can contribute.
### 1. Developers
- React/TypeScript: Most of the visible app is React. You don't need to know Rust to make meaningful contributions.
- Rust: If you want to dive deeper, there's plenty of work close to the metal: networking, system integration, performance.
### 2. Designers & UX
- Help refine the interface and overall user experience.
- Contribute mockups, interaction flows, or polish existing UI.
### 3. Translators
Bring Popcorn Time to your language and region.
We currently leverage our custom [translator](packages/translator/) CLI that takes
our [english dictionary](packages/translator/src/en.jsonc) and generates all required translations.
#### Requirements
- `OPENAI_API_KEY` → used for full-sentence/context translations.
- `GOOGLE_CLOUD_PROJECT_ID` → used for short words.
#### Usage
Run translations with:
```bash
pnpm translate
```
This will update the localized dictionaries automatically.
### 4. Testers
- Run nightly builds.
- Report bugs, UI quirks, or performance issues.
- Suggest improvements based on real usage.
### 5. Documentation & Community
- Improve README, guides, FAQs.
- Help answer questions from new users and contributors.
- Share ideas about what features matter most.
---
## How to Start
1. Join the conversation: check our [Call for Contributors](/popcorntime/popcorntime/issues/3109).
2. Pick a way to help: code, design, docs, testing, or translation.
3. Open an Issue/PR:
- Issues → report bugs, suggest features, or volunteer for tasks.
- PRs → contribute code, docs, translations, or fixes.
---
## Contributing in Issues
If you find a bug, spot missing docs, or have an idea, open an issue.
---
## Pull Requests
- Small, focused PRs are easier to review and merge.
- If you're planning a large change, open an issue first to discuss.
- Add tests when needed.
---
## Commit Messages
We use conventional commit style for squash merges:
```
feat(ui): add dark mode toggle
fix(ui): resolve onboarding crash
docs: update installation guide
```
---
## Reviews
- Expect feedback. It's part of the process.
- Keep discussions focused and respectful.
- Incremental improvements are fine - PRs don't have to be perfect to land.
---
## Not Just Code
Popcorn Time is an open-source project, but it's not just about code. Translators, designers, testers, writers, and community members are equally important. If you're here, you're part of the process.