Herald
affiliate content workbench
01 — Harvest

Pull real listings,
then rank them

Two stages, deliberately separate. First it fetches actual pages and extracts what is really there. Only then does a model rank and find angles — and it may only use the harvested text as fact. Nothing is invented in between.

Sources

02 — The asset that converts

Write the review
you'd want to read

Built section by section rather than in one shot, which is what makes a small on-device model usable here. Every number in the finished draft is checked back against the harvested data and your own notes.

03 — Distribution

One review,
five native formats

Short outputs are where small on-device models genuinely hold up. Each asset is derived only from the review, so claims stay identical across platforms.

Needs a review first.
05 — Reality check

What $12k a month
actually costs you

Commission comes out of traffic × click-through × conversion × order value. Put your real numbers in and the receipt tells you how far off you are.

06 — Library

Saved campaigns

Stored on this device in IndexedDB. This app uploads nothing.

07 — Setup

Engine, proxy,
disclosure

Where generation runs

On-device model

Downloaded once, then cached by the browser and usable offline. Sizes below are the real download. Pick the smallest one that gives you usable prose — bigger is not free on a phone.

First load pulls the model weights from the MLC CDN, so it needs a connection once. After that it runs with the network off.

Cloud provider — optional

Fetch proxy

Retail sites do not send CORS headers, so a browser cannot read them directly. This is a browser rule, not a limitation of the app. Deploy the worker below on your own Cloudflare account and paste its URL here. It only forwards to the allowlisted domains in the code.

worker.js — copy this
Create a Worker in the Cloudflare dashboard, paste, deploy, copy the URL. Roughly two minutes.
Amazon's terms of service prohibit scraping; their sanctioned route is the Product Advertising API, which needs signed server-side requests. Reddit and Hacker News below are public APIs and need no proxy at all.

Disclosure

Install

Installing gives it a home-screen icon and keeps it running with the network off, once a model is cached.

Honest notes

A 1B on-device model writes noticeably flatter prose than a frontier model. Sections are generated separately to compensate, and the fact fence catches most invention, but read every draft before it goes out.
Scraper selectors rot. Extraction reads JSON-LD structured data first because that is the most stable thing on a retail page, then falls back to CSS. If a source returns nothing, the page layout changed.
No tool produces $10–15k a month. Step 05 shows the traffic that figure requires at your own rates.