Sendcore

Campaigns, automations, popups and store attribution, installed into a Shopify or WooCommerce shop

NOT REALLY · consider alternatives
price $16 reference priceestimated build time one sitting for a single store; not a multi-tenant productreplaced by 0 people

The editor is the copyable part. A coding agent will happily build a private Shopify app that pulls your products, composes an HTML campaign and sends it with your own provider key, and for one store that is genuinely useful. What does not fall out of a one-shot is everything that makes it a product a merchant can run a business on: a listed App Store app with OAuth, mandatory GDPR data webhooks and billing that lands on the merchant's own Shopify invoice, per-tenant domain authentication with the DNS handholding it needs, and the consent, suppression and bounce records that keep sending both legal and delivered. Worth saying plainly: Sendcore is small and recent, with no audience network and no proprietary dataset to hide behind. It survives on platform surface, compliance plumbing and the unglamorous backlog that only real merchant sending reveals, which is a narrower moat than Klaviyo's and an honest one.

Build verification: not recorded. How we judge buildability

What you give up

  • App Store distribution: OAuth install, app review and the mandatory GDPR data webhooks
  • billing that appears on the merchant's own Shopify invoice instead of a separate card
  • domain authentication onboarding and per-tenant sender reputation
  • bounce, complaint and suppression handling
  • order-level revenue attribution and automations that fire on real store events

Why people still pay

Merchants pay for the parts nobody enjoys building: staying installed and billed inside Shopify, keeping consent and suppression records defensible when a customer or a regulator asks, and getting mail into inboxes from a domain the merchant owns. The campaign editor is the part that demos well and the part an agent reproduces in an afternoon, right up to the moment other people's content meets other people's inboxes. Pasted rich text with mixed inline formatting, merge tags that must not eat the punctuation around them, product blocks that survive Outlook, automation timing that has to line up with a real order: none of these are design problems. They are a backlog you only discover by sending mail on behalf of other businesses, and grinding through it is what separates a demo from something a shop trusts with its list.

Your build guide

The stack, security requirements, and agent rules for a focused replacement.

Before you start

  • Node.js 22
  • SQLite
  • Shopify custom app Admin API token (read_products, read_customers, read_orders)
  • Bulk email provider key in .env
  • A sending domain you control, with SPF and DKIM already verified
01
Node 22 + Fastify + better-sqlite3, server-rendered HTML, no client framework.
02
Model subscribers, consent records, campaigns, delivery attempts, and suppression state; keep stable source IDs and timestamps.
03
Interface for this Shopify + WooCommerce email marketing workflow: a focused Shopify + WooCommerce email marketing input, review, and export interface.
engineering roadmap

Implementation plan

1

Phase 1, architecture and data

Node 22 + Fastify + better-sqlite3, server-rendered HTML, no client framework. Model subscribers, consent records, campaigns, delivery attempts, and suppression state; keep stable source IDs and timestamps.

2

Phase 2, implement

Send through one bulk email provider with my API key and my already-authenticated sending domain; both in .env, ship a .env.example.

3

Phase 3, implement

SQLite tables: contacts (email, consent state, source, created_at), products cached from Shopify, campaigns (subject, body_html, status, sent_at), and sends (contact_id, campaign_id, status, error).

4

Phase 4, review and output

Send in batches with retry and backoff, one send row per recipient, so a crash resumes instead of double-sending. Report delivered and failed from the sends table only; do not invent open or click tracking. CSV import and export for contacts so the data is never trapped in the app.

5

Phase 5, recovery and acceptance

SQLite tables: contacts (email, consent state, source, created_at), products cached from Shopify, campaigns (subject, body_html, status, sent_at), and sends (contact_id, campaign_id, status, error). Verify this invariant with a saved fixture: Unsubscribed or bounced addresses must stay suppressed; retrying an ambiguous provider response cannot silently send twice. State the practical limit: App Store distribution: OAuth install, app review and the mandatory GDPR data webhooks.

the pro prompt
Build me a private Shopify campaign sender for one store I already own. Not a SaaS, not multi-tenant, no signup. Requirements:

- Node 22 + Fastify + better-sqlite3, server-rendered HTML, no client framework.
- Read the store with a Shopify custom app Admin API token I create myself
  (read_products, read_customers, read_orders); no OAuth, no App Store install flow.
- Send through one bulk email provider with my API key and my already-authenticated
  sending domain; both in .env, ship a .env.example.
- SQLite tables: contacts (email, consent state, source, created_at), products cached
  from Shopify, campaigns (subject, body_html, status, sent_at), and sends
  (contact_id, campaign_id, status, error).
- Every contact carries an explicit consent state. Never send to an unsubscribed or
  unconsented contact, and prove that with a test.
- Every email gets a working one-click unsubscribe link plus List-Unsubscribe
  headers, backed by a signed token and honoured immediately.
- The composer is a plain HTML textarea plus a product picker that inserts image,
  title, price, and link from the synced cache. Render with inline styles and a
  table layout so it survives Gmail and Outlook; no external stylesheets or web fonts.
- Always send a test to myself first, and require a typed confirmation of the
  recipient count before any real send.
- Send in batches with retry and backoff, one send row per recipient, so a crash
  resumes instead of double-sending. Report delivered and failed from the sends
  table only; do not invent open or click tracking.
- CSV import and export for contacts so the data is never trapped in the app.
- Tests: the consent gate, the unsubscribe token, batch resume, and one end-to-end
  campaign against a mocked provider.
- README states what this is not: no deliverability operations, no bounce or
  complaint processing, no App Store distribution, no billing. Say plainly that real
  volume from a cold domain lands in spam, and warmup is now the reader's job.

$ open in your agent (prompt prefilled, you press enter), copy the prompt or copy AGENTS.md

prior art · use these instead of building, if you'd ratherlistmonkHigh-performance self-hosted newsletter and mailing-list manager.↗MauticOpen-source marketing automation platform.↗KeilaOpen-source newsletter tool with campaigns, segments and forms.↗
share on X ↗

Sendcore pricing

planmonthlyannual (per mo)what you get
free$0/workspace$0/workspaceUp to 250 contacts, 500 emails/month, email marketing/templates, essential automations, popups and signup forms.Shopify app listing.
standard$16/workspace—Starting price up to 500 contacts, 6,000 emails/month, advanced segments, A/B testing, AI subject lines, prebuilt workflows.Scales with contacts.
pro$59/workspace—Starting price up to 2,500 contacts, unlimited email and push, product recommendations, deliverability audit/warm-up, AI writing.Scales with contacts.
enterprise$99/workspace—Up to 2,500 contacts, full CRM with customer statuses/followups/reminders, assign customers, AI health/churn.Scales with contacts.

free tier$0; up to 250 contacts and 500 emails/month.

billingmonthly only on Shopify listing; recurring and usage-based charges billed every 30 days

hidden costsExternal charges may be billed separately from the Shopify invoice; pricing scales with contact count.

pricing sources checked 2026-08-10 · pricing source ↗

Questions about Sendcore

Can you build your own Sendcore with AI?

A full replacement is not the recommended project. The editor is the copyable part. A coding agent will happily build a private Shopify app that pulls your products, composes an HTML campaign and sends it with your own provider key, and for one store that is genuinely useful. What does not fall out of a one-shot is everything that makes it a product a merchant can run a business on: a listed App Store app with OAuth, mandatory GDPR data webhooks and billing that lands on the merchant's own Shopify invoice, per-tenant domain authentication with the DNS handholding it needs, and the consent, suppression and bounce records that keep sending both legal and delivered. Worth saying plainly: Sendcore is small and recent, with no audience network and no proprietary dataset to hide behind. It survives on platform surface, compliance plumbing and the unglamorous backlog that only real merchant sending reveals, which is a narrower moat than Klaviyo's and an honest one.

What does the Sendcore build prompt cover?

The prompt starts with this scope: Build a private Shopify app that syncs your products and customers, composes an HTML campaign with a product block, and sends it to a consented segment through your own email provider key. Full-product capabilities excluded from the comparison include: App Store distribution: OAuth install, app review and the mandatory GDPR data webhooks; billing that appears on the merchant's own Shopify invoice instead of a separate card; domain authentication onboarding and per-tenant sender reputation. Follow the implementation plan and its prerequisites before expanding the build.

How do I use the prompt, AGENTS.md and agent skills?

Start with the Sendcore prerequisites and stack, then copy the prompt into your coding agent. Save the project rules as AGENTS.md in the project root. Linked skills are optional packages or source instructions for specific tasks; review their current contents and install only those matching the chosen stack. A skill does not supply API credentials or verify the finished app.

How long will this Sendcore project take?

The catalogue estimate is one sitting for a single store; not a multi-tenant product for the limited scope. Setup, integration approvals, debugging, deployment and ongoing maintenance can add time. This is an estimate, not a delivery guarantee.

What would I give up by replacing Sendcore?

App Store distribution: OAuth install, app review and the mandatory GDPR data webhooks; billing that appears on the merchant's own Shopify invoice instead of a separate card; domain authentication onboarding and per-tenant sender reputation; bounce, complaint and suppression handling; order-level revenue attribution and automations that fire on real store events. Merchants pay for the parts nobody enjoys building: staying installed and billed inside Shopify, keeping consent and suppression records defensible when a customer or a regulator asks, and getting mail into inboxes from a domain the merchant owns. The campaign editor is the part that demos well and the part an agent reproduces in an afternoon, right up to the moment other people's content meets other people's inboxes. Pasted rich text with mixed inline formatting, merge tags that must not eat the punctuation around them, product blocks that survive Outlook, automation timing that has to line up with a real order: none of these are design problems. They are a backlog you only discover by sending mail on behalf of other businesses, and grinding through it is what separates a demo from something a shop trusts with its list.

What price is this guide comparing against?

The recorded Standard plan is $16 reference price (monthly, by billable contacts), checked 2026-08-02. Check the linked pricing source before buying. Building your own also has hosting, API and maintenance costs; the recorded amount is not a guaranteed saving.

What can I use instead of building Sendcore?

The prior-art section lists listmonk, Mautic, Keila as starting points. Review their current scope, license and maintenance before adopting one.

Every week, more subscriptions die.

New verdicts, new prompts, the week's most-doomed apps.
One email. Unsubscribe in one click.

last week:100 Questions · KINDA1of10 · KINDA1Password · KINDA+1090 more

free forever · no scanner spam · the prompt stays on the site, the deaths come to you

$weekly: what got a verdict, what died.