/postwoman

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.

Primary LanguageGoOtherNOASSERTION

postwoman icon

postwoman

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.

Differences from Postman

  • 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...

Features

Make Request

curl_requests.mp4

JSON and HTML responses are automatically formatted.

History List

history_list.mp4

Favorites List

favorites_list.mp4

Fill Form from List

fill_from_list.mp4

Go to postwoman.dev/features to view all features.

Installation

Docker Setup

See the README in the .docker-setup folder for the docker setup guide.

Local Setup

To locally run postwoman, you need to have Go, PostgreSQL, Bash, and cURL installed on your machine.

  1. Download the ZIP of this repo or clone the repository
git clone https://github.com/dawitalemu4/postwoman.git
  1. Install the dependencies
go mod tidy
  1. Rename the .env.example file to .env and use your own values (or you can just use the provided values)

  2. 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
  1. Run the server (I prefer air for hot reload)
go run server.go

or

air
  1. 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.

Startup Shortcuts

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.

Contributing

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.

FAQ

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.

License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International Public License - see the LICENSE.txt.