Developers
Contributing to Revive ST
How to contribute code, report bugs, or request features.
Contributing
We welcome contributions of all kinds, whether you want to fix a bug, add a new feature, or improve the documentation, this guide will help you get started.
Monorepo Structure
We use a modern monorepo structure to keep everything organized:
apps/app/: The Expo React Native mobile application.apps/api/: The Hono/Nitro API server that emulates the Bose Sountouch Marge streaming server.apps/website/: The Next.js website and documentation.packages/bose-api-speaker-client/: Typed HTTP client for the Bose Speaker API.packages/bose-wifi/: Expo native module for Wi-Fi speaker setup.docs/: Project documentation including Bose API reference, agent skills guides..github/workflows/: CI/CD pipeline definitions.
Development Setup
Before you start, ensure you have the following prerequisites installed:
- Node.js: v24 or newer.
- Vite+: We use Vite+ (
vp) as our unified toolchain for package and runtime management. - Expo CLI: Required for mobile development.
Run the setup command to install dependencies across the monorepo:
vp installRunning Tests
We strictly enforce code formatting, linting, and type checking:
# Format, lint, and type check changes
vp check
# Run tests
vp testPull Request Process
- Fork the repository on GitHub.
- Create a branch for your feature or bug fix (
git checkout -b feature/my-new-feature). - Write your code and ensure it passes all tests (
vp check,vp test). - Commit your changes using Conventional Commits.
- Add a changeset if you modify any packages or apps:
vp run changeset. - Open a Pull Request against the
mainbranch.
Issues
Bug Reports
When filing a bug, please provide:
- A clear description of the issue.
- Steps to reproduce.
- Your device type, OS version, and SoundTouch speaker model.
Feature Requests
For feature requests, describe the problem you're trying to solve and how the proposed feature would address it.