AI-d kit · free offers
Free stuff in promotions
Free AI credits, free tiers and time-boxed promotions, each one carrying the date it was last checked and a note of what the checker actually saw. A page of plausible-but-dead offers costs you an afternoon and then your trust, so this one would rather be short.
This list still contains seed examples. Rows marked EXAMPLE ROW are fixtures that exist so the expiry and verification machinery can be checked before the real offers land. They point at example.com and are not offers. This notice disappears by itself when the last example row leaves offers.json.
This list is built from offers.json in your browser each time the page loads. Nothing has been rendered yet.
The offer file could not be read. Nothing is shown as live, and that is not the same as there being no offers. Read offers.json directly.
Time-boxed promotions
Verified promotions still inside their window. A promotion drops out of this list on its own the day after its expiry date, comparing UTC calendar days — no cron job, no sweep, and nobody deleting a row. This list is correct tomorrow whether or not anyone opens the page.
Not rendered yet.
Standing free tiers
These do not expire, so instead each one shows the date it was last confirmed. Past 90 days without a recheck a tier keeps its place and gains a visible STALE marker — it is usually still real, but the date is the thing you should be reading, because a shrinking free tier can end up costing more than an ended promotion.
Not rendered yet.
Unverified — not live
Nobody has opened these and written down what they saw. Their dates may be perfectly valid; that is not enough. The renderer will not place a row in the lists above unless its verification.status is VERIFIED, so an entry sits here until someone checks it.
Not rendered yet.
Withdrawn archive
Promotions whose date has passed. They are kept as history rather than deleted, which is also how you can see the expiry rule working: every row here was in the live list until its own date went by.
Not rendered yet.
Broken records
Rows in offers.json that do not match the schema. They are shown here, visibly broken, rather than being quietly skipped — a row that silently disappears is a row nobody fixes. Run node scripts/validate-ai-d-kit-data.mjs to get the same list on the command line.
Upstream candidates from The Drop
A work queue, not a list of offers. These come from The Drop’s reviewed promotion feed and none of them has been verified for this page. They move into the lists above one at a time, after someone opens the page and records what they saw. Nothing in this section can render as live.
Reading the upstream feed…
Not rendered yet.
Source boundary: the live lists come from offers.json in this repository, so every row arrives with a date and a verification record and gets read by a human in a pull request. The candidate section reads a curated promotion view from The Drop’s database; it does not ingest mail, copy the newsletter corpus, or re-run The Drop’s relevance evaluation. All dates are compared as UTC calendar days so that two readers in different timezones are told the same thing.