# 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](crates/popcorntime-tauri/dictionaries/en.json) 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.