sniper-link
v0.0.6
Published
Create sniper-links to deep link users to emails
Downloads
127
Readme
sniper-link (under development)
What is a sniper link? Let growth.design explain:
A Sniper Link is a special link that makes it easier for new users to confirm their email after a signup. It typically simulates an inbox search, which minimizes distractions while leading users to the inbox of their email service provider detected on signup.
With Sniper Links, your new users will only see YOUR confirmation email in their inbox, nothing else. It works even if you landed in their spam.
This onboarding technique was coined by Dan Benoni in 2019.
Feature Support Table
| | Gmail | Outlook | Yahoo | Proton | iCloud | | ------------------ | ----- | ------- | ----- | ------ | ------ | | Account scope | ✅ | ✅ | | | | | From filter | ✅ | | ✅ | ✅ | | | Spam piercer | ✅ | | ✅ | ✅ | | | Time frame (days) | ✅ | | ✅ | ✅ | | | Time frame (hours) | ✅ | | | ✅ | |
Legend:
- ✅ = Supported by this provider and the script
- *️⃣ = Supported by the provider, but not by the script as yet
Installation
Using the node package manager of your choice, either
yarn add sniper-link
or npm install sniper-link
Usage
Subject to change while this script is in an alpha version. Currently it builds three versions:
- A node version in
dist/node/index.js
- Web esm for React/Svelte etc
dist/web/esm.js
- Web IIFE for native and legacy js
dist/web/iife.js
Feature Support Table
| | Expects | Required? | Notes |
| ------------------ | --------------- | --------- | ----- |
| email
| String (email) | ✅ Yes | User's email inbox to search. |
| from
| String | | Sender's email address. Can be an email, or partial match. |
| forceProvider
| String ('google', 'yahoo', 'microsoft', 'proton', 'icloud') | | Optional override to skip email provider being detected from the provided string. Useful for when you already know [email protected]
is using G-Suite under the hood, possibly via a MX lookup. |
| daysAgo
| Number | | Sent within the last 'x' days |
| hoursAgo
| Number | | Sent within the last 'y' hours. See note below. |
- You cannot use a combination of
daysAgo
andhoursAgo
. IfhoursAgo
are specified, they will be used in preference. - Yes, you could use
forceProvider
to make[email protected]
to openmail.google.com
-- that's on you.
Example
A node.js example
const buildUrl = require('sniper-link/dist/node');
console.log(
buildUrl({
email: '[email protected]',
from: '@userfront.com',
daysAgo: 1,
}),
);
// Logs the following
// {
// provider: 'google',
// link: 'https://mail.google.com/mail/u/[email protected]/#search/from%3A(@userfront.com)+in%3Aanywhere'
// }
Roadmap
- Return Android and iOS links with app protocols?
- Add a subject/keyword filter (very low priority)?
- Consider more popular non-western email providers
Development
Run either npm run build
or yarn build
to output to the dist
folder
Testing
Run npm run test
or yarn test
to run tests via Jest. --watch
flag supported.
Disclaimer
I am in no way affiliated with the team at growth.design, I am merely a fan. All credit goes to Dan Benoni for the idea.