Should you build your own OutFriend?
Learns your voice from emails you have actually sent, drafts the campaign, and sends it from your inbox on a schedule
This one is closer to buildable than most outreach tools, because OutFriend sends through your own Gmail rather than its own infrastructure. That removes the moat that usually saves this category: no warmup pools, no IP reputation, no deliverability engineering you cannot replicate. What is left is a Gmail OAuth integration, a voice sample you pass to a model, a scheduler with send windows and daily caps, and the one piece that is genuinely fiddly, watching threads so a sequence stops the instant someone replies. That is a weekend if you have written against the Gmail API before, and a long weekend if you have not.
ENOriginal research content in English. Original prompt preserved in English.
Build me a local cold email sender that drafts in my voice and sends from my own Gmail, to replace OutFriend. Requirements:
- Node 22, TypeScript, SQLite via better-sqlite3, googleapis for Gmail, node-cron for the
schedule. CLI only. No accounts, no telemetry, OAuth token and API keys in .env.
- `mail auth` runs the Gmail OAuth device flow once and stores the refresh token locally.
Scopes: gmail.send, gmail.readonly.
- `mail voice` pulls my last 200 sent messages, strips quoted replies and signatures, and
saves 20 of the shortest complete ones to voice.md as the style reference.
- leads.csv holds email, first name, company and one context column. `mail draft` writes
one email per row using voice.md plus the context column, saves each as status=draft,
and refuses to draft for any address already in suppression.txt.
- `mail review` prints drafts one at a time in the terminal and takes approve, edit or
skip. Nothing sends without an approve. This gate is not optional.
- `mail send` delivers approved drafts through the Gmail API inside a send window from
config.json, with a daily cap and a random 30 to 180 second gap between sends.
- Every 30 minutes, `mail watch` polls threads for inbound messages. Any reply sets the
lead to replied and cancels its remaining follow-ups. Treat an auto-reply as a stop
too, and never as interest.
- Follow-ups are two fixed templates at day 4 and day 10 in the same thread, cancelled by
any reply or bounce. Parse bounce DSNs and write those addresses to suppression.txt.
- Out of scope: lead sourcing, email verification, inbox warmup, and sending from any
address that is not my own connected Gmail.
- README: OAuth setup, the send window config, and a plain warning to read CAN-SPAM and
GDPR before the first campaign.The prompt opens pre-filled in your agent. Review it before running.
What would building your own look like?
Pass a sample of your sent mail to a model as voice reference, draft one email per CSV row, queue them through the Gmail API on a throttle, and halt the follow-ups on any reply.
What you will need
- a Google Cloud project with Gmail API access and OAuth consent configured
- an OpenAI or Anthropic API key
- a leads CSV you sourced yourself
- a scheduler that survives your laptop sleeping
- your own read of CAN-SPAM and GDPR before you send anything
Because the failure modes are expensive and quiet. A homemade sender that misses a reply and fires the follow-up anyway does not throw an error, it just makes you look careless to the exact person who answered. Same for a bounced address you never suppressed, or an out-of-office you read as engagement. OutFriend is mostly selling the correctness of the stop conditions and a place to read every draft before it leaves. Sending from your own Gmail is the honest part of the pitch, and also the reason a personal build gets closer here than in the rest of this category.
xreply detection that is thread-based rather than naive, so out-of-office replies do not count as interest and a reply from a different address still stops the sequence
xverification and suppression, meaning unverified, bounced and opted-out addresses filtered before anything queues
xa review surface where every draft is readable and editable before it goes, instead of trusting a script with your inbox
xlead generation, which the paid tiers include and your CSV does not
xthe Google OAuth verification process, which you will meet the moment you want this on more than your own account
Prefer something ready-made?
License, setup, and limitations for each alternative.
How much does OutFriend cost?
- Monthly billing
- $29/mo$29/mo · per person
- Per year
- $348/yr$348/yr
- On a Brazilian card, with 3.5% IOF
- R$152/moR$1,819/yr
Saved to My list. You will see a notice on this site when the price changes.
You complete the purchase on OutFriend’s site. Vibe Radar does not handle payments.
pro$29/mo · monthly per user · $348/yr
Free tierA permanent free plan with no card and no trial clock: 1 campaign, CSV upload, emails generated in your voice, intro emails only.
verified 2026-10-20 · source ↗
Is it cheaper to build or buy OutFriend?
Adjust the numbers: hours to build, your hourly rate, running costs and the subscription price.
Over 24 months, subscribing is cheaper.
Starting hours estimated from the analysis (multi-day). Does not price what you give up (support, integrations, security).
Is OutFriend free?
A permanent free plan with no card and no trial clock: 1 campaign, CSV upload, emails generated in your voice, intro emails only. The paid plan is Pro at $29/mo (checked 10/20/2026).
Can I rebuild OutFriend?
Kinda. The core of OutFriend is buildable in a weekend with the prompt on this page, but there are real gaps: reply detection that is thread-based rather than naive, so out-of-office replies do not count as interest and a reply from a different address still stops the sequence, verification and suppression, meaning unverified, bounced and opted-out addresses filtered before anything queues. Read the honest list above before committing.
How much does OutFriend cost?
OutFriend costs about $29/mo (Pro, checked 10/20/2026), which is $348 per year.
What do I lose by replacing OutFriend?
Honestly: reply detection that is thread-based rather than naive, so out-of-office replies do not count as interest and a reply from a different address still stops the sequence; verification and suppression, meaning unverified, bounced and opted-out addresses filtered before anything queues; a review surface where every draft is readable and editable before it goes, instead of trusting a script with your inbox; lead generation, which the paid tiers include and your CSV does not; the Google OAuth verification process, which you will meet the moment you want this on more than your own account. If any of those are load-bearing for you, keep paying.
Is there an open-source alternative to OutFriend?
Yes: Mautic (Runs the campaign, the throttling and the stop-on-reply. Writing in your voice is not in the box, and neither is a light afternoon of setup.) The prompt is for when you want it exactly your way.