This guide will walk you through setting up a complete development environment for contributing to SatSigner.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/satsigner/satsigner/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, ensure you have the following installed:Required Software
- Node.js: Version 22.4.0 or higher
- Yarn: Package manager
- Git: Version control
Platform-Specific Requirements
For Android Development
- Android Studio or Android SDK
- Java JDK 17
- Android SDK Build Tools
- Android Platform Tools
For iOS Development (macOS only)
- Xcode (latest version)
- Xcode Command Line Tools
- CocoaPods
Step 1: Install Node.js and Yarn
Install Node.js
Download and install Node.js 22.4.0 or higher from nodejs.org. Verify installation:Install Yarn
Step 2: Clone the Repository
Step 3: Install Dependencies
Install all dependencies from the root of the repository:Step 4: Set Up Android Environment
Option A: Using Android Studio (Recommended)
- Download and install Android Studio
- Open Android Studio and go to Settings/Preferences
- Navigate to Appearance & Behavior > System Settings > Android SDK
- Install Android SDK Platform 34 (or latest)
- Install Android SDK Build-Tools
- Install Android SDK Platform-Tools
Option B: Using Command Line Tools
If you prefer not to use Android Studio, install these packages:Set Environment Variables
Add these to your shell profile (~/.bashrc, ~/.zshrc, or ~/.bash_profile):
Linux
macOS
Windows (Git Bash)
CreateC:\Users\YOUR_USERNAME\.bash_profile:
YOUR_USERNAME with your actual Windows username.
Set Up Android Emulator
Install System Image (Requires JDK 8 temporarily)
For downloading system images, you need JDK 8:Create Emulator Device
Switch to JDK 17
After creating the emulator, switch to JDK 17 for building and running the app:Troubleshooting Android Setup
CXX5304 Build Error
If you encounter[CXX5304] error while building:
Path Issues on Windows
Use Git Bash instead of PowerShell for all commands. Ensure the.bash_profile is in your home directory.
Using direnv (Linux/macOS)
For automatic environment loading, installdirenv:
apps/mobile/.envrc:
Step 5: Set Up iOS Environment (macOS only)
Install Xcode
- Install Xcode from the Mac App Store
- Install Xcode Command Line Tools:
Install CocoaPods
Install iOS Dependencies
Step 6: Set Up Expo Environment
Follow the official Expo documentation for additional setup. Important Notes:- Select “Development build” option
- Disable “Build with Expo Application Services (EAS)”
- Do NOT run
npx expo start- use the commands below instead
Step 7: Run the Application
Navigate to the mobile app directory:Run on Android
- Start the Metro bundler
- Build the Android app
- Install it on your emulator or connected device
- Launch the app
Run on iOS (macOS only)
- Start the Metro bundler
- Build the iOS app
- Install it on your simulator or connected device
- Launch the app
Alternative: Run on Physical Device
Android
- Enable Developer Options on your Android device
- Enable USB Debugging
- Connect via USB
- Run
yarn android
iOS
- Open
apps/mobile/ios/satsigner.xcworkspacein Xcode - Select your device from the device dropdown
- Click the Run button or run
yarn ios
Step 8: Development with Storybook
SatSigner includes Storybook for component development in isolation.Run Storybook on Android
Run Storybook on iOS
Generate Storybook Stories
Development Workflow
Available Scripts
Fromapps/mobile/ directory:
Project Structure
SatSigner uses a monorepo structure with Yarn Workspaces:Mobile App Structure
Editor Setup
VS Code (Recommended)
Install these extensions:- ESLint: For linting
- Prettier: For code formatting
- React Native Tools: For React Native development
- TypeScript: For TypeScript support
- Expo Tools: For Expo development
.vscode/ directory.
Other Editors
Ensure your editor supports:- TypeScript
- ESLint
- Prettier
- React Native syntax
Common Issues
Metro Bundler Issues
Clear Metro cache:Build Failures
Clean build:Dependency Issues
Reinstall dependencies:Node Version Issues
Use a Node version manager like nvm or fnm:Next Steps
Now that your environment is set up:- Read the Architecture guide to understand the codebase
- Review the Contributing guide for contribution workflows
- Check out the open issues to find tasks
- Join the Telegram group to connect with other developers