SDKs
Install a PostShiba client, mail adapter, or plugin for your language or framework.
PostShiba's language clients wrap the REST API. The JavaScript packages install from npm. The others install from GitHub. None of those is published to a package registry yet. See postshiba/sdks on GitHub.
Every client takes an API key from Create an API key. Most also take your team id, which is on the API keys page. A failed request raises an error carrying the API's error, field, and message. See Errors.
Give each app a Send only key. It covers the client's send methods, including template sends. Methods beyond sending, such as listing clusters, events, templates, or webhooks, need a Full access key and return 403 with a Send only key. Keep the Full access key in setup scripts and the CLI, not in your deployed app. Never put either key in browser or mobile code.
Command line
Install postshiba to send and manage your account from a terminal. On a TTY it prompts. In a script, CI, or with --json, it prints JSON and never prompts. It ships an agent skill (postshiba skills install or npx skills add postshiba/postshiba-cli), and the same skill is in the PostShiba Cursor plugin.
| Tool | Install | Guide |
|---|---|---|
| CLI | npm install -g @postshiba/cli |
Send emails with the CLI |
Language clients
| Language | Install | Guide |
|---|---|---|
| Node.js | npm install @postshiba/node |
Send emails with Node.js |
| Python | pip install git+https://github.com/postshiba/postshiba-python.git |
Send emails with Python |
| Ruby | gem "postshiba", git: "https://github.com/postshiba/postshiba-ruby.git" |
Send emails with Ruby |
| PHP | Add the VCS repository https://github.com/postshiba/postshiba-php, then composer require postshiba/postshiba:dev-main |
Send emails with PHP |
| Go | go get github.com/postshiba/postshiba-go |
Send emails with Go |
| Java | Clone postshiba/postshiba-java and run ./mvnw install |
Send emails with Java |
| Rust | postshiba = { git = "https://github.com/postshiba/postshiba-rust" } |
Send emails with Rust |
| .NET | Clone postshiba/postshiba-dotnet and reference src/PostShiba/PostShiba.csproj |
Send emails with .NET |
| Elixir | {:postshiba, git: "https://github.com/postshiba/postshiba-elixir.git"} |
Send emails with Elixir |
| Dart | Git dependency on https://github.com/postshiba/postshiba-dart.git |
Send emails with Dart |
The Node.js and Ruby clients also verify webhook signatures. See Verify webhook requests.
Framework mailers
The mail adapters ship inside the language client, so there's no separate package to install.
| Framework | Setting | Guide |
|---|---|---|
| Rails | delivery_method = :postshiba |
Send emails with Rails |
| Laravel | MAIL_MAILER=postshiba |
Send emails with Laravel |
| Django | EMAIL_BACKEND = "postshiba.django.EmailBackend" |
Send emails with Django |
| NestJS | PostShibaModule from @postshiba/node/nest |
Send emails with NestJS |
| Phoenix | adapter: PostShiba.Swoosh.Adapter |
Send emails with Phoenix |
Platform components
| Platform | Install | Guide |
|---|---|---|
| Convex | npm install @postshiba/convex |
Send emails with Convex |
| Inngest | npm install @postshiba/inngest |
Send emails with Inngest |
| Trigger.dev | npm install @postshiba/trigger |
Send emails with Trigger.dev |
| WordPress | Clone postshiba/postshiba-wordpress into wp-content/plugins/postshiba |
Send emails with WordPress |
SMTP-only apps
Apps that only speak SMTP need no SDK. Point them at your cluster's SMTP host. See Send emails with Ghost, Joomla, Supabase, or Send emails with SMTP.