Contribution Guide
Thank you for contributing to TextGO. This guide explains how to get involved.
Ways to Contribute
- 🐛 Report Bugs: Submit an issue when you find a problem
- 💡 Suggest Features: Share your ideas and feature requests
- 📝 Improve Documentation: Refine guides and examples
- 🔧 Fix Issues: Submit pull requests that fix bugs
- ✨ Add Features: Develop new features
- 🌍 Help Translate: Translate the interface and documentation
- 📚 Share Scripts: Share custom scripts and regular expressions
Submit an Issue
Search existing issues before submitting to avoid duplicates. When creating an issue, choose the appropriate template and provide the requested information.
Submit a Pull Request
1. Prepare Development Environment
Required tools: Node.js LTS, pnpm 11, Rust stable, Git
Develop and verify desktop behavior on macOS or Windows; the current platform implementation and release builds do not cover Linux. The frontend uses Svelte 5 / SvelteKit 2, and the desktop backend uses Tauri 2 / Rust.
# After forking the project, clone your repository
git clone https://github.com/YOUR_USERNAME/TextGO.git
cd TextGO
git remote add upstream https://github.com/C5H12O5/TextGO.git
# Install dependencies
pnpm install2. Development and Testing
# Start the full desktop development environment
pnpm tauri dev
# Enable debug logs (macOS)
RUST_LOG=debug pnpm tauri dev
# Enable debug logs (Windows PowerShell)
$env:RUST_LOG="debug"; pnpm tauri dev
# Build production version
pnpm tauri buildUse pnpm dev for the frontend alone (port 1420). A regular browser has no Tauri APIs, so verify desktop features with pnpm tauri dev.
3. Create Branch and Develop
# Update and create feature branch
git checkout main
git pull upstream main
git checkout -b feature/my-new-feature # or fix/bug-descriptionCode standards:
- Frontend: Run
pnpm checkandpnpm lint; also runpnpm buildfor build configuration, dependencies, lazy loading, or new UI messages - Rust: Run
cargo fmt --manifest-path ./src-tauri/Cargo.toml,cargo clippy --manifest-path ./src-tauri/Cargo.toml -- -D warnings, and relevant tests withcargo test --manifest-path ./src-tauri/Cargo.toml - UI messages: Update both
messages/en.jsonandmessages/zh-CN.json. Do not edit generated files insrc/lib/paraglide/; if new messages cause missing-export errors, runpnpm buildbefore checking again - Verify affected mouse and keyboard triggers, Quiet and Toolbar modes, output, and settings persistence. AI changes also need streaming and cancellation checks. State which platforms were tested and any gaps in the PR
Format only changed files, for example with pnpm exec prettier --write <changed-files>, to avoid rewriting unrelated files.
4. Commit Changes
Follow the Conventional Commits specification:
git add .
git commit -m "feat: add keyboard shortcut customization"
# or fix/docs/refactor/perf/test/chore, etc.5. Submit Pull Request
# Push to your repository
git push origin feature/my-new-featureCreate a pull request on GitHub. Describe what changed and why, and reference related issues.
Documentation Contribution
The documentation is maintained in the TextGO Hub repository. Fork and clone that repository before making the changes below.
Improve Existing Documentation
- Find errors or unclear parts
- Edit the corresponding guides in
site/guide/andsite/zh-CN/guide/, keeping the English and Chinese instructions aligned - Run
pnpm installfrom the TextGO Hub root, thenpnpm exec prettier --check <changed-files>andpnpm buildto verify formatting, links, and the site build - Submit a pull request
Translate Documentation to Other Languages
- Copy the English documentation to a new language directory
- Translate content
- Keep structure consistent
- Submit a pull request