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.
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
(orCmd+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.
./manage.sh serve-frontend
— Start frontend Parcel server. This supports full auto-reload../manage.sh serve-backend
— Start backend server. This doesn't auto-reload when code changes../manage.sh serve-docs
— Start docs server. This supports auto-reload only for content pages../manage.sh test-*
— Test frontend/backend/ui (depending on what's in place of*
)../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
- HTTP Client for Sublime Text: Requester.
- HTTP Client for VS Code: vscode-restclient.
- REST Client for IntelliJ based IDEs: JetBrains HTTP Client.
- My own Vim extension towards a very similar concept: roast.vim.
More: https://github.com/marmelab/awesome-rest.
Some public APIs to play with
- httpbun.com — Great for meta-testing and JSON/form-data related experiments. Another project by @sharat87.
- A collective list of free APIs for use in software and web development.
- Yahoo Finance stock prices API — Great for large text responses and CSV data.
- GitHub GraphQL API — Great for experimenting with GraphQL, but requires a personal auth token.
- A Curated List of 100 Cool and Fun Public APIs to Inspire Your Next Project
- 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.