Reproxy: Mock Server for Mobile App Development
Article Summary
Ahmad Fadli from Traveloka's Experience team built a mock server that freed his mobile team from backend API dependencies. What started as a simple workaround evolved into a tool now used across product teams.
Mobile teams often get blocked waiting for backend APIs during development and testing. Traveloka's Android engineers tried multiple approaches (runtime value changes, abstraction layers, in-app mocks) before creating Reproxy, an Express.js-based mock server that runs locally with zero-rebuild JSON configuration.
Key Takeaways
- Rule-based JSON config enables partial mocking without app rebuilds or code changes
- Only requires changing base URL to switch between mock and production APIs
- JS_SCRIPT type allows custom logic without bloating core files
- Now used for automation tests, stakeholder demos, and cross-platform development
Reproxy eliminated backend dependencies for mobile testing through a flexible, rule-based mock server that requires minimal app code changes and no rebuilds.
About This Article
At Traveloka, mobile engineers had to wait 3 minutes for Android builds whenever they changed mock responses. This blocked QA testing and meant feature validation had to wait until the backend API was ready.
Ahmad Fadli's team built Reproxy, an Express.js server that moved the mock router logic out of the app. It uses JSON rule-based configuration and a JS_SCRIPT delegation pattern, so the team can extend it without touching core files.
Reproxy let engineers change configurations at runtime instead of rebuilding. The team also used it for automation testing on unstable staging servers and for stakeholder demos by adding dynamic RuleSet entry points to the base URL.