Drip's loop is simple to say: shop events (browsed, carted, bought) flow in, people land in segments, workflows wait and send emails, and orders are credited to the email that came before them. An agent can build that for one store in a weekend with Shopify webhooks, a SQLite job queue and Amazon SES. What's left is the unglamorous part: sender reputation and bounce handling, unsubscribe and consent rules, a drag-and-drop email builder, and keeping store connectors working as platforms change. A small list with three or four flows suits the build; a store that lives on email is safer paying.
Before you buildDrip has no free plan, only a 14-day trial. Check whether the free tier of another email service covers your flows before you build and run a sender yourself.
Build me a lifecycle email system for my online store to replace Drip. Requirements:
- Node.js 22 + TypeScript: Fastify and better-sqlite3 at ./data/drip.db, one process for the web server and
the workflow worker. `npm start` serves http://localhost:4600 (admin at /admin, tracking at /t/*).
- Events in: POST /events (bearer token from .env; type, email, properties) and Shopify webhooks for
checkouts/update and orders/paid, verified with the HMAC in SHOPIFY_WEBHOOK_SECRET. An event creates or
updates a person (email, tags, custom fields, subscribed flag).
- Segments: stored rules over tags, fields and events ("ordered in the last 30 days", "started checkout, no
order"), evaluated on demand with a live count in the admin.
- Workflows as JSON: trigger (event or segment entry) > wait N hours > send email > branch on opened,
clicked or ordered > add or remove a tag; a person leaves when they order. The worker polls a jobs table
every 30 seconds; jobs survive restarts and never send twice. Ship welcome, abandoned cart (1 h and
24 h) and win-back (60 days).
- Email: MJML templates in ./templates with merge tags, rendered to HTML and text, sent through Amazon SES
(`@aws-sdk/client-sesv2`) under an hourly cap. Add List-Unsubscribe and List-Unsubscribe-Post headers with
a signed one-click page; SES bounces and complaints arrive through an SNS webhook and suppress the address.
- Tracking: links rewritten through /t/c/<token>, an open pixel, and attribution: an order within 5 days of
a click credits that email.
- Admin behind ADMIN_PASSWORD (signed cookie): people list with CSV import of Drip's People export, a
segment builder, a workflow editor with dry run, broadcasts to a segment and revenue per email.
- Single store. No telemetry; the only outbound calls are SES and my store's API.
- Out of scope: SMS, onsite popups, a drag-and-drop email editor, A/B tests, multiple accounts.
- README: SES sandbox and production access, SPF, DKIM and DMARC records, a warm-up plan, and a warning that
consent law (GDPR, CAN-SPAM) is mine to follow.Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Drip.
Add a Drip importer to the email system in this folder. Requirements: - An Import page takes Drip's People CSV export (columns include email, status, created_at, tags, lifetime_value and custom fields) and shows a column mapping and a dry-run count before writing. - Rows with status unsubscribed go straight to the suppression list and are never mailed. - Tags become tags, custom fields become custom fields, lifetime_value is stored as a number, and re-importing the same file changes nothing. - Report rows skipped for a bad email address, with line numbers. - Update the README.
Extend the email system in this folder with browse events. Requirements: - Serve /t/shop.js, a snippet that sends product_viewed (product id, title, URL, image) for a visitor identified by an ?e= email parameter or a stored cookie from an earlier checkout. - Add a browse-abandonment workflow: viewed a product, no checkout within 4 hours, send one email with the product. - Add a back-in-stock list: a form on a product page, and an event your store calls when stock returns. - Cap each person at one marketing email a day across all workflows. - Update the README.
Add signup forms to the email system in this folder. Requirements: - Serve /t/form.js, an embeddable form (email and optional first name) that posts to /subscribe with a honeypot field and a per-IP rate limit. - Send a confirmation email; the person is subscribed only after they click the signed link, and the timestamp and source URL of consent are stored. - Show a thank-you message in place, with no page reload. - List unconfirmed signups in the admin with a resend button. - Update the README.
Add subject-line tests to broadcasts in the email system in this folder. Requirements: - A broadcast can have two subject lines. Send each to 10% of the segment, chosen at random. - After a wait (set per broadcast, default 4 hours), send the rest with the subject that had more unique clicks; on a tie, use subject A. Say in the admin that opens are unreliable because mail apps preload images. - Show both variants' sends, clicks and orders on the broadcast page. - Add a test with a fake clock and a tie. - Update the README.
For a shop, email is where repeat orders come from, and Drip plugs into the store with no glue code: purchase events feed segments and workflows, and the revenue shows up next to each email. People also pay so that someone else carries deliverability and the legal rules of sending.
Estimate · A small VPS runs about $5 a month. SES charges about $0.10 per 1,000 emails, so 10,000 emails a month cost roughly a dollar. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Up to 2,500 people | $39 | — | Unlimited email sends, up to 50 workflows, dynamic segments, onsite campaigns, unlimited sub-accounts, open API, the Drip MCP connection, free migration and personalised onboarding. |
| Larger lists | custom | — | The price rises with active people and monthly email volume; the pricing page works it out in a list-size calculator. |
No free plan. A 14-day trial needs no card; unlimited email sends are switched off during the trial.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: One-click sync with Shopify, WooCommerce, BigCommerce and 90-plus other tools, A visual workflow and email builder with ecommerce blocks and ready-made playbooks.
About $39 a month on the Up to 2,500 people plan, $468 a year (checked 2026-10-19).
One-click sync with Shopify, WooCommerce, BigCommerce and 90-plus other tools; A visual workflow and email builder with ecommerce blocks and ready-made playbooks; Onsite popups and forms, and SMS; Revenue traced back to the email behind each order, without your own attribution code; Migration help, onboarding and support. If any of those matter to you, keep paying.
Yes: Dittofeed (open source), Mautic (open source), listmonk (open source).