Watcher, API manager built for a easier use to manage and collaborate.
An API manager built for a easier use to manage and collaborate on API calls. It is also a cross-platform application powered by the web that is being wrapped using Tauri framework in which you can run Watcher on Windows, MacOS, or Linux without having much trouble. Some Watcher's features/roadmap in summary are:
- Making Request (Of course!)
- Directory Management
- Workspace switch
- Import from swagger
- Import from postman
- Environment Variables Feature
- Sync/Share Feature (From supabase)
- Tab Feature
- Pre/Post request script
- Realtime Collaboration
- Sync From more places!
- Import from more places!
- Flow Management
Watcher is currently under heavy development. You can give your suggestions and feedback on our Discussions page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to contribute to this project.
If you want to install Watcher on your system, you can download the installer for your operating system on the release page. Please note that the current version is not stable yet, and you may encounter various bugs.
- React
- Chakra UI
- Mobx
- Tauri
- Synced Store + Yjs (For Collaboration)
If you want to run this project in your local system, please follow this guide:
-
We use
yarn
to manage package and run scripts. -
Run
yarn install
to install dependencies. -
Run
yarn start
to start the react app running on port 3000 by default. -
Follow this guide to set up Tauri environment
-
Run
yarn tauri dev
Watcher currently support storing the collection in the supabase cloud. (Can be turned on in the green cloud button). Although it is being stored in the cloud, the data is encrypted with a offline key. This makes the collection impossible to be decrypted. When you are sharing the collection, you are also giving out the offline key which makes it possible for others to decrypt the collection detail locally.
We are using automerge to handle the syncing of data between different clients.
yjs and yjs-webrtc is used to share and exchange the realtime states between clients.