Postwoman is a self-hosted dev tool that achieves what postman does but with my personal preferences in its functionality and design. Made with Go (Echo), HTMX, and cURL.
- Use your keyboard to do everything if you want to (literally everything)
- Less cluttered UI and makes the most important things always accessible
- No need to sign up or log in and give your data to a third party
- But keep your request history and build profiles to save favorite requests (and autofill the form with the saved request!)
- And more...
curl_requests.mp4
JSON and HTML responses are automatically formatted.
history_list.mp4
favorites_list.mp4
fill_from_list.mp4
Go to postwoman.dev/features to view all features.
See the README in the .docker-setup folder for the docker setup guide.
To locally run postwoman, you need to have Go, PostgreSQL, Bash, and cURL installed on your machine.
- Download the ZIP of this repo or clone the repository
git clone https://github.com/dawitalemu4/postwoman.git
- Install the dependencies
go mod tidy
-
Rename the
.env.example
file to.env
and use your own values (or you can just use the provided values) -
Start the PostgreSQL server
pg_ctl -D "C:\Program Files\PostgreSQL\16\data" start # default postgres path on windows
or
pg_ctl -D /usr/local/var/postgres start # default postgres path on mac
- Run the server (I prefer air for hot reload)
go run server.go
or
air
- Open your browser and navigate to
localhost:YOURPORT
Download links: Go, PostgreSQL, Bash (I prefer git bash), cURL.
View postwoman.dev/install for more detailed instructions for your OS.
Check out my startup script to easily start up postwoman locally from a shortcut on your taskbar, or this startup script if you are using docker.
Visit postwoman.dev/shortcuts for demo videos and tutorials on how to make your own shortcut.
I'm open to contributions and suggestions, but fork this project if there are any crazy big changes you want to make that go against the postwoman.dev/contributing.
Follow the checklist in the postwoman.dev/contributing if you create a pull request or an issue.
Q: Why this UI style? Just use the terminal?
A: I wanted to be able to see the history of my requests, favorite some requests when I'm working on a specific controller, and see the status of the request on the request's preview before I select it, which postman didn't have and I hated guessing and trying each one to see which one works.
Q: Why self-hosted?
A: I don't want to pay for cloud resources for your convenience. Jokes aside, it's impossible to make API requests to an API that is locally hosted from postwoman if it was hosted on a deployed server (without having a user download something locally), and I plan on using this on APIs I'm building locally.
Leave a post in the discussions if you have any questions.
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International Public License - see the LICENSE.txt.