Skip to content

A text-based HTTP client in the browser. An interface-less Postman.

License

Notifications You must be signed in to change notification settings

sharat87/prestige

Repository files navigation

Prestige

A text-based HTTP client, by Shri. Available at prestige.dev.

Under all the abstractions, it's just stardust interacting with text.

This is a powerful, text-based, in-browser, HTTP client app geared towards web developers and API testing professionals.

Check out the User Guide to learn how Prestige can be a powerful addition to your toolset.

Discussion on Hacker News. Join us on Discord.

Prestige light mode screenshot Prestige dark model screenshot

If you face any problems or have a suggestion, please reach out on Discord, or create an issue.

Features

  • Define requests in plain text, hit Ctrl+Enter (or Cmd+Enter) to execute and view results.
  • Write plain, familiar Javascript for templating within your requests.
  • Shows all responses in a redirect chain, if request redirects.
  • Save your Prestige documents to Gist.
  • Export requests as cURL commands. Please open an issue if you'd like to see more export formats.
  • Isolated cookie management.
  • Uploading files to APIs is as simple as drag-dropping the file and calling a function.
  • Light and dark modes, for multiple themes.

Developing

Please ensure you have NodeJS (with yarn) and Go, of versions as specified in the .tool-versions file, before trying the following commands. I recommend using asdf-vm for this, which integrates with the .tool-versions file. So, if you have asdf already setup, you can just do asdf install in this repo, and you'll have the correct versions of NodeJS and Go.

The project contains a manage.sh script that makes development a little easier.

  1. ./manage.sh serve-frontend — Start frontend Parcel server. This supports full auto-reload.
  2. ./manage.sh serve-backend — Start backend server. This doesn't auto-reload when code changes.
  3. ./manage.sh serve-docs — Start docs server. This supports auto-reload only for content pages.
  4. ./manage.sh test-* — Test frontend/backend/ui (depending on what's in place of *).
  5. ./manage.sh build-* — Build frontend/backend/docs (depending on what's in place of *).

Run the serve commands in parallel, then open http://localhost:3040.

Inspirations

More: https://github.com/marmelab/awesome-rest.

Some public APIs to play with

  1. httpbun.com — Great for meta-testing and JSON/form-data related experiments. Another project by @sharat87.
  2. A collective list of free APIs for use in software and web development.
  3. Yahoo Finance stock prices API — Great for large text responses and CSV data.
  4. GitHub GraphQL API — Great for experimenting with GraphQL, but requires a personal auth token.
  5. A Curated List of 100 Cool and Fun Public APIs to Inspire Your Next Project
  6. Postman's collection

Rough Roadmap

  • Close gaps in documentation, finish API Reference and link all mentions of API functions to this page.
  • A desktop app with NeutralinoJS or some other such technology.
  • A browser extension that, when installed, would make it so that we don't need the proxy anymore.
  • A Dockerfile for quickly running a self-hosted instance of Prestige with Docker.
  • Ability to open/edit documents from GitHub repos, Google Drive and Dropbox.
  • Rich editor features like auto-complete, JSON editing help, hotkeys to start new GET/POST/etc. request, snippets etc.

Contributing

Contributions (code, tests, docs) are welcome, but if it's even slightly non-trivial or more than a few lines of changes, I'd appreciate it if you opened an issue to discuss before working towards a PR. Among other things, this can help avoid overlaps where we're both working on the same thing, and we realize it only after you open a PR.

License

Apache-2.0. Project includes a NOTICE file.