[verdetto][prompt curato][fonte: hiremara.com]
Posso vibecodare Mara?
// si costruisce in un weekend, ma restano buchi veri
Il primo invio è roba da un weekend: eventi di prodotto, bozza scritta da un LLM, API di invio, coda di approvazione. Quello che non esce da un prompt è tutto ciò che viene dopo, dalla reputazione del dominio alle varianti lette su invii veri, e qualcuno che al quarto mese le sta ancora tarando.
confidenza: alta
cos’è: Un marketer lifecycle AI che propone, scrive, invia e continua a riscrivere le email di benvenuto, attivazione e recupero churn di un prodotto SaaS
Indice di costruibilità · gioco editoriale
- Prezzo da 99 $ · a consumo peso: più 3
- Tempo più giorni peso: più 1
- Categoria newsletter non pesa
- Moat scala dell'infrastruttura · qualità di esecuzione peso: meno 3
- Confidenza alta peso: più 1
- Cosa perdi 5 voci peso: meno 2
- Sito hiremara.com (si apre in una nuova scheda) non pesa
Si pareggiano. È il caso in cui decide quanto ti sta antipatico l’abbonamento.
Gioco editoriale: il verdetto dice se un agente può, l’indice se conviene.
Cosa costruisci
Prendere gli eventi di prodotto, far scrivere a un LLM la prossima email del ciclo di vita con la tua voce, tenerla in attesa di approvazione e inviarla secondo una pianificazione.
cosa ti serve
- una API key Anthropic o OpenAI
- una API per l'invio email (Resend, Postmark o SES)
- un tuo sottodominio di invio con SPF/DKIM/DMARC
- una macchina sempre accesa per lo scheduler
- gli eventi di prodotto dalla tua app (webhook o database)
Segnalato da chi l'ha fatto. La divisione onesta: l'invio è roba da un weekend, il loop che continua a riscriverlo no.
Il prompt
Un weekend con un agente di coding. I buchi che restano sono qui sotto, in «cosa perdi».
Build me a self-hosted lifecycle email agent to replace Mara, for one SaaS product. Requirements:
- Node + Express + better-sqlite3 on my VPS, one SQLite file holding contacts,
events, sequences, drafts, sends, and suppressions. node-cron ticks once a minute,
no queue service.
- POST /events takes {type, email, properties} with a bearer token from .env. Every
event upserts a contact and appends a row I can read back later.
- Sequences are JSON files in ./sequences/: an entry event type, then steps with a
wait ("2d"), an intent in plain words ("nudge them to connect their first
integration"), and an optional skip-if event type. Ship two: welcome and
trial-ending.
- Each tick, find contacts due for a step, drop anyone whose skip-if event already
fired, then draft with the Anthropic API (key in .env): pass ./voice.md plus that
contact's last 20 events, get back a subject and a plain-text body.
- Drafts land as pending. A localhost-only admin page lists them with subject, body,
recipient, and the step that produced it, with Approve and Reject buttons. Nothing
sends without a click.
- Approved mail goes out through Resend or SMTP from .env, one send row per recipient
with the provider message id. Bounce and complaint webhooks write to a suppression
table checked before every send. One-click unsubscribe link in every footer, no
login.
- Cap at 2 emails per contact per 7 days across all sequences, enforced in code
before drafting.
- Out of scope: A/B variants, reply parsing, open tracking. Do not build multi-user
accounts or a visual sequence builder, this runs for one product and one operator.
- README with the deliverability homework: SPF, DKIM, and DMARC on a subdomain like
mail.example.com, a two-week warmup at low volume, and a blunt line that mail from
a cold domain lands in spam no matter how good the copy is. Prompt curato: scritto e rivisto a mano per questa app. In inglese di proposito — è la lingua in cui gli agenti di coding rendono meglio.
Cosa perdi
- la deliverability: warmup, reputazione del dominio, gestione di bounce e reclami
- il loop di miglioramento: varianti scritte, divise su invii reali, e quelle perdenti riscritte
- la gestione delle risposte: posta in arrivo classificata, risposte abbozzate, soppressioni applicate
- il tracciamento dei risultati ricollegato al testo che li ha prodotti
- la manutenzione che nessuno fa, che è poi il vero motivo per cui i programmi lifecycle marciscono
Perché pagano ancora
Le email lifecycle non sono un problema di costruzione, sono un problema di mantenimento. La versione fai-da-te funziona la settimana in cui la costruisci e poi resta ferma alla qualità che aveva la prima bozza, perché nessuno torna indietro a riscrivere l'email di attivazione che in silenzio ha smesso di funzionare. Chi fonda un'azienda paga per la parte che continua a succedere dopo la settimana del lancio: qualcosa che legge i risultati, riscrive le varianti perdenti e gestisce le risposte senza che glielo si chieda.
moat: Scala dell'infrastruttura Qualità di esecuzione cos’è un moat
deliverability/loop di iterazione/operations
Chi l’ha già costruito
Partire da qui è vibecoding lo stesso: il prompt serve quando lo vuoi esattamente a modo tuo.
- Mautic (si apre in una nuova scheda) — Open-source marketing automation with campaign builder, segments, and drip flows. Heavy, but it is the real self-hosted analog. (alive)
- Listmonk (si apre in una nuova scheda) — Open-source, single-binary mailing-list and campaign manager. Good sending substrate to build the agent on top of. (alive)
- Keila (si apre in una nuova scheda) — Self-hosted newsletter tool with an API, lighter to run than Mautic. (alive)
Sei d’accordo?
La bilancia dei voti
Ancora nessun voto: il tuo è il primo.
Nessun voto ancora — il primo pesa.