$ show hoppscotch/hoppscotch
Hoppscotch is an open-source, multi-platform API development ecosystem that serves as a full-featured alternative to Postman. It supports REST, GraphQL, WebSocket, SSE, Socket.IO, and MQTT protocols, with advanced features like pre-request and test scripting (sandboxed), environment variables, team collaboration, mock servers, published documentation, AI assistant, and extensive import/export (Postman, Insomnia, OpenAPI, HAR, cURL). The monorepo is organized into packages: a Vue 3 frontend (hoppscotch-common), a NestJS/GraphQL/Prisma backend (hoppscotch-backend), a Tauri desktop app (hoppscotch-desktop), a Node.js CLI (hoppscotch-cli), a Tauri agent for interceptor (hoppscotch-agent), a shared kernel abstraction layer (hoppscotch-kernel), versioned data schemas (hoppscotch-data), a JavaScript sandbox engine (hoppscotch-js-sandbox), and self-hosted web/admin panels. The architecture emphasizes functional programming with fp-ts, reactive state management via RxJS DispatchingStores, dependency injection with dioc, and a kernel/relay pattern that abstracts HTTP execution across platforms. The codebase is actively maintained with extensive test coverage and demonstrates high craftsmanship in areas like versioned data migration, sandboxed script execution, and cross-platform kernel design.
The LLM identified 5 files worth highlighting for reuse:
Generates AWS Signature V4 authorization headers for HTTP requests. This is a self-contained, pure function that takes request parameters (method, URL, headers, body) and AWS credentials, then computes the canonical request, string-to-sign, and signature. It is reusable in any HTTP client or library that needs to sign requests with AWS Signature V4, and demonstrates non-obvious skill in implementing the complex AWS signing protocol correctly.
Converts Postman collection JSON (v2.1) into Hoppscotch's internal collection format. This is a standalone parser that handles Postman's request structure, auth types, body modes, and script references. It can be extracted and adapted to convert Postman collections to any other format, and demonstrates careful handling of Postman's idiosyncrasies (e.g., variable resolution, auth inheritance).
Defines the version 15 schema for REST requests using the verzod library, which provides versioned entities with explicit migration functions (up/down). This pattern allows safe evolution of persisted data structures across application versions. The schema itself is a Zod object with detailed fields for URL, method, headers, body, auth, and scripts. The migration logic from v14 to v15 is self-contained and demonstrates a robust approach to backward-compatible data migration that can be reused in any project requiring schema versioning.
Provides a sandboxed environment for executing pre-request and test scripts in a Web Worker. It exposes a controlled API (pw, pm, hopp namespaces) and handles script compilation, execution, and result extraction. This module is self-contained and can be reused in any web application that needs to run user-supplied JavaScript safely. It demonstrates non-obvious skill in sandbox design, including error isolation, timeout handling, and API surface restriction.
Parses a cURL command string into a structured Hoppscotch request object. It handles flags like -X, -H, -d, --data-binary, -b, -c, and URL-encoded data. This is a standalone utility that can be reused in any tool that needs to convert cURL commands to a programmatic request format. The parser demonstrates careful handling of edge cases (e.g., quoted strings, escaped characters, multiple headers) and is well-tested.