nickyang4github / watcher

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Watcher, API manager built for a easier use to manage and collaborate.

Windows Support Ubuntu Support Mac Support


What is Watcher?

Demo

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.

Installation

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.

Tech Stack

  • React
  • Chakra UI
  • Mobx
  • Tauri
  • Synced Store + Yjs (For Collaboration)

Development

If you want to run this project in your local system, please follow this guide:

  1. We use yarn to manage package and run scripts.

  2. Run yarn install to install dependencies.

  3. Run yarn start to start the react app running on port 3000 by default.

  4. Follow this guide to set up Tauri environment

  5. Run yarn tauri dev

Sync Features

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.

Collaboration (In Progress)

yjs and yjs-webrtc is used to share and exchange the realtime states between clients.

About


Languages

Language:TypeScript 96.6%Language:HTML 1.6%Language:CSS 1.2%Language:Rust 0.6%