prestige icon indicating copy to clipboard operation
prestige copied to clipboard

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

Prestige

A text-based HTTP client, by @sharat87. 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.

Under the Hood

Prestige exists thanks to the work of the following open source projects (not exhaustive, thanks to all those who weren't listed here, but still were just as helpful):

  1. TypeScript & Mithril — power the frontend UI and logic.
  2. CodeMirror — powers the code editor and syntax-highlighted code blocks.
  3. Sass & Tachyons — power the styling and theming systems.
  4. Go — power the backend logic.
  5. Jest & Puppeteer — power the testing workflows.
  6. MkDocs — powers the documentation site.
  7. Phosphor — Original source for icons in the application.

The backend was once powered by Python and Django, but was later rewritten in Go. Thanks to the teams behind Python and Django as well!

A big thank you to all folks who put in their time and sweat for these projects to exist as open source!

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

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.