Ad-hoc notifications to phones. There is no undo and no recall — a push is delivered the moment you send it. Check the reach first; the Send button stays locked until you do.
The members' giveaway at /giveaway, and the popup that
points at it. Both are edited here — no deploy needed.
Every word on /giveaway. Leave a box empty to
use the standard wording — clearing one restores the default rather than
rendering nothing.
| Entered | |
|---|---|
Loading… | |
A signup counts as won by the giveaway when the account was created within an hour of that person entering — someone who landed on the page, made an account to enter, and entered, all in one sitting. It deliberately excludes a member who joined earlier for their own reasons and happened to enter later.
| Tier | Affiliate | Items | Joined | Last seen | Actions | |
|---|---|---|---|---|---|---|
Loading users… | ||||||
User-submitted fixes to AI coin identifications. Approving one writes its specs to the authoritative catalog, which then overrides the model on every future scan of that coin.
Partners who applied via /affiliates. Each sale sets aside 25% of list price for a year; the partner chooses how much of that is their commission and how much becomes a customer discount.
For referrals that never touch Stripe — an iOS subscription is bought through Apple, so no webhook fires and nothing credits the partner who sent that customer. The amount is what the affiliate is owed, not what the customer paid. It lands in their balance and payout eligibility exactly like an automatic one.
| Affiliate | Codes | Clicks | Signed up | Paid | Customer spend | Discount given | Commission | Owed | Status | Actions |
|---|---|---|---|---|---|---|---|---|---|---|
Loading affiliates… | ||||||||||
| Requested | Affiliate | Amount | Method | Pay to | VAT | Status | Actions |
|---|---|---|---|---|---|---|---|
Loading payouts… | |||||||
Our own codes, not tied to a partner — they attribute users and can grant a trial, but pay nobody commission. Share via spot-bot.co.uk/?ref=CODE.
| Code | Label | Trial | Discount | Users | Pro | Created | Status | Actions |
|---|---|---|---|---|---|---|---|---|
Loading codes… | ||||||||
One code, one email address, one use. Generate a fresh one per winner — a code that gets passed on simply won't work for anyone else. Subscription plans only; lifetime is a one-off payment and can't carry a trial.
| Code | For | Free days | Note | Created | Status | Actions |
|---|---|---|---|---|---|---|
Loading giveaway codes… | ||||||
One-off campaigns you write yourself. Every send is manual — nothing here fires on a schedule. Recipients are frozen into a list when you queue, then sent in batches, so a campaign can be paused, resumed, or survive a browser crash without double-sending anyone. The unsubscribe footer and tracking are added server-side, so you never have to remember them.
Prices, the founder deadline, the free-tier limit and the feature list are read from the codebase and handed to the model as fact — it writes the copy, it doesn't invent the numbers. The unsubscribe link is placed with a {{unsubscribe}} token and tracking is added at send time.
{{unsubscribe}} — drops in an opt-out link that inherits the surrounding text's colour. {{unsubscribe_url}} — the bare URL, if you want to write the markup yourself. Omit both and a plain footer is appended, so an email can never go out without an opt-out.
| Name | Segment | Status | Sent | Opened | Clicked | Pro | |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Bug reports and feature requests, written down by hand. Nothing lands here automatically — it's for the things that arrive by email, WhatsApp or in person and would otherwise be lost between the message and the fix.