Requestly is an open-source tool that combines the functionality of an API client (like Postman) with an HTTP interceptor (like Charles Proxy), enabling developers to test, modify, and mock API requests directly in their browser or desktop environment. Designed for local-first workflows, it allows users to store all data on disk, import configurations from tools like Postman and Charles Proxy, and collaborate via Git or cloud sync. It’s ideal for frontend developers who need to mock backend APIs, QA engineers testing API behavior under different conditions, and DevOps teams managing environment-specific request modifications without changing code.
What You Get
- Local API Client - Build, test, and organize REST APIs with collections, environments, and request history in a Postman-like interface, all stored locally on your disk for privacy and offline use.
- HTTP Interceptor - Intercept, monitor, and modify HTTP/HTTPS requests and responses from browsers (Chrome/Firefox/Edge) and desktop/mobile apps using the desktop application, with support for URL redirection, header manipulation, and body modification.
- API Mocking - Create static or dynamic API mocks using JavaScript to override server responses, support for GraphQL queries by operationName, bulk mocking from recorded sessions, and cloud-based mock endpoints to share with teams.
- 1-Click Imports - Seamlessly import collections, environments, and rules from Postman, Charles Proxy, ModHeader, and Resource Override without manual reconfiguration.
- Environment Variables - Manage global and collection-level variables to switch between dev, staging, and production environments with a single click, supporting dynamic variable substitution in requests.
- e2e Testing Integration - Use Requestly in Cypress, Playwright, or Selenium tests to mock APIs during CI/CD pipelines, ensuring frontend tests run reliably without backend dependencies.
Common Use Cases
- Building a multi-tenant SaaS dashboard with real-time analytics - Developers mock API responses for different tenant configurations using Requestly’s environment variables and dynamic response overrides to simulate varied data without waiting for backend teams.
- Creating a mobile-first e-commerce platform with 10k+ SKUs - QA engineers use Requestly’s desktop app to intercept and modify API calls from iOS/Android emulators, simulating slow networks or error responses to test frontend resilience.
- Problem: Backend API not ready → Solution: Use Requestly to mock endpoints - Frontend developers record real API traffic via Requestly’s session recording, then convert it into static mocks to continue development while backend services are in progress.
- DevOps teams managing microservices across multiple cloud providers - Teams use HTTP Rules to redirect production traffic to staging environments during debugging, or inject custom headers for tracing across services without changing application code.
Under The Hood
Requestly is a comprehensive web debugging and API mocking platform that enables developers to intercept, modify, and simulate HTTP requests in real-time. It combines a browser extension with a web application and backend services to provide an integrated environment for API testing and debugging.
Architecture
The system follows a monolithic architecture with clear modularity and component-based development, especially in its web application. It emphasizes separation of concerns across multiple layers including frontend, backend services, and browser extension components.
- The architecture uses a layered approach with distinct modules for authentication, API client functionality, mocks, rules, and user management
- Extensive use of shared libraries and common code modules promotes code reuse and consistent UI/UX across different parts of the system
- Design patterns like strategy and factory patterns are evident in request processing and error handling implementations
- Component interactions rely heavily on reusable React-based UI components with strong integration between frontend and backend services
Tech Stack
The project is built using modern JavaScript and TypeScript, with React as the primary frontend framework. It leverages a wide array of third-party libraries and tools to support its functionality as a web debugging proxy.
- Built with TypeScript and React, utilizing Vite for build tooling and development, with extensive use of Ant Design components
- Heavily relies on Firebase for backend services, Redux Toolkit for state management, and various utility libraries such as Lodash and Moment.js
- Uses Vite as the primary build tool, Rollup for browser extension builds, and concurrently for managing multiple development processes
- Implements Vitest for unit testing, Playwright for end-to-end browser testing, and includes comprehensive test scripts with coverage and linting
Code Quality
The codebase reflects a mixed level of quality with a strong emphasis on testing and error handling. While it demonstrates good practices in reliability and structure, some inconsistencies remain.
- Comprehensive test frameworks are implemented with extensive coverage across various rule types, showing a commitment to reliability
- Error handling is consistently applied through widespread try/catch blocks and structured exception management
- Code linting and type safety are configured, though naming conventions and style show some inconsistencies
- Technical debt is present in duplicated logic and complex conditional flows that could be refactored for better maintainability
What Makes It Unique
Requestly distinguishes itself as a powerful API mocking and testing platform that uniquely integrates browser extension functionality with robust backend services.
- Its approach to handling complex API interactions and rule-based request modifications provides a unique blend of real-time debugging and simulation capabilities
- The platform enables developers to create and manage mocks and rules directly within the browser, offering an intuitive workflow for API testing
- It stands out through its seamless integration between frontend UI, browser extension, and backend services, supporting a unified development experience