Pick up and finish yesterday's cut-off Tier B pass. - build/: PyInstaller scaffold (datatools.spec + launcher.py + hook-streamlit.py + README) — folder-mode bundle, locked 127.0.0.1, per-OS recipe - marketing/COPY.md: single source of truth for every customer-facing string — landing H1/sub/CTAs, demo CTAs, email subjects, Gumroad listing, banned phrases - marketing/community-posts/: 9 drafts (3 posts × 3 niches: bookkeeper, revops, shopify-pet) — story / tip / soft-offer - marketing/emails/: 18 drafts (Gumroad delivery + 5-touch onboarding × 3 niches), per-niche segmentation guidance - docs/NEXT-STEPS.md: flip 2.2 / 2.4 / 3.1 / 3.4 to done with pointers to the new assets; add Phase 0 inventory rows - .gitignore: narrow `build/` ignore so PyInstaller spec + launcher + hooks get tracked, only generated artifacts (build/build/, build/__pycache__/, build/dist/) stay ignored Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Email sequences
Per niche (bookkeeper/, revops/, shopify-pet/):
00-delivery.md— Day 0 Gumroad delivery email. Triggered when Gumroad confirms the purchase. Job #1: get the buyer to download and open the app inside the first 24h. Buyers who don't open within 72h refund at ~3× the rate of buyers who do.01-day1.md— Day 1 nudge with a sample file matched to the niche. The Day-1 email is the highest-leverage one in the sequence; it converts "I bought it" into "I used it".02-day3.md— Day 3 deep-dive on one specific feature the niche cares about most.03-day7.md— Day 7 workflow framing. "Use it every {month / campaign / sync}, not as a one-off."04-day14.md— Day 14 power-user tip. Surfaces a non-obvious feature; converts "I use it" into "I rely on it".05-day30.md— Day 30 referral / review ask.
Sender setup
- From:
support@datatools.app(single-sender to keep replies in one inbox; don't fan out to per-niche aliases until volume warrants) - Reply-To: same — every email expects a reply pathway
- List provider: Gumroad's built-in for delivery; Buttondown or ConvertKit for the 5-touch sequence (Gumroad's drip is too crude for niche segmentation)
- Segmentation: customers self-tag at checkout (Gumroad custom
field "What do you do?"). Map:
bookkeeper,revops,shopify-pet,other.othergets a generic sequence (not drafted yet — Tier C).
Variables
All emails use these placeholders. Set them at sequence-import time, not per-email:
{{first_name}}— Gumroad provides; fall back to "there" if blank{{download_url}}— niche-specific download URL from Gumroad{{sample_file_url}}— niche-specific sample CSV (samples/demo/...){{landing_page}}— niche-specific landing page URL{{support_email}}—support@datatools.app
Cadence and quiet rules
- Don't send between 10pm-7am buyer-local-time (Buttondown supports TZ-aware send; ConvertKit doesn't out of the box)
- If the buyer replies to any email in the sequence, pause the remaining touches until you've replied to them. A drip that ignores a customer reply reads as worse than no drip.
- If the buyer requests a refund, kill the sequence immediately.
- Day 14 + Day 30 emails are skippable if the buyer has already emailed support with a feature request or bug report — they're engaged enough; don't pile on.
Subject lines
Subjects are owned by marketing/COPY.md § 4. Don't edit subjects
in-line in the email files; edit COPY.md and re-propagate. Same
discipline applies to the closing CTA — owned by COPY.md § 0.