FUCK IT! I'm spilling the sauce.
Here's how to build an AI digital asset empire, even if indie hackers clone your product left, right and center. 👇 https://t.co/lnbmtIu7mK
@mfishbein Too big to get Spoon'd. However, I bet that Anthropic are secretly working on replacing CRM's despite having Salesforce as Investors. Rough times ahead for expensive SaaS products.
I refused to pay the per-seat and AI credit BS tax.
So I built ACA. And now it's open source.
It runs on @OpenRouter
Bring your own API key, choose your own models, and stop paying for someone else's AI credit markup. https://t.co/7J0fhY2V6G
I have opened sourced Instantly, Heyreach and Gojiberry all in one go, now I am sharing the playbook that gets replies.
Our cold email playbook: the deliverability, offer and tracking rules we learned by breaking things first
We send cold email at volume for our own agency and for clients. Most of what we know came from breaking something first. This is the full playbook, no fluff. Steal all of it.
TL;DR: volume comes from breadth, never from pushing one inbox harder. Most "deliverability problems" are really list, offer or tracking problems.
INFRASTRUCTURE: PICK YOUR MODEL, THEN RESPECT ITS NUMBERS
There are two sending models. Mixing their numbers is how people burn domains.
Model A, standard mailboxes (Google Workspace, properly licensed Microsoft 365):
- 2 mailboxes per domain
- 30 sends per inbox per day
- = 60 a day per domain
Model B, bulk-provisioned Microsoft 365 tenants:
- 50 mailboxes per domain
- 5 sends per inbox per day
- 1 domain = 1 tenant. Never put a second sending domain in a tenant.
- = 250 a day per tenant
A bulk mailbox can't carry Workspace volume. Sending 30 a day from each one is the classic way to kill them.
Minimum 30 domains for any serious setup. If you need more volume, add domains and inboxes. Never raise the per-inbox numbers
2. WARMUP IS PART OF YOUR CAP, NOT ON TOP OF IT
If an inbox can send 5 a day, warmup lives inside those 5. We give warmup 20% of the daily cap (minimum 1), and it stops entirely once real emails have used the allowance.
We learned this the expensive way: warmup and real sends were separate budgets, so some inboxes were warming at 167% of what they were allowed to send for real.
3. ROTATE ACROSS DOMAINS, DON'T FILL THEM ONE BY ONE
Spread sends round-robin across all your healthy domains. Filling domain 1, then domain 2, then domain 3 concentrates volume, and concentration is what burned our first batch.
Also: don't pin a campaign to a fixed list of inboxes. Pinned pools decay as inboxes disconnect or domains get blocked, and one day your campaign silently sends nothing. Pick inboxes at send time from whatever is healthy right now.
4. KNOW THE DIFFERENCE BETWEEN A BOUNCE AND A BLOCK
This one cost us hundreds of good leads.
- Real bounce (address doesn't exist, account disabled, no such user): kill the lead everywhere. That address is dead.
- Reputation block (Gmail's "550-5.7.1 ... very low reputation", "envelope blocked", "rejected by security policy"): that's the receiver refusing YOUR domain. The lead is fine. Keep it.
We used to log reputation blocks as bounces. Every one permanently suppressed a perfectly good prospect from every future campaign.
And bounces describe your list, not your inbox. Don't bench an inbox for its bounce rate. Clean the list instead.
5. TEST YOUR DOMAINS FROM THE OUTSIDE
A block is per receiver. Sending a test to another inbox you own proves nothing about Gmail.
Keep a few external seed addresses (a real Gmail-hosted mailbox works) and probe each domain weekly. When a domain gets a 550, rest it for about 8 weeks, then probe it again before it goes back into rotation.
One Gmail-only block on a domain isn't a crisis. Escalate when blocks spread beyond Gmail or bounces climb.
6. LISTS: VERIFY EVERYTHING, KEEP VALID ROLE ADDRESSES
Verify before you send. But don't auto-drop info@ or office@ addresses. Local businesses often publish nothing else. If the verifier says the mailbox exists, send to it. "Role" predicts a lower reply rate, not a bounce.
7. THE OFFER BEATS THE COPY
Our best lesson from local-business outreach:
- "Free lead lists": about 1 positive reply per 1,000 sends
- "offer 2 of what they need more of (AKA appointements but in their own terms)": about 1 per 300
What works for us:
- Offer = outcome. Booked jobs, meetings, signed quotes. Not "an audit" or "a landing page."
Those go in the PS as proof.
- Guarantee in the PS: "If we work together and you don't get more calls than your current setup, you don't pay."
- Soft opener: "I think it might be leaking money" beats "it's leaking money."
- CTA: "Mind if I send it over?"
- Follow-up = value, not guilt. Email 2 is a short tip list, not "just bumping this."
- Cut every vague line. "We add ads and follow-up" means nothing. Name the concrete thing.
8. TRACKING: TURN IT OFF BY DEFAULT
Open tracking is unreliable, and click tracking is worse than useless. Every wrapped link points at a tracking domain you share across all your sending domains. When one domain gets flagged, that tracking domain gets poisoned, and it drags down placement for every clean domain that uses it.
Send the first email as plain text. Measure replies, not opens.
9. UNSUBSCRIBES: MAKE THEM WORK, MAKE THEM SAFE
- Put an unsubscribe link in every email, plus the one-click List-Unsubscribe header.
- The link should open a confirmation page, not unsubscribe on click. Corporate link scanners open every URL in incoming mail. If a plain click unsubscribes, scanners quietly opt out real prospects and you never find out why.
- Keep one suppression list across every campaign. Unsubscribed, do-not-contact and hard-bounced are never mailed again, whichever campaign or list they show up in.
10. LIFECYCLE RULES THAT STOP EMBARRASSING MISTAKES
- A real reply stops every sequence for that person, not just the one they replied to. We had a lead reply to campaign A while campaign B kept emailing him.
- Out-of-office pauses, it doesn't stop.
- One active sequence per lead. Overlapping campaigns double-contact people.
11. MEASURE IT AS A FUNNEL
- Reply rate = replies / delivered leads
- Positive rate = positive replies / replies
- Meeting rate = meetings / positive replies
Out-of-office and auto-replies are not replies. Count them separately. And don't crown a winning campaign until it has at least 5 replies and 3 positives. 1 out of 1 is not a 100% positive rate.
The classic!
I would like to give a big shout out to everyone who took on cold emailing clients couldn't deliver and made it much more difficult for everyone else. 🤬
@paulflourens J'ai eu ça aussi, les mecs se faisaient passer pour moi et prospectaient en vendant leur propres produits.
Le modèle free community to paid était super bien, les spammeurs l'ont tué.
I have pretty much the same feeling.
I have huge respect for those guys and what they've achieved. They fueled my motivation to get where I am now.
However, I don't find their posts as useful anymore, at least for me, and it feels like it's not the type of content I'd like to see in my feed that often.
Maybe it's because I expect the same kind of content from them as what I share with others.
I guess this is just another business stream, and it has every right to exist.
But for me, it's going in a completely different direction from the one I'm following.
@gregisenberg Number 1 rule, never trust the yappers.
They are under pressure to come up with supposetly interestering content and try to make it go viral by definition.
Sometimes they come up with something good, often they are just stealing your time/attention.