The review you never got around to asking for.
Log a finished job in thirty seconds. A day or two later, the customer gets a warm, personal ask for a review — automatically, on the channel you pick.
Real source code, yours to keep · Secure Stripe checkout · No live server, no subscription
Reviews you’d have gotten anyway, if you’d remembered
Log a job once, done. `complete` takes thirty seconds; the kit remembers who to ask, and when.
Asks at the right moment. A day or two after the job — configurable per business — not mid-service, not months later when it's forgotten.
Your channel, your voice. Email or text, and the message template is yours to edit.
Never asks twice. Once a review request is sent, that job is done — safe to re-run the send command as often as you like.
Fails loud, not silent. If your email or SMS isn't configured yet, it tells you exactly which job didn't go out, instead of pretending it worked.
No dashboard, no subscription. A daily cron line and a text file — the whole system is auditable in a terminal.
A small, tested engine — not a platform
Real Python source. Bring your own email or Twilio account, edit one config file, run the tests, put one line in cron.
- CLI
Two commands
`complete` logs a finished job. `run-due` sends whatever's ready. That's the entire workflow.
- TIMING
Configurable delay
Set how many days to wait after a job before asking — per business, in one config file.
- EMAIL
SMTP, any provider
Gmail with an app password, or any SMTP account you already have. No new service to sign up for.
- SMS
Twilio, optional
Already have a Twilio number from Missed-Call Text-Back? Reuse it here — same keychain credentials.
- SAFE BY DEFAULT
Dry-run first
`run-due` without `--send` shows you exactly what would go out and to whom, before anything actually sends.
- TESTED
26 automated tests
Decision logic, the job log, credential fail-closed behavior, and a real end-to-end CLI run — not just the importable functions.
For the business that always means to ask, and rarely does
- Salons, contractors, clinics — any business with a real Google or Yelp listing
- Solo operators too busy mid-job to ask for a review on the spot
- Owners comfortable running a terminal command and a cron job
- Anyone who's noticed competitors have far more reviews than they do
Not a hosted platform with a dashboard — you get real, editable source code and run it yourself. If you’d rather pay monthly for someone else to host it, this kit isn’t that.
Straight answers
- Do I need to know how to code?
- You need to be comfortable running two terminal commands and editing one JSON config file. The README walks through both, plus setting up a daily cron job so run-due --send fires on its own.
- What does it cost to run?
- Email is essentially free (your existing SMTP account). SMS needs a Twilio number — about $1/mo plus per-text cents, the same one Missed-Call Text-Back uses if you already have it.
- Will this spam my customers?
- No — one request per completed job, sent once, after your configured delay. There's no follow-up nag built in on purpose.
- Where does it run?
- Anywhere Python 3.11+ runs — your own machine, a small VPS, a Raspberry Pi. You (or a cron job) trigger it; there's no live server or public webhook at all.
- What happens after I buy?
- Your success page unlocks an instant ZIP download — full source, the full test suite, and a setup README with a worked example.
Download once, yours permanently. No subscription, no upsell, no account to keep paying for.
14-day money-back guarantee · instant download · Refund policy
You’re responsible for your own email/SMS account, its costs, and compliance with your provider’s terms and applicable marketing/messaging regulations (e.g. CAN-SPAM, TCPA) in your jurisdiction.