<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://docs.pwpush.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://docs.pwpush.com/" rel="alternate" type="text/html" /><updated>2026-07-23T08:04:04-04:00</updated><id>https://docs.pwpush.com/feed.xml</id><title type="html">Password Pusher</title><subtitle>Documentation portal for Password Pusher - securely share sensitive information.</subtitle><author><name>Peter Giacomo Lombardo</name></author><entry><title type="html">Authenticated Recipients: Verify Who Views Your Secrets</title><link href="https://docs.pwpush.com/posts/2026-07-15-Authenticated-Recipients-Verify-Who-Views-Your-Secrets/" rel="alternate" type="text/html" title="Authenticated Recipients: Verify Who Views Your Secrets" /><published>2026-07-15T00:00:00-04:00</published><updated>2026-07-15T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/Authenticated-Recipients-Verify-Who-Views-Your-Secrets</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-07-15-Authenticated-Recipients-Verify-Who-Views-Your-Secrets/"><![CDATA[<p><strong>TL;DR:</strong> Password Pusher now supports Authenticated Recipients — email-based identity verification for pushes and requests. When enabled, recipients must enter their email and a 6-digit one-time code before the secret is revealed. The code is single-use, rate-limited, and hashed before storage. Available on <a href="https://pwpush.com">pwpush.com</a> for Premium, Pro, and Enterprise plans, with Self-Hosted Pro support coming in the next release.</p>

<!-- more -->

<h2 id="the-gap-between-access-control-and-identity-verification">The Gap Between Access Control and Identity Verification</h2>

<p>Password Pusher has always offered two ways to restrict access to a secret link: view limits and passphrases. Both serve their purpose, but neither answers a more fundamental question — is the person opening this link actually the person I sent it to?</p>

<p>A passphrase is a shared secret. Anyone who has it can use it. It has to be communicated through a separate channel, and it can be forwarded just as easily as the link itself. View limits cap how many times a link can be opened, but they don’t distinguish between the intended recipient and someone who happened to get the forwarded link first.</p>

<p>Authenticated Recipients addresses this directly. Instead of proving you have a code, you prove you <em>are</em> the intended recipient — by demonstrating control of the email address the sender authorized.</p>

<h2 id="how-it-works">How It Works</h2>

<p>When you create a push using Auto-Dispatch (which emails the secret link to recipients on your behalf), a new option appears: <strong>Require Email Verification</strong>.</p>

<p>With this enabled, anyone who opens the secret link sees an email challenge before the payload is revealed:</p>

<ol>
  <li>The recipient enters their email address.</li>
  <li>If the email matches the authorized recipient list, a 6-digit one-time code is sent.</li>
  <li>The recipient enters the code to unlock the secret.</li>
  <li>The code is single-use and expires quickly.</li>
</ol>

<p>If the email doesn’t match the allowlist, the same interface is shown — but no code is sent. This is deliberate: no information leaks about who was supposed to receive the secret, and there’s no way to enumerate the recipient list by probing.</p>

<h2 id="what-this-means-for-compliance">What This Means for Compliance</h2>

<p><img src="/assets/images/posts/2026/authenticated-recipients-audit-log.png" alt="" class="align-center" /></p>

<p>For organizations that need to demonstrate controlled delivery of sensitive information, the audit trail now includes identity verification events alongside view events. The difference matters: previously, audit logs could show that <em>someone</em> viewed a secret at a given time from a given IP. Now they can show that the viewer proved their identity before accessing the content.</p>

<p>This is relevant for security questionnaires, internal compliance policies, and any workflow where “prove it was delivered to the right person” is a requirement — not just “prove it was delivered.”</p>

<h2 id="stacking-with-existing-controls">Stacking With Existing Controls</h2>

<p>Authenticated Recipients integrates with the features you already use:</p>

<ul>
  <li><strong>Auto-Dispatch.</strong> The recipient list comes from the same emails you’re already sending to. The verification checkbox is a single additional option on the push creation form.</li>
  <li><strong>Passphrases.</strong> Both controls can be active simultaneously. The recipient verifies their email <em>and</em> enters a passphrase. The flow handles each step in sequence.</li>
  <li><strong>Requests.</strong> This works for credential requests too — when someone submits a response to your request, they verify their identity first.</li>
  <li><strong>Policies.</strong> Account admins can set the default behavior, enforce verification on all pushes, or leave it as a per-push decision for individual users.</li>
</ul>

<h2 id="security-implementation">Security Implementation</h2>

<p>A few details on how the verification is built:</p>

<table>
  <thead>
    <tr>
      <th>Aspect</th>
      <th>Implementation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Code storage</td>
      <td>Hashed before storage (not stored in plaintext)</td>
    </tr>
    <tr>
      <td>Brute-force protection</td>
      <td>Rate limiting on verification attempts</td>
    </tr>
    <tr>
      <td>Replay prevention</td>
      <td>Signed access cookies scoped to the verified session</td>
    </tr>
    <tr>
      <td>View count integrity</td>
      <td>Failed verification attempts do not burn view counts</td>
    </tr>
    <tr>
      <td>Recipient enumeration</td>
      <td>Non-matching emails see the same UX as matching ones</td>
    </tr>
  </tbody>
</table>

<h2 id="where-this-might-not-be-the-right-fit">Where This Might Not Be the Right Fit</h2>

<p>Authenticated Recipients requires Auto-Dispatch recipients — the feature activates when you specify email addresses for automatic delivery. If you’re sharing a link manually (copying it from the preview page and pasting it into a chat message or your own email), there’s no recipient list to verify against. In that case, passphrases remain the access control mechanism.</p>

<p>The verification also depends on email delivery. If your recipient’s email is delayed or filtered to spam, they’ll need to wait for the code to arrive. For time-sensitive scenarios where the recipient is standing next to you, a passphrase is faster.</p>

<h2 id="availability">Availability</h2>

<p>Authenticated Recipients is available now on <a href="https://pwpush.com">pwpush.com</a> for Premium, Pro, and Enterprise plans. It will be included in the next Self-Hosted Pro release.</p>

<p>This has been one of our most requested features — the original <a href="https://github.com/pglombardo/PasswordPusher/discussions/1942">community request</a> dates back to early 2024. I’m glad it’s here.</p>

<hr />

<p><em>Peter Giacomo Lombardo</em>
<em>Founder &amp; Principal, <a href="https://apnotic.com">Apnotic</a> · Creators of <a href="https://pwpush.com">Password Pusher</a></em></p>]]></content><author><name>pglombardo</name></author><category term="Features" /><category term="security" /><category term="authentication" /><category term="otp" /><category term="enterprise" /><category term="email" /><summary type="html"><![CDATA[Password Pusher now supports email-based recipient verification. Before viewing a secret, recipients must prove their identity with a one-time code sent to their email.]]></summary></entry><entry><title type="html">OSS Password Pusher Can Now Email Pushes Directly to Recipients</title><link href="https://docs.pwpush.com/posts/2026-07-04-Password-Pusher-Can-Now-Email-Pushes-Directly-to-Recipients/" rel="alternate" type="text/html" title="OSS Password Pusher Can Now Email Pushes Directly to Recipients" /><published>2026-07-04T00:00:00-04:00</published><updated>2026-07-04T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/Password-Pusher-Can-Now-Email-Pushes-Directly-to-Recipients</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-07-04-Password-Pusher-Can-Now-Email-Pushes-Directly-to-Recipients/"><![CDATA[<p><strong>TL;DR:</strong> Starting with v2.9.0, OSS Password Pusher can automatically email your pushes directly to recipients. Enter one or more email addresses when creating a push, and the application sends the secret link on your behalf — with full audit logging and support for 30+ languages. Available from the UI and the API.</p>

<p>This is a <a href="https://docs.pwpush.com/posts/feature-pipeline/">Feature Pipeline</a> release: auto-dispatch has been available on <a href="https://pwpush.com">pwpush.com</a> as part of the Pro edition, and is now included in OSS Password Pusher for all self-hosted deployments.</p>

<!-- more -->

<h2 id="the-copy-paste-problem">The Copy-Paste Problem</h2>

<p>Every secret-sharing tool works roughly the same way: you create a self-destructing link, copy it, and then paste it into an email or chat message to send it along.</p>

<p>That last step — the manual copy-paste — has always been a minor annoyance for individual users and a real bottleneck for teams and MSPs who share credentials dozens of times a day. It also means the delivery method is entirely outside the application, so there’s no audit trail of <em>who</em> the link was sent to, only who viewed it.</p>

<p>v2.9.0 closes that gap.</p>

<h2 id="what-is-auto-dispatch">What Is Auto-Dispatch?</h2>

<p>When you create a push, you can now enter one or more recipient email addresses directly in the form. OSS Password Pusher will email the secret link to each recipient on your behalf, with a clear message explaining what it is, how long it lasts, and what to expect.</p>

<p>A few things worth noting:</p>

<ul>
  <li><strong>Up to 5 recipients per push.</strong> You can send to multiple people at once, comma-separated.</li>
  <li><strong>Language selection.</strong> Choose the language for the email and the secret link page. This is useful when your recipients speak a different language — Password Pusher supports over 30 locales.</li>
  <li><strong>Available on all push types.</strong> Text pushes, file pushes, URL pushes and QR pushes all support auto-dispatch.</li>
  <li><strong>Works from the preview page too.</strong> Forgot to add recipients when creating? You can send the email from the push preview page after creation.</li>
</ul>

<h2 id="what-does-the-recipient-see">What Does the Recipient See?</h2>

<p>Recipients receive an email with the secret link, who sent it, how long the link is valid, and a note about passphrases if one was set. The email is clean and straightforward — no marketing, no branding distractions.</p>

<h2 id="full-audit-trail">Full Audit Trail</h2>

<p>Every auto-dispatch action is recorded in the push audit log. You can see:</p>

<ul>
  <li>When the email was queued</li>
  <li>Who it was sent to</li>
  <li>The delivery status: pending, processing, completed, partially failed, or failed</li>
  <li>Any error messages if delivery didn’t succeed</li>
</ul>

<p>This is important for compliance and accountability. Previously, if you shared a link via email manually, Password Pusher had no record of who you sent it to — only who eventually viewed it. Now, the full lifecycle is tracked: creation → email dispatch → each view → expiration.</p>

<h2 id="how-does-it-work-under-the-hood">How Does It Work Under the Hood?</h2>

<p>Auto-dispatch activates automatically when SMTP is configured on your instance. If your instance can send email, the auto-dispatch fields appear in the push creation form for signed-in users.</p>

<p>When a push with recipients is created, the application enqueues a background job that delivers one email per recipient. The job has built-in retry logic for transient SMTP failures.</p>

<p>There’s a configurable daily limit per user (default: 500 emails/day) to prevent abuse, and you can disable the feature entirely if you don’t want it.</p>

<h3 id="configuration">Configuration</h3>

<p>Two new environment variables:</p>

<table>
  <thead>
    <tr>
      <th>Variable</th>
      <th>Default</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">PWP__NOTIFY_BY_EMAIL__ENABLED</code></td>
      <td><code class="language-plaintext highlighter-rouge">true</code></td>
      <td>Set to <code class="language-plaintext highlighter-rouge">false</code> to fully disable auto-dispatch (hides UI, blocks API).</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">PWP__NOTIFY_BY_EMAIL__DAILY_LIMIT</code></td>
      <td><code class="language-plaintext highlighter-rouge">500</code></td>
      <td>Per-user daily email cap. Set to <code class="language-plaintext highlighter-rouge">0</code> to block sends (UI still visible), leave unset for unlimited.</td>
    </tr>
  </tbody>
</table>

<p>Or in <code class="language-plaintext highlighter-rouge">settings.yml</code>:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">notify_by_email</span><span class="pi">:</span>
  <span class="na">enabled</span><span class="pi">:</span> <span class="kc">true</span>       <span class="c1"># Set to false to fully disable</span>
  <span class="na">daily_limit</span><span class="pi">:</span> <span class="m">500</span>    <span class="c1"># Set to 0 to block sends, null for unlimited</span>
</code></pre></div></div>

<p>For the full configuration reference, see the <a href="https://docs.pwpush.com/docs/notify-by-email/">Notify by Email documentation</a>.</p>

<h2 id="api-support">API Support</h2>

<p>The JSON API v2 supports auto-dispatch in two ways:</p>

<p><strong>1. On push creation</strong> — include <code class="language-plaintext highlighter-rouge">notify_emails_to</code> and optional <code class="language-plaintext highlighter-rouge">notify_emails_to_locale</code>:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-X</span> POST <span class="s2">"https://your-instance.com/api/v2/pushes.json"</span> <span class="se">\</span>
  <span class="nt">-H</span> <span class="s2">"Authorization: Bearer YOUR_API_TOKEN"</span> <span class="se">\</span>
  <span class="nt">-H</span> <span class="s2">"Content-Type: application/json"</span> <span class="se">\</span>
  <span class="nt">-d</span> <span class="s1">'{
    "push": {
      "payload": "my-secret-password",
      "expire_after_days": 3,
      "expire_after_views": 5,
      "notify_emails_to": "alice@example.com, bob@example.com",
      "notify_emails_to_locale": "fr"
    }
  }'</span>
</code></pre></div></div>

<p><strong>2. For existing pushes</strong> — send notifications after creation:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-X</span> POST <span class="s2">"https://your-instance.com/api/v2/pushes/YOUR_URL_TOKEN/notify_emails"</span> <span class="se">\</span>
  <span class="nt">-H</span> <span class="s2">"Authorization: Bearer YOUR_API_TOKEN"</span> <span class="se">\</span>
  <span class="nt">-H</span> <span class="s2">"Content-Type: application/json"</span> <span class="se">\</span>
  <span class="nt">-d</span> <span class="s1">'{
    "notify_emails_to": "alice@example.com",
    "notify_emails_to_locale": "en"
  }'</span>
</code></pre></div></div>

<p>The audit log endpoint also returns email dispatch events, so you can programmatically check delivery status.</p>

<p>For teams and MSPs who script their credential sharing workflows, this is a meaningful improvement: you can now create a push <em>and</em> deliver it to the recipient in a single API call.</p>

<h2 id="feature-pipeline">Feature Pipeline</h2>

<p>Auto-dispatch has been part of the Pro edition on <a href="https://pwpush.com">pwpush.com</a> for some time. With v2.9.0, it’s now included in OSS Password Pusher for all self-hosted deployments.</p>

<p>This is how the <a href="https://docs.pwpush.com/posts/feature-pipeline/">Feature Pipeline</a> works: Pro subscribers on pwpush.com get early access to new features, and over time, those features move into the open-source codebase. Subscribers fund the development; OSS Password Pusher is the eventual beneficiary.</p>

<p>If you’re running a self-hosted instance, upgrade to v2.9.0 and make sure SMTP is configured — the feature activates automatically from there.</p>

<h2 id="where-this-might-not-be-the-right-fit">Where This Might Not Be the Right Fit</h2>

<p>Auto-dispatch sends emails through your instance’s configured SMTP server. If your SMTP provider has strict sending limits (e.g., Gmail’s 500/day for personal accounts), the daily cap setting lets you stay within those limits. For high-volume use cases, a transactional email provider like SendGrid or Amazon SES is recommended.</p>

<p>Also, auto-dispatch requires signed-in users — anonymous pushes can’t trigger email notifications, by design. This prevents the feature from being used for spam.</p>

<hr />

<p><em>Peter Giacomo Lombardo</em>
<em>Founder &amp; Principal, <a href="https://apnotic.com">Apnotic</a> · Creators of <a href="https://pwpush.com">Password Pusher</a></em></p>]]></content><author><name>pglombardo</name></author><category term="Features" /><category term="auto-dispatch" /><category term="email" /><category term="feature-pipeline" /><category term="self-hosted" /><category term="api" /><summary type="html"><![CDATA[OSS Password Pusher v2.9.0 adds built-in auto-dispatch: automatically email self-destructing secret links to recipients from the UI or API, with full audit logging and locale support.]]></summary></entry><entry><title type="html">How to Securely Collect Passwords from Clients</title><link href="https://docs.pwpush.com/posts/2026-06-30-how-to-securely-collect-passwords-from-clients/" rel="alternate" type="text/html" title="How to Securely Collect Passwords from Clients" /><published>2026-06-29T00:00:00-04:00</published><updated>2026-06-29T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/how-to-securely-collect-passwords-from-clients</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-06-30-how-to-securely-collect-passwords-from-clients/"><![CDATA[<p><strong>Quick answer:</strong> Create a <a href="https://pwpush.com/requests">Request</a> — a secure, one-time submission link that you send to the person who has the credentials. They paste the password into an encrypted form, and you receive it through an audit-logged, self-destructing link. No account required for the sender. No passwords in email or chat.</p>

<!-- more -->

<h2 id="the-problem-everyone-knows-about">The Problem Everyone Knows About</h2>

<p>If you work in IT, run a web agency, manage infrastructure for clients, or handle onboarding for any kind of service — you’ve been in this situation. You need a password from someone. A client, a vendor, a new hire, a colleague in another department.</p>

<p>So you ask for it. And what happens next is almost always the same.</p>

<p>They email it to you. Or they paste it into a Slack message. Or a Teams chat. Or a shared Google Doc. Or — and this one still surprises me — a text message.</p>

<p>That password now lives in a system designed to keep messages forever. Searchable, forwardable, sitting in logs and backups long after anyone remembers it exists. Every compliance framework tells you not to do this. Everyone does it anyway, because there hasn’t been a simple alternative.</p>

<h2 id="what-securely-actually-means-here">What “Securely” Actually Means Here</h2>

<p>There are a few properties that matter when collecting credentials from someone:</p>

<ul>
  <li><strong>Encrypted in transit and at rest.</strong> The password should never be visible as plain text in a database, an inbox, or a log file.</li>
  <li><strong>Self-destructing.</strong> Once you’ve retrieved the credential, the data should be permanently deleted. Not archived. Not soft-deleted. Gone.</li>
  <li><strong>Audit-logged.</strong> You should know exactly when the credential was submitted and when it was retrieved — for your own records and for compliance.</li>
  <li><strong>No account required for the sender.</strong> If collecting a password requires your client to sign up for a service, install an app, or figure out PGP, they’ll just email it to you instead.</li>
</ul>

<p>That last point is the one most solutions get wrong.</p>

<h2 id="the-old-way-vs-the-new-way">The Old Way vs. the New Way</h2>

<table>
  <thead>
    <tr>
      <th> </th>
      <th>Email / Chat</th>
      <th>Password Manager Sharing</th>
      <th>Request Link</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Credentials in plain text?</td>
      <td>Yes — stored in inbox/logs forever</td>
      <td>No — encrypted in vault</td>
      <td>No — AES-256, deleted after retrieval</td>
    </tr>
    <tr>
      <td>Self-destructs?</td>
      <td>No</td>
      <td>No — persists in vault</td>
      <td>Yes — configurable by views or time</td>
    </tr>
    <tr>
      <td>Requires sender to have an account?</td>
      <td>No</td>
      <td>Yes — same password manager</td>
      <td>No</td>
    </tr>
    <tr>
      <td>Audit trail?</td>
      <td>No</td>
      <td>Varies</td>
      <td>Yes — full lifecycle logging</td>
    </tr>
    <tr>
      <td>Works across organizations?</td>
      <td>Yes</td>
      <td>Rarely — requires shared vault</td>
      <td>Yes</td>
    </tr>
  </tbody>
</table>

<p>Password manager sharing is secure, but it only works when both parties use the same manager — which almost never happens across company boundaries. Request links solve the cross-organization problem.</p>

<h2 id="how-requests-work-in-password-pusher">How Requests Work in Password Pusher</h2>

<p><a href="https://pwpush.com/requests">Requests</a> flip the direction of Password Pusher’s core mechanic. Instead of creating a secret and sending a link to a recipient, you create a <em>request</em> and send the link to the person who <em>has</em> the secret.</p>

<p>Here’s the flow:</p>

<ol>
  <li><strong>You create a Request.</strong> Give it a name (e.g., “Staging server credentials”), set expiry rules, and optionally add your branding.</li>
  <li><strong>You send the Request link.</strong> Email it, message it, put it in a ticket — the link itself contains no sensitive data.</li>
  <li><strong>Your client opens the link and submits their credentials.</strong> The submission is encrypted before it’s stored. No account needed.</li>
  <li><strong>You get notified and retrieve the submission.</strong> Every access is logged. The data self-destructs after your configured limits.</li>
</ol>

<p>The entire exchange is encrypted with AES-256, audit-logged from creation through retrieval, and permanently deleted once it expires.</p>

<h2 id="where-this-fits-in-practice">Where This Fits in Practice</h2>

<p>The most common use cases we see:</p>

<ul>
  <li><strong>MSPs and IT service providers</strong> collecting login credentials during client onboarding</li>
  <li><strong>Web agencies</strong> gathering CMS, hosting, and DNS credentials from new clients</li>
  <li><strong>Internal IT</strong> requesting WiFi passwords, VPN configs, or service account credentials from other departments</li>
  <li><strong>HR and finance</strong> collecting sensitive employee information during onboarding</li>
  <li><strong>Compliance teams</strong> receiving credentials for vendor assessments</li>
</ul>

<p>If you’re already using Password Pusher to <em>send</em> passwords, Requests are the other half of the workflow.</p>

<h2 id="what-about-other-options">What About Other Options?</h2>

<p>A few purpose-built tools have appeared for credential collection — CredentialShare, SecureBin, and various WordPress plugins. They tend to focus narrowly on the intake form and skip the broader workflow: team management, custom domains, white-label branding, file attachments, API access, and self-hosted deployment.</p>

<p>Password Pusher Requests include all of those, and they work consistently whether you’re on the hosted service at <a href="https://pwpush.com">pwpush.com</a> or running a <a href="https://pwpush.com/self-hosted-pricing">self-hosted instance</a> on your own infrastructure.</p>

<h2 id="where-requests-may-not-be-the-right-fit">Where Requests May Not Be the Right Fit</h2>

<p>If you need ongoing, persistent access to a credential — like a shared service account password that multiple team members use daily — a password manager with a shared vault is the right tool. Requests are designed for one-time handoffs, not persistent storage.</p>

<p>If your organization requires SAML-based SSO for every tool in the stack, note that Password Pusher supports OIDC (OAuth2) on the <a href="https://pwpush.com/self-hosted-pricing">self-hosted Enterprise tier</a>. SAML is not currently supported on any tier.</p>

<h2 id="getting-started">Getting Started</h2>

<p>You can <a href="https://pwpush.com/requests">create a Request</a> right now with a free account. The recipient doesn’t need an account — they just open the link and submit.</p>

<p>For teams that need audit trails, branding, and custom domains, those are available on <a href="https://pwpush.com/pricing">Pro plans</a>. For organizations that need to keep everything on their own infrastructure, <a href="https://pwpush.com/self-hosted-pricing">Self-Hosted Pro</a> includes Requests with full API access.</p>

<p>The next time someone asks “just email me the password” — send them a Request link instead.</p>

<hr />

<p><em>Peter Giacomo Lombardo</em>
<em>Founder &amp; Principal, <a href="https://apnotic.com">Apnotic</a> · Creators of <a href="https://pwpush.com">Password Pusher</a></em></p>]]></content><author><name>pglombardo</name></author><category term="Guides" /><category term="requests" /><category term="security" /><category term="credential-sharing" /><category term="best-practices" /><summary type="html"><![CDATA[Stop asking clients to email passwords. Use encrypted, self-destructing request links to collect credentials, API keys, and sensitive files securely.]]></summary></entry><entry><title type="html">How to Send a Password Protected Email (And Why You Probably Shouldn’t)</title><link href="https://docs.pwpush.com/posts/2026-06-05-How-to-Send-a-Password-Protected-Email/" rel="alternate" type="text/html" title="How to Send a Password Protected Email (And Why You Probably Shouldn’t)" /><published>2026-06-05T00:00:00-04:00</published><updated>2026-06-05T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/How-to-Send-a-Password-Protected-Email</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-06-05-How-to-Send-a-Password-Protected-Email/"><![CDATA[<p>If you searched “how to send a password protected email,” you probably have a password, API key, or some other credential you need to get to someone. Every guide you’ll find will walk you through Gmail Confidential Mode or Outlook’s encryption settings.</p>

<p>Those guides aren’t wrong. But they’re answering the wrong question.</p>

<p>The better question is: <strong>should sensitive information be in an email at all?</strong></p>

<!-- more -->

<h2 id="the-short-answer">The Short Answer</h2>

<p>No. Don’t put the password in the email. Put it behind a one-time link that self-destructs after it’s been read. Send that link through email — or Slack, or Teams, or text. The sensitive data never touches anyone’s inbox.</p>

<p>That’s it. That’s the whole approach. If you want to get started right now, go to <a href="https://pwpush.com">pwpush.com</a>, paste your secret, and you’ll have a link in about five seconds. No account required.</p>

<p>If you want to understand <em>why</em> this is better, keep reading.</p>

<h2 id="whats-wrong-with-password-protected-email">What’s Wrong With Password Protected Email</h2>

<p>Password-protecting an email sounds secure. The problem is what happens after the recipient opens it.</p>

<p><strong>The credential persists.</strong> Once your recipient reads the email, that password now sits in their inbox — indefinitely. It’s in your Sent folder too. Both are backed up, synced across devices, and archived by your email provider. That one credential you sent at 3pm on a Tuesday now exists in a half-dozen places, none of which you control.</p>

<p><strong>Gmail Confidential Mode isn’t encryption.</strong> Google’s own documentation acknowledges this. The recipient can’t forward the email, but they can screenshot it. Google can still scan the contents. And the “expiration” just removes access to the email — it doesn’t delete the data from Google’s servers.</p>

<p><strong>The password-for-the-password problem.</strong> If you encrypt an email, you need to get the decryption password to the recipient somehow. Most people send it in a separate email. So now you have two emails, both in inboxes, both persistent — and anyone who compromises the inbox gets both.</p>

<p><strong>Forwarding and screenshots.</strong> Even with access controls, you can’t prevent someone from copying the text and pasting it somewhere else. The fundamental issue isn’t access control — it’s that email is a persistent medium, and credentials shouldn’t persist.</p>

<h2 id="the-one-time-link-approach">The One-Time Link Approach</h2>

<p>Instead of trying to make email secure, take the sensitive data out of email entirely.</p>

<ol>
  <li>Put the credential behind a one-time link</li>
  <li>Send the link through whatever channel you’d normally use — email, Slack, Teams, text</li>
  <li>The recipient clicks the link and sees the credential</li>
  <li>The link self-destructs. The data is deleted.</li>
</ol>

<p>The email still exists in both inboxes, sure. But it contains a link to something that no longer exists. Anyone who finds that email later — whether through a breach, a forwarded thread, or an old backup — gets nothing.</p>

<h2 id="how-password-pusher-works">How Password Pusher Works</h2>

<p><a href="https://pwpush.com">Password Pusher</a> is built specifically for this:</p>

<ul>
  <li><strong>Paste your secret</strong> at <a href="https://pwpush.com">pwpush.com</a> and set a view limit and expiration</li>
  <li><strong>Get a one-time link</strong> — send it however you want</li>
  <li><strong>Recipient clicks the link</strong> and sees the secret</li>
  <li><strong>The data self-destructs</strong> after the view limit or time limit is reached</li>
</ul>

<p>No account required. No software to install — for you or the recipient.</p>

<p>A few extras that matter: a <strong>retrieval step</strong> that prevents URL preview bots (Slack, Teams, iMessage) from consuming views before your recipient sees them. <strong>Passphrase protection</strong> for an extra layer. An <strong>audit trail</strong> showing when links were accessed. And <strong>auto-dispatch</strong> to <a href="https://pwpush.com/features">email the link directly</a> to the recipient on your behalf.</p>

<p>Password Pusher has been in production since 2011 — over fourteen years. The security-critical code is <a href="https://github.com/pglombardo/PasswordPusher">fully open source</a> and auditable on GitHub. Over 100 million secrets shared. You can use it for free, or get <a href="https://pwpush.com/pricing">Pro features</a> like team collaboration, custom domains, and white-label branding for your organization.</p>

<h2 id="quick-recap">Quick Recap</h2>

<table>
  <thead>
    <tr>
      <th>Approach</th>
      <th>Credential persists?</th>
      <th>Recipient needs account?</th>
      <th>You control the lifecycle?</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Password-protected email</td>
      <td>Yes — in both inboxes, backups, archives</td>
      <td>No</td>
      <td>No</td>
    </tr>
    <tr>
      <td>Encrypted email (S/MIME, PGP)</td>
      <td>Yes — once decrypted</td>
      <td>Yes — needs certificates/keys</td>
      <td>No</td>
    </tr>
    <tr>
      <td>One-time link (Password Pusher)</td>
      <td>No — deleted after viewing</td>
      <td>No</td>
      <td>Yes</td>
    </tr>
  </tbody>
</table>

<p>The safest email is the one that doesn’t contain the secret.</p>

<hr />

<p><em>Peter Giacomo Lombardo</em>
<em>Founder &amp; Principal, <a href="https://apnotic.com">Apnotic</a> · Creators of <a href="https://pwpush.com">Password Pusher</a></em></p>]]></content><author><name>pglombardo</name></author><category term="Guides" /><category term="email-security" /><category term="secure-sharing" /><category term="best-practices" /><summary type="html"><![CDATA[Every guide tells you how to password protect an email. Here's why that's the wrong question — and what actually keeps your sensitive data safe.]]></summary></entry><entry><title type="html">Password Protected File Sharing — Without the Overhead</title><link href="https://docs.pwpush.com/posts/2026-06-05-Password-Protected-File-Sharing/" rel="alternate" type="text/html" title="Password Protected File Sharing — Without the Overhead" /><published>2026-06-05T00:00:00-04:00</published><updated>2026-06-05T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/Password-Protected-File-Sharing</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-06-05-Password-Protected-File-Sharing/"><![CDATA[<p>If you’re looking for a password protected file sharing site, you’ve probably already found a dozen enterprise platforms asking you to set up a client portal, create accounts for your recipients, and commit to a monthly subscription before you can share a single file.</p>

<p>Most of the time, that’s not what you need. You need to get a file to someone securely, know when they’ve accessed it, and have the whole thing disappear when it’s done.</p>

<!-- more -->

<h2 id="the-quick-answer">The Quick Answer</h2>

<p><a href="https://pwpush.com">Password Pusher</a> lets you attach files to a self-destructing link. Upload the file, set an expiration, share the link. The recipient clicks it, downloads the file, and the link expires after the view limit or time limit you set. No account required — for you or the recipient.</p>

<p>If that’s enough to get started, go to <a href="https://pwpush.com">pwpush.com</a> and try it. No signup needed.</p>

<p>If you want to understand the full feature set, keep reading.</p>

<h2 id="how-file-sharing-works-in-password-pusher">How File Sharing Works in Password Pusher</h2>

<p>The workflow is the same whether you’re sharing a text password or a file — or both at the same time.</p>

<ol>
  <li><strong>Go to <a href="https://pwpush.com">pwpush.com</a></strong> and create a new push</li>
  <li><strong>Attach one or more files</strong> alongside any text or notes you want to include</li>
  <li><strong>Set your expiration</strong> — how many views and how many days before the data is deleted</li>
  <li><strong>Get your link</strong> — a unique, one-time URL you can send through email, Slack, Teams, or any other channel</li>
  <li><strong>Share it</strong> — your recipient clicks the link and downloads the files</li>
</ol>

<p>After the view limit or time limit is reached, the files and any associated text are deleted. Not archived somewhere. Deleted. The link goes dead, and anyone who finds it later gets nothing.</p>

<p>You can also add a <strong>passphrase</strong> so the recipient needs both the link and a separate password to access the files — useful when you’re sending something particularly sensitive.</p>

<h2 id="track-who-accessed-your-files">Track Who Accessed Your Files</h2>

<p>This is where Password Pusher goes beyond basic file sharing. Every push comes with a <strong>complete audit trail</strong>:</p>

<ul>
  <li><strong>Who</strong> opened the link — IP address and geographic location</li>
  <li><strong>When</strong> they accessed it — exact timestamp</li>
  <li><strong>How many times</strong> the link has been viewed</li>
  <li><strong>Whether it’s still active</strong> or has expired</li>
</ul>

<p>You can also turn on <strong>access notifications</strong> so you get alerted the moment someone opens your link. For compliance-sensitive workflows — legal, finance, healthcare, IT — knowing exactly when and where a file was accessed isn’t optional. It’s required.</p>

<p>And if you need to revoke access before the expiration? One click. The link dies immediately.</p>

<h2 id="why-not-just-use-dropbox-or-google-drive">Why Not Just Use Dropbox or Google Drive?</h2>

<p>Those platforms are great for ongoing collaboration. But they’re designed for files that stick around — shared folders, persistent access, version histories. That’s the opposite of what you want when sharing sensitive documents with a client or contractor.</p>

<p>When you share a file through a cloud drive:</p>

<ul>
  <li><strong>The file persists</strong> in shared folders, recent files, and backups — indefinitely</li>
  <li><strong>Access is ongoing</strong> unless you remember to revoke it</li>
  <li><strong>Recipients need accounts</strong> on the same platform</li>
  <li><strong>No audit trail</strong> for individual file access at the link level</li>
</ul>

<p>Password Pusher is built for the other use case: <strong>ad-hoc, temporary file delivery where the file should stop existing after it’s been received.</strong></p>

<p>Send a contract draft to a client. Deliver API credentials with supporting documentation. Share tax documents with your accountant. Get configuration files to a contractor. In all of these cases, the file needs to get there, the recipient needs to confirm receipt, and then the file should be gone.</p>

<h2 id="built-for-teams-and-organizations">Built for Teams and Organizations</h2>

<p>If you’re sharing files across a team, <a href="https://pwpush.com/pricing">Password Pusher Pro</a> adds the features organizations need:</p>

<ul>
  <li><strong>Custom domains</strong> — share links from your own domain instead of pwpush.com</li>
  <li><strong>White-label branding</strong> — your logo, your colors, your messaging. Recipients see your brand, not ours</li>
  <li><strong>Team dashboards</strong> — shared visibility into all pushes across your organization</li>
  <li><strong>Workspace policies</strong> — enforce expiration limits, passphrase requirements, and other security rules organization-wide</li>
  <li><strong>API and CLI</strong> — automate file distribution through your existing workflows</li>
</ul>

<p>Pro is available as a hosted service on <a href="https://pwpush.com">pwpush.com</a> — with dedicated <a href="https://eu.pwpush.com">EU</a> and <a href="https://us.pwpush.com">US</a> data regions — or as a <a href="https://pwpush.com/self-hosted-pricing">self-hosted license</a> for organizations that want files on their own infrastructure.</p>

<h2 id="getting-started">Getting Started</h2>

<p>Text and password sharing on <a href="https://pwpush.com">pwpush.com</a> is free — no account required. File sharing is available with <a href="https://pwpush.com/pricing">Premium and Pro subscriptions</a>, starting at $19/month.</p>

<p>If you’d rather self-host, the <a href="https://github.com/pglombardo/PasswordPusher">open source edition</a> includes file sharing out of the box. Deploy it on your own infrastructure and start sharing files immediately.</p>

<p>The platform has been in production for over fourteen years — AES-256 encryption, more than 100 million secrets shared, and a fully auditable open source codebase. No portal. No enterprise contract.</p>

<hr />

<p><em>Peter Giacomo Lombardo</em>
<em>Founder &amp; Principal, <a href="https://apnotic.com">Apnotic</a> · Creators of <a href="https://pwpush.com">Password Pusher</a></em></p>]]></content><author><name>pglombardo</name></author><category term="Guides" /><category term="file-sharing" /><category term="secure-sharing" /><category term="audit-trail" /><summary type="html"><![CDATA[You don't need a portal or an enterprise contract to share files securely. Upload a file, get a self-destructing link, track who accessed it.]]></summary></entry><entry><title type="html">The Best Way to Securely Share Passwords (And Why Most People Get It Wrong)</title><link href="https://docs.pwpush.com/posts/2026-06-05-The-Best-Way-to-Securely-Share-Passwords/" rel="alternate" type="text/html" title="The Best Way to Securely Share Passwords (And Why Most People Get It Wrong)" /><published>2026-06-05T00:00:00-04:00</published><updated>2026-06-05T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/The-Best-Way-to-Securely-Share-Passwords</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-06-05-The-Best-Way-to-Securely-Share-Passwords/"><![CDATA[<p>Everybody needs to share a password at some point. A Wi-Fi credential for a guest. A staging server login for a contractor. API keys for a new team member. Database credentials for an auditor.</p>

<p>And almost everybody does it the same way: paste it into an email, drop it in Slack, or text it.</p>

<p>It works. Until it doesn’t.</p>

<!-- more -->

<h2 id="the-problem-with-how-we-share-passwords">The Problem With How We Share Passwords</h2>

<p>When you send a password through email or a messaging app, that credential now lives in multiple places indefinitely — your sent folder, their inbox, the messaging server’s database, backups, email archives, possibly synced to multiple devices. That one password has gone from existing in one place to potentially dozens.</p>

<p>This isn’t a theoretical risk. Credential exposure through persistent messages is one of the top vectors in data breaches. An old Slack DM from 2023 containing a database password is just as dangerous in 2026 if that password hasn’t been rotated — and let’s be honest, it probably hasn’t been.</p>

<p>The best way to securely share passwords is to make sure they don’t persist after they’ve been received.</p>

<h2 id="one-time-links-the-simple-answer">One-Time Links: The Simple Answer</h2>

<p>The concept is straightforward: instead of sending the password directly, you generate a link that contains the password. The recipient clicks the link, sees the password, and the link self-destructs. Gone. No copies lingering in inboxes or message histories.</p>

<p>This is the best way to send passwords whether you’re sharing them with colleagues, clients, or anyone else — because the credential simply stops existing after it’s been read.</p>

<p>What makes this better than the alternatives:</p>

<ul>
  <li><strong>No persistence.</strong> The password doesn’t live in email archives, chat logs, or backup tapes.</li>
  <li><strong>No account required.</strong> The recipient doesn’t need to install anything or create an account. They click a link.</li>
  <li><strong>Audit trail.</strong> You can see when the link was opened, how many times, and whether it expired unused.</li>
  <li><strong>Works everywhere.</strong> Send the link through whatever channel you already use — email, Slack, Teams, text. The channel is just the delivery mechanism. The credential itself is behind the one-time link.</li>
</ul>

<p>This last point matters a lot when you’re sharing passwords with clients. Your client doesn’t want to install your company’s password manager. They don’t want to create an account on a tool they’ll use once. They want to click a link and get the credential. Done.</p>

<h2 id="how-password-pusher-works">How Password Pusher Works</h2>

<p><a href="https://pwpush.com">Password Pusher</a> is built specifically for this. Here’s the workflow:</p>

<ol>
  <li>Go to <a href="https://pwpush.com">pwpush.com</a></li>
  <li>Paste your password or secret</li>
  <li>Set how many views and how many days before it expires</li>
  <li>Click “Push it!” — you get a unique link</li>
  <li>Send that link to your recipient</li>
</ol>

<p>That’s it. When they open the link, they see the password. After the view limit or time limit is reached, the data is deleted. Not archived. Deleted.</p>

<p>A few things that matter in practice:</p>

<p><strong>Retrieval step.</strong> When you send a link via Slack, Teams, or iMessage, URL preview bots will automatically fetch the link before the recipient even sees it. If the tool counts that fetch as a “view,” the secret might already be gone. Password Pusher includes a one-click retrieval step that stops bots from burning your links.</p>

<p><strong>Passphrase protection.</strong> For particularly sensitive credentials, you can add a passphrase. The recipient needs both the link and the passphrase to see the content — a clean two-factor delivery.</p>

<p><strong>Auto-dispatch.</strong> If you’d rather not deal with sending the link yourself, Password Pusher can <a href="https://pwpush.com/features">email it directly to the recipient</a> on your behalf.</p>

<h2 id="why-345000-people-use-it-every-month">Why 345,000+ People Use It Every Month</h2>

<p>Password Pusher has been in production since 2011. Over fourteen years. That’s a long time for a security tool — and longevity matters when you’re trusting something with credentials.</p>

<p>The core application is <a href="https://github.com/pglombardo/PasswordPusher">fully open source</a> on GitHub. Every line of the security-critical code — the encryption (AES-GCM 256-bit), the data handling, the expiry logic, the audit logging — is auditable by anyone. Over 100 million secrets have been shared through the platform.</p>

<p>You can use it for free at <a href="https://pwpush.com">pwpush.com</a> with no account required. Or you can <a href="https://pwpush.com/self-hosted-pricing">self-host it</a> on your own infrastructure if you prefer to keep everything in-house.</p>

<h2 id="apnotic-and-pro-subscriptions">Apnotic and Pro Subscriptions</h2>

<p>In 2024, I founded <a href="https://apnotic.com">Apnotic, LLC</a> to put a proper company behind Password Pusher. The project had grown well beyond a side project, and it needed the support structure to match.</p>

<p><a href="https://pwpush.com/pricing">Password Pusher Pro</a> is the subscription tier for teams and organizations. It adds team collaboration, custom domains, white-label branding, file sharing, and workspace-level policies — the features that matter when you’re using Password Pusher across a team rather than individually.</p>

<p>Pro is available both as a hosted service on <a href="https://pwpush.com">pwpush.com</a> — with dedicated <a href="https://eu.pwpush.com">EU</a> and <a href="https://us.pwpush.com">US</a> data regions — and as a <a href="https://pwpush.com/self-hosted-pricing">self-hosted license</a> for organizations that need credentials on their own infrastructure.</p>

<p>The free tier isn’t going anywhere. It’s the foundation of the project and always will be. Pro is for the organizations that need more.</p>

<hr />

<p><em>Peter Giacomo Lombardo — <a href="https://apnotic.com">Apnotic, LLC</a></em></p>]]></content><author><name>pglombardo</name></author><category term="Guides" /><category term="secure-sharing" /><category term="passwords" /><category term="best-practices" /><summary type="html"><![CDATA[Most people share passwords through email, Slack, or text messages. Here's why that's a problem and how one-time links solve it.]]></summary></entry><entry><title type="html">What Is a One-Time Password Link (And How to Create One)</title><link href="https://docs.pwpush.com/posts/2026-06-05-What-Is-a-One-Time-Password-Link/" rel="alternate" type="text/html" title="What Is a One-Time Password Link (And How to Create One)" /><published>2026-06-05T00:00:00-04:00</published><updated>2026-06-05T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/What-Is-a-One-Time-Password-Link</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-06-05-What-Is-a-One-Time-Password-Link/"><![CDATA[<p>A one-time password link is a URL that contains a password or secret. The recipient opens the link, sees the credential, and the link self-destructs. Anyone who tries to use the link afterward gets nothing — the data has been deleted.</p>

<p>It’s the simplest way to share a password without leaving it sitting in an inbox, a chat log, or a shared document forever.</p>

<!-- more -->

<h2 id="how-one-time-password-links-work">How One-Time Password Links Work</h2>

<p>The concept has three parts:</p>

<ol>
  <li><strong>You create the link.</strong> Paste your password into a tool that generates a unique URL. You set how many times the link can be viewed and how long it should stay active.</li>
  <li><strong>You send the link.</strong> Through email, Slack, Teams, text — whatever channel you’d normally use. The password isn’t in the message. Just the link.</li>
  <li><strong>The link self-destructs.</strong> After the recipient views it — or after the time limit expires — the data behind the link is deleted. The URL goes dead permanently.</li>
</ol>

<p>The key difference from sending a password directly: the credential doesn’t persist. An email with a password in it is searchable, forwardable, and backed up indefinitely. An email with a one-time link in it becomes worthless the moment the link expires.</p>

<h2 id="why-use-a-one-time-link-instead-of-sending-the-password-directly">Why Use a One-Time Link Instead of Sending the Password Directly</h2>

<p>Every time you paste a credential into an email or chat message, that credential now exists in multiple places you don’t control — sent folders, recipient inboxes, message server databases, cloud backups, synced devices. One credential, potentially dozens of copies.</p>

<p>A one-time password link changes the equation:</p>

<ul>
  <li><strong>The password lives in one place</strong> — behind the link — until it’s viewed or expires</li>
  <li><strong>You control the lifecycle</strong> — set view limits (1 view, 5 views, whatever you need) and a time window (hours, days, or weeks)</li>
  <li><strong>You get an audit trail</strong> — know when the link was opened, from where, and how many times</li>
  <li><strong>The recipient doesn’t need an account</strong> — they click a link, that’s it</li>
  <li><strong>You can revoke it early</strong> — if you sent the link to the wrong person, kill it before they open it</li>
</ul>

<p>This works equally well for sharing credentials with colleagues, sending temporary passwords to clients, or distributing API keys to contractors. The recipient gets what they need. The credential doesn’t outlive its purpose.</p>

<h2 id="how-to-create-a-one-time-password-link">How to Create a One-Time Password Link</h2>

<p><a href="https://pwpush.com">Password Pusher</a> has been doing this since 2011. Here’s the workflow:</p>

<ol>
  <li>Go to <a href="https://pwpush.com">pwpush.com</a> — no account required</li>
  <li>Paste your password, API key, or any text you need to share</li>
  <li>Set your <strong>view limit</strong> (how many times the link can be opened) and <strong>expiration</strong> (how many days or hours before it’s deleted regardless)</li>
  <li>Optionally add a <strong>passphrase</strong> — the recipient will need both the link and the passphrase to see the content</li>
  <li>Click <strong>“Push it!”</strong> and copy the generated link</li>
  <li>Send the link to your recipient however you want</li>
</ol>

<p>When they open the link, they see the credential. After the view limit or time limit is reached, the data is permanently deleted.</p>

<h2 id="what-about-url-preview-bots">What About URL Preview Bots?</h2>

<p>This is a real problem that most one-time sharing tools ignore. When you send a link through Slack, Microsoft Teams, or iMessage, those platforms automatically fetch the URL to generate a preview. If the tool counts that fetch as a “view,” the password might be consumed before the recipient ever sees it.</p>

<p>Password Pusher handles this with a <strong>one-click retrieval step</strong>. When someone opens a push link, they see a landing page first — they have to click a button to reveal the content. Bots don’t click buttons. The recipient does.</p>

<h2 id="temporary-passwords-and-short-lived-credentials">Temporary Passwords and Short-Lived Credentials</h2>

<p>One-time password links are especially useful for temporary passwords — credentials that only need to exist long enough to get someone logged in.</p>

<p>Common use cases:</p>

<ul>
  <li><strong>New employee onboarding</strong> — send initial login credentials that expire after first use</li>
  <li><strong>Client handoffs</strong> — share staging server access or admin passwords for a project deliverable</li>
  <li><strong>IT support</strong> — distribute temporary passwords for password resets</li>
  <li><strong>Vendor access</strong> — give a contractor credentials for a specific system, knowing the link dies after they’ve used it</li>
</ul>

<p>Set the view limit to 1 and the expiration to 24 hours, and you’ve created a credential that quite literally cannot persist beyond its intended purpose.</p>

<h2 id="beyond-text--files-urls-and-more">Beyond Text — Files, URLs, and More</h2>

<p>Password Pusher isn’t limited to text passwords. You can attach <strong>files</strong> alongside your push — share a credential document, a configuration file, or an SSH key, all behind the same self-destructing link. You can also push <strong>URLs</strong> and <strong>QR codes</strong> with the same expiration controls.</p>

<p>File sharing requires a <a href="https://pwpush.com/pricing">Premium or Pro subscription</a> on the hosted service. If you self-host the <a href="https://github.com/pglombardo/PasswordPusher">open source edition</a>, file sharing is included out of the box.</p>

<h2 id="open-source-and-fourteen-years-in-production">Open Source and Fourteen Years in Production</h2>

<p>Password Pusher has been running since 2011. The security-critical code — AES-256 encryption, data handling, expiry logic, audit logging — is <a href="https://github.com/pglombardo/PasswordPusher">fully open source</a> and auditable on GitHub. Over 100 million secrets shared to date.</p>

<p>The free tier on <a href="https://pwpush.com">pwpush.com</a> handles one-time password links with no account required. <a href="https://pwpush.com/pricing">Pro subscriptions</a> add team collaboration, custom domains, white-label branding, and workspace policies for organizations. Available hosted — with dedicated <a href="https://eu.pwpush.com">EU</a> and <a href="https://us.pwpush.com">US</a> data regions — or <a href="https://pwpush.com/self-hosted-pricing">self-hosted</a> on your own infrastructure.</p>

<hr />

<p><em>Peter Giacomo Lombardo</em>
<em>Founder &amp; Principal, <a href="https://apnotic.com">Apnotic</a> · Creators of <a href="https://pwpush.com">Password Pusher</a></em></p>]]></content><author><name>pglombardo</name></author><category term="Guides" /><category term="one-time-link" /><category term="secure-sharing" /><category term="temporary-password" /><summary type="html"><![CDATA[A one-time password link is a URL that lets you share a credential once and then self-destructs. Here's how they work and how to create one in seconds.]]></summary></entry><entry><title type="html">Password Pusher for MSPs</title><link href="https://docs.pwpush.com/posts/2026-05-17-password-pusher-for-msps/" rel="alternate" type="text/html" title="Password Pusher for MSPs" /><published>2026-05-17T00:00:00-04:00</published><updated>2026-05-17T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/password-pusher-for-msps</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-05-17-password-pusher-for-msps/"><![CDATA[<h1 id="password-pusher-for-msps">Password Pusher for MSPs</h1>

<p>For a while now, we’ve been noticing something in our traffic data: a lot of managed service providers already use Password Pusher.</p>

<p>Referral traffic from ConnectWise, Kaseya, IT Glue, Atlassian — MSP tools are consistently some of our top traffic sources. It makes sense. If you’re an MSP handing off WiFi passwords, admin credentials, or license keys to clients every day, you need a way to do that without leaving those credentials sitting permanently in a ticket history or email thread.</p>

<p>What we hadn’t done is acknowledge that directly on the site. Until now.</p>

<h2 id="whats-new">What’s New</h2>

<p>We’ve launched a dedicated <a href="https://eu.pwpush.com/msp">MSP page</a> that speaks directly to how managed service providers use Password Pusher — the workflow, the compliance angle, and the specific features that matter most for credential delivery at scale.</p>

<p>We’ve also built out a <a href="/https://eu.pwpush.com/partners">Partner Program</a> for MSPs and IT services companies who want to resell Password Pusher Pro self-hosted licenses to their clients.</p>

<h2 id="the-partner-program">The Partner Program</h2>

<p>The mechanics are straightforward:</p>

<ul>
  <li><strong>Volume discounts</strong> from 30% to 50% off self-hosted Pro licenses, based on your lifetime license count. Your discount tier never goes down.</li>
  <li><strong>Free NFR license</strong> — one free Advanced-tier license for your own internal use, granted automatically when you’re accepted as a partner.</li>
  <li><strong>Automatic discount application</strong> — no special codes or manual processes. Your discount is applied at checkout based on your tier.</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Licenses Sold</th>
      <th>Your Discount</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0–9</td>
      <td>30%</td>
    </tr>
    <tr>
      <td>10+</td>
      <td>35%</td>
    </tr>
    <tr>
      <td>25+</td>
      <td>40%</td>
    </tr>
    <tr>
      <td>50+</td>
      <td>45%</td>
    </tr>
    <tr>
      <td>100+</td>
      <td>50%</td>
    </tr>
  </tbody>
</table>

<p>The idea is simple: use Password Pusher internally, know it works, and offer it to your clients with margins that make sense for your business.</p>

<h2 id="why-this-matters-for-msps">Why This Matters for MSPs</h2>

<p>The credential sharing problem in the MSP world is well understood. Passwords end up in PSA ticket notes, email threads, Slack messages — places where they persist indefinitely and are searchable by anyone with access.</p>

<p>Beyond the obvious security risk, there’s a growing compliance angle. Cyber insurance underwriters are increasingly asking MSPs about per-client credential isolation and documented delivery processes. Having an audit trail that shows a credential was delivered via an expiring link, viewed once, and automatically destroyed is exactly the kind of evidence that satisfies those questions.</p>

<p>Password Pusher handles this with self-destructing links, full lifecycle audit logging, optional passphrase protection, and one-click retrieval to prevent URL scanners from consuming views. For MSPs doing volume, <a href="/features">Auto-Dispatch</a> emails the secure link directly to the client — no copy-paste required.</p>

<p>And for MSPs with strict compliance requirements, the <a href="https://eu.pwpush.com/self-hosted-pricing">self-hosted option</a> puts everything inside your own infrastructure. Your SOC 2, your controls, your data.</p>

<h2 id="getting-started">Getting Started</h2>

<p>If you’re an MSP already using Password Pusher, the <a href="https://eu.pwpush.com/partners">Partner Program</a> is worth a look — especially if you’re deploying self-hosted instances for clients.</p>

<p>If you’re new to Password Pusher, the free tier on <a href="https://pwpush.com">pwpush.com</a> is the fastest way to try it. No credit card, no signup required for basic pushes.</p>

<p>Either way, the new <a href="https://eu.pwpush.com/msp">MSP page</a> has the full picture of how it all fits together for managed service providers.</p>

<hr />

<p><em>Peter Giacomo Lombardo — <a href="https://apnotic.com">Apnotic, LLC</a></em></p>]]></content><author><name>pglombardo</name></author><category term="Features" /><category term="msp" /><category term="partner-program" /><category term="secure-sharing" /><summary type="html"><![CDATA[A new MSP-focused landing page and partner program for managed service providers who use Password Pusher for client credential delivery.]]></summary></entry><entry><title type="html">Looking for Bitwarden Send Alternatives? Here’s What to Know in 2026</title><link href="https://docs.pwpush.com/posts/2026-05-17-Looking-For-Bitwarden-Send-Alternatives/" rel="alternate" type="text/html" title="Looking for Bitwarden Send Alternatives? Here’s What to Know in 2026" /><published>2026-05-16T00:00:00-04:00</published><updated>2026-05-16T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/Looking-For-Bitwarden-Send-Alternatives</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-05-17-Looking-For-Bitwarden-Send-Alternatives/"><![CDATA[<p>In January 2026, Bitwarden nearly doubled the price of their Premium plan — from $10/year to $19.80/year. A 98% increase.</p>

<p>The communication around it wasn’t great either. <a href="https://www.fastcompany.com/91483458/bitwarden-price-increase">Fast Company covered the backlash</a>, specifically calling out the “$1.65/month billed annually” framing when there’s no monthly billing option. That’s the kind of pricing trick that erodes trust, especially from a company that built its reputation on transparency.</p>

<p>Since then, I’ve watched a steady stream of people looking for Bitwarden Send alternatives. Which makes sense — if you were using Bitwarden primarily for Send (their secure sharing feature), a 98% price increase on what was already a secondary feature is a reasonable reason to look around.</p>

<p>I built <a href="https://pwpush.com">Password Pusher</a>, so I’m obviously not a neutral party here. But I’ve been building secure sharing tools since 2011 and I think I can offer some useful perspective on what to actually evaluate — regardless of where you end up.</p>

<!-- more -->

<h2 id="the-price-hike-isnt-really-the-problem">The Price Hike Isn’t Really the Problem</h2>

<p>Look, $20/year is still cheap software. If Bitwarden Send did everything you needed, the price increase alone probably wouldn’t be worth switching over.</p>

<p>The real question the price hike forces is: <em>should you be paying for an entire password manager just to share secrets?</em></p>

<p>Bitwarden is a solid password manager. But Send is a feature inside that password manager — not a standalone product. Its roadmap, its priorities, its development resources are all driven by the password management use case. Sharing is secondary.</p>

<p>That’s not a knock on Bitwarden. It’s just the reality of how product development works. When you need a screwdriver, buying a whole toolbox works — but you’re paying for a lot of tools you don’t need.</p>

<p>And the price hike is part of a broader pattern that has the community paying attention. New CEO with private equity experience. “Always free” quietly removed from the website. Company values like “Transparency” and “Inclusion” scrubbed. People in the Bitwarden subreddit are drawing direct comparisons to the LastPass trajectory, and I can’t say those concerns are unfounded.</p>

<h2 id="what-actually-matters-in-a-secure-sharing-tool">What Actually Matters in a Secure Sharing Tool</h2>

<p>If you’re evaluating alternatives, here’s what I’d focus on:</p>

<p><strong>Does it require an account to send?</strong> Most people sharing a secret need to do it right now. If the tool requires signup and login before you can share anything, that’s friction at exactly the wrong moment. Bitwarden Send requires a Bitwarden account. Some alternatives don’t.</p>

<p><strong>What’s the expiry model?</strong> You want granular control over both view limits and time limits. Bitwarden Send caps at 31 days maximum. Some tools go longer. For most use cases, the more control you have over the lifecycle of a shared secret, the better.</p>

<p><strong>Is there an audit trail?</strong> If you’re sharing credentials in a business context, you need to know: was this link opened? When? How many times? Bitwarden restricts audit logging to their Teams and Enterprise plans. For a tool focused on secure distribution, per-item audit logging should be the baseline — not a premium upsell.</p>

<p><strong>Can it be self-hosted?</strong> If you’re in a regulated industry or just prefer to keep secrets on your own infrastructure, self-hosting matters. Both Bitwarden and some alternatives offer this — but the depth of self-hosted features varies widely.</p>

<p><strong>Does it handle URL preview bots?</strong> This one gets overlooked. When you send a link via Slack, Teams, or iMessage, URL preview bots fetch that link before the recipient ever sees it. If the tool counts that bot fetch as a “view,” your recipient might find the secret already expired. A good sharing tool has a retrieval step or other mechanism to prevent this.</p>

<h2 id="where-password-pusher-fits">Where Password Pusher Fits</h2>

<p>Password Pusher is purpose-built for exactly this use case — secure, temporary sharing of sensitive information. It’s been in production since 2011, it’s <a href="https://github.com/pglombardo/PasswordPusher">fully open source</a>, and it’s handled over 100 million secrets to date.</p>

<p>No account required to send. Per-push audit logging on every tier. View limits, time limits, passphrase protection, and a one-click retrieval step that prevents bots from burning your links. Self-hosted or SaaS with dedicated <a href="https://eu.pwpush.com">EU</a> and <a href="https://us.pwpush.com">US</a> data regions.</p>

<p>I wrote a detailed comparison page that puts Password Pusher and Bitwarden Send side by side — feature for feature — including the areas where Bitwarden is genuinely stronger (like their end-to-end encryption model). I’d encourage you to take a look:</p>

<p><strong><a href="https://pwpush.com/compare/bitwarden-send">Password Pusher vs. Bitwarden Send — Full Comparison →</a></strong></p>

<h2 id="one-more-thing">One More Thing</h2>

<p>Price hikes have a way of forcing useful conversations. If the Bitwarden increase made you actually evaluate what you need from a sharing tool, that’s a good outcome regardless of what you choose.</p>

<p>My hope is that this post helps a few people make a more informed decision. There are several solid options out there. Password Pusher is one of them, and it’s the one I’ve spent the last 14+ years building to be the best at this specific job.</p>

<hr />

<p><em>Peter Giacomo Lombardo</em>
<em>Founder &amp; Principal, <a href="https://apnotic.com">Apnotic</a> · Creators of <a href="https://pwpush.com">Password Pusher</a></em></p>]]></content><author><name>pglombardo</name></author><category term="Comparisons" /><category term="bitwarden" /><category term="alternatives" /><category term="secure-sharing" /><summary type="html"><![CDATA[Bitwarden doubled their prices in January 2026. If you're evaluating Bitwarden Send alternatives, here's what actually matters when choosing a secure sharing tool.]]></summary></entry><entry><title type="html">A Text Input, Some Encryption, and a Submit Button</title><link href="https://docs.pwpush.com/posts/2026-05-02-A-Text-Input-Some-Encryption-and-a-Submit-Button/" rel="alternate" type="text/html" title="A Text Input, Some Encryption, and a Submit Button" /><published>2026-05-02T00:00:00-04:00</published><updated>2026-05-02T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/A-Text-Input-Some-Encryption-and-a-Submit-Button</id><content type="html" xml:base="https://docs.pwpush.com/posts/2026-05-02-A-Text-Input-Some-Encryption-and-a-Submit-Button/"><![CDATA[<p>In 2011, I built something that took about a weekend.</p>

<p>A text input. Some encryption. A submit button. That was it. I pushed it to production, open-sourced the code, and went back to my day job. I didn’t think about it much after that.</p>

<p>But someone used it. And then someone else did. And then a few more.</p>

<p><img src="/assets/images/posts/2026/pwpush-2017.png" alt="The original Password Pusher UI" /></p>

<p>“Go Ahead. Email Another Password.” That was the tagline. That was the whole pitch. The product was barely a product — it was a reaction to a problem that annoyed me. People were emailing passwords in plain text. So I built the smallest thing that could fix that.</p>

<p>Then a strange thing started happening.</p>

<p><img src="/assets/images/posts/2026/pwpush-analytics-2012.png" alt="Password Pusher traffic from 2012 to 2017" /></p>

<p>See that flat line from 2012 to 2014? That’s three years of almost nothing. Then a slow curve upward. Not fast. Not in any way that would make a headline. Just — every month, a little more. More Docker pulls. More people I’d never heard of, at companies I’d never heard of, quietly using this thing I built on a weekend.</p>

<p>Year after year. I’d add a feature. Fix a bug. Add another feature. The backlog grew. Feature requests started waiting six months. Then a year. Then longer.</p>

<p>And at some point — I don’t remember the exact moment — but sometime in late 2023-2024 I had to make a decision.</p>

<p>Option one: keep the pace. Hobby project. A few features a year. Nothing wrong with that.</p>

<p>Option two: find a way to make this thing self-sufficient. Work on it properly. But on my terms.</p>

<p>I went with option two.</p>

<p>Now here’s the part where most founders say they raised a round. Pitched VCs. Built a deck. Got a term sheet.</p>

<p>I didn’t do any of that.</p>

<p>Instead, I built a feature pipeline. Premium features for subscribers, with those features rolling into the open-source version over time. Customers fund development. Development benefits everyone. No investors, no debt, no one to answer to except the people using the product.</p>

<p>That became <a href="https://apnotic.com">Apnotic</a>.</p>

<p>And today — fourteen years after that weekend — we have 345K monthly active users. 50M+ Docker downloads. Over 100 million secrets shared. 400 paying customers. Healthy recurring revenue. A team of two, an advisor, and fourteen years of work that I genuinely enjoy showing up to every day.</p>

<p>All from a text input. Some encryption. And a submit button.</p>]]></content><author><name>Peter Giacomo Lombardo</name></author><category term="Company" /><category term="apnotic" /><category term="open-source" /><category term="bootstrapped" /><category term="password-pusher" /><category term="apnotic" /><summary type="html"><![CDATA[In 2011, I built something that took about a weekend.]]></summary></entry></feed>