Coding agent pricing comparison: cheapest LLM API for coding, cost per million tokens, from the OpenRouter price list as JSON and CSV. An AI model token price comparison repriced at a real agent mix — 95.6% cached input pricing, 6.5x off list: prompt caching price, cache read price, cache hit share, long context pricing, DeepSeek peak/off-peak.

Written with AI assistance. Figures without a traceable source were cut before publishing.
The same piece is posted as a thread on GitHub — that copy has a reply box under it, and this one does not.
StoryShort hit $22,000 a month in its first three months. A B2B tool called useArtemis needed two years to reach the same figure. The revenue is Stripe-verified rather than founder-reported, and none of it came from advertising.
Cumulative revenue was close to $500,000 by the time the product went up for sale. Two channels carried all of it: search, and a YouTube presence that averaged 400 clicks a day.
That is the entire acquisition story. No launch campaign, no paid placement, no growth hire.
I would not read “zero ad spend” as “free,” though. Four hundred clicks a day is not a viral number; it is what you get from publishing against a keyword that converts, for long enough that a search engine starts trusting the domain. The channel is cheap in money and expensive in months — and the people who quit at week six never find out which one they were short on.
StoryShort’s founders never published their playbook, so the operational detail has to come from somewhere else. The closest documented case belongs to a different developer working a different niche, and I am keeping the two separate on purpose: what follows is Jordan’s, not StoryShort’s.
Jordan watched his wife re-share Poshmark listings by hand every day and wrote thirty lines of JavaScript to do it for her. That script became Resellbot, which runs at $63,000 a month.
Thirty lines. The whole technical origin of a five-figure monthly business fits in one screen.
His first users came from a single post in a vertical Reddit community — a few days, two hundred people who said they wanted it, and retention that beat what he later saw from any paid source.
His entire blog was fifteen articles. Five of them carried most of the organic traffic, and they were built around one keyword, “Poshmark Automation,” chosen because it was what his users typed.
The ten articles that did nothing are the part I keep returning to. Two-thirds of the writing was wasted, there was no way to know which two-thirds in advance, and the only route to the five that worked ran through publishing all fifteen. Anyone selling you a shortcut past that ratio is selling you something.
Brian Donatiello took the same idea one step earlier and put the search term into the product name and the domain itself.
It is a cheap move and it works for an unglamorous reason: a product named after the query is the result that looks most like an answer to it. It also locks you in. Rename the product two years later and you hand back the thing that was doing the acquiring.
An app store is a search engine with a payment method already attached to it. Zigpoll’s single largest source of new signups is the Shopify App Store, at roughly a third of them, and it earns that place by filtering out everyone who is not already running a store, shortening the path from discovery to install, and accumulating ratings that do the trust-building you would otherwise be doing one conversation at a time.
The same shape shows up one tier down, on a much smaller product. A developer cold-started a browser extension by posting in three relevant subreddits, collected two hundred upvotes, and then handed the job to Chrome Web Store search — people typing “text replacement” or “modify webpage” started finding the extension without him posting again.
Two cases in this set both stop at two hundred early users. Coincidence, not law — nobody should build a plan around the number.
What is worth taking from both is the sequence: the forum was used once, to get moving, and everything after that ran on a store’s own search index.
There is a harder version of this claim in circulation — that an export-market SaaS product’s outcome is settled at the moment its keyword is chosen, before a line of code exists, and that the real work is slicing combinations out of people’s actual work and life situations rather than brainstorming features in a document.
I think that overstates it. Plenty of perfectly named products die of being bad, and I have never seen the counterfactual run properly. But the correction it implies is concrete enough to act on: pick the phrase first, then check that a real person would type it.
Two tactics fall out of that. Skip the crowded long-tail terms and build a small free tool that catches the search traffic instead, then route those users to the paid version. Or go into one specific subreddit, find the complaint people are already writing out in full, and use their own sentences as the landing page.
Short video is the lowest-barrier acquisition channel available to a solo developer, but only for products that can be shown in under sixty seconds.
Across four independent cases, roughly 95% of users arrived through content rather than paid placement, and the operators who sustained it did so on a fixed publishing cadence with a repeatable hook rather than on inspiration.
The names behind that finding are ordinary operators rather than studios — Rob Hallam, Cormac Hayden, Eric Smith and a pair of brothers — and what the four have in common is a fixed cadence and a repeatable hook, not a run of good ideas.
The brothers took it one step further. They proved a hook on a single account first, then copied it across several, and the accounts together passed 58 million cumulative plays; the duplication only paid because the hook had already been validated somewhere cheap.
I suspect the cadence matters more than the content does. A hook you can repeat is a hook you can put on a schedule, and a schedule is what survives the weeks when you have no ideas.
Here is a calculation worth doing before any of this. A million dollars a year is $83,333 a month, or $2,777 a day. On a $150 product that is 18 sales a day, and at a 2.5% landing-page conversion rate, 18 sales needs 720 visitors a day.
Seven hundred and twenty a day. Against StoryShort’s four hundred.
That gap is the honest version of this entire story. The organic channel that produced $22,000 a month is running at roughly half the traffic a million-dollar year would need, and it took three months to get there. None of these operators reached a million. They reached a good living, which is a different target and a far more reachable one.
StoryShort was listed at $1.2 million, about 4.4 times annual revenue, at a point when its most recent thirty days were running 11% below the thirty before them.
Selling into a decline reads like a failure until you look at what the price is anchored to. The multiple was computed against the trailing annual figure, which still carried the peak months; the decline had not yet worked its way through. Whether a buyer accepted that framing, I do not know — the source records the listing, not the sale.
This is the one part of the case I would leave alone until there is more evidence than a single listing price.
The one prerequisite the sources actually state is narrow: the product has to be demonstrable in under sixty seconds, which rules out anything whose value only shows up after a week of use.
The costs are the part nobody quotes. Ten dead articles for every five that work. Three months before StoryShort’s two channels added up to anything — and that is the fast case in this set, not the typical one. An indefinite weekly slot on a channel that pays nothing until it abruptly does.
What makes that trade worth taking is the direction the meter runs. Every article you published last year is still working this year, and nobody can outbid you for it in an auction.
Also readable on Telegraph.
Read next
The 11 figures in this piece — each with the sentence it came from — are in the figures table, alongside 418 more, as JSON and CSV.
Topics: AI Tools
Part of llm-api-pricing — field notes on AI coding agents.
Did this save you an afternoon? A star on the repository is the whole ask — it is what puts these in front of the next person looking; the data is CC BY and does not require starring.
One thing this piece could not settle: which channel brought you your most recent user? Reply with just the channel name — search, a forum post, a store listing, word of mouth — and “none yet” is a real answer, the one I learn most from. The reply box is on the thread copy of this piece.
Want a figure that is not in here yet? Say which metric, which provider, which unit — in one line. One required field, and the page you came from is already filled in. Got a better number? Open an issue — that form knows which write-up you came from too; corrections and counter-data are the point.