DeepInfra: launches
Crawl infrastructure rebuilt for speed, a fixed bundle per model release from one AirOps template, internal links the same day, outreach from a standing list.
Read the DeepInfra case studyBased on our work with a weekly release schedule
Most feature launches get a lot of hype inside the company, but struggle to reach their intended audience.
We think product and feature launches can also be used as marketing tools to attract new customers. Being calculated and loud about your features and releases can help you show up in feeds, in Google and influence LLM searches.
This guide goes into the methodology we use to identify opportunities and execute content around feature releases. The working example is our work with deepinfra.com. They are in an extremely competitive industry, since their product releases are based around open-source AI models, and every time they get a model so do all of their competitors. We need to be efficient, quick and produce content that is high quality to win in search and get eyeballs.
Positioning comes first because everything downstream repeats it: every page, article, Reddit comment and launch post, and the brief you fill for every release in Step 5. Developers decide in seconds whether a tool is for them; LLMs decide from whatever sentence describes you most often across the web.
Write three artifacts before any content ships:
Put the category statement on the homepage, the docs landing page, the GitHub README and the founder's LinkedIn headline, word for word. Consistency across sources is what makes an LLM confident enough to repeat it.
This might already exist in your head, but writing it down is extremely helpful for writers, audiences and — most importantly — LLMs.
We keep all three on one page, the positioning page, and every later step checks against it: the feature page's one-sentence description (Step 3), the brief and the announcement (Step 5), and the launch-week check (Step 8).
The first thing we decide on every release is which kind it is, and we decide it before anyone opens a doc. We use three kinds, with a test for each:
| Release | The test | What goes out |
|---|---|---|
| Full launch | It changes who the product is for, or what a developer can do with it in a day | The full kit: a feature page, an announcement, docs and changelog, a demo, posts where developers gather, an email to users (Steps 3 to 9) |
| Changelog plus post | Existing users would want to know; new users would not switch for it | Changelog entry, docs updated, a short post on X and in Discord |
| Changelog only | A fix, a flag, a version bump nobody will search for | Changelog entry and docs. Nothing else, on purpose. |
Then we write the release calendar from the engineering roadmap, a quarter out, with the kind marked on each row. Marketing follows engineering dates here, not the other way round, and the calendar is what lets us prepare pages (Step 3) before the feature exists rather than after the announcement has gone out.
We add one more test in some categories: will a competitor ship the same thing this week? If yes, the release is a race, and the deadline collapses from "when it is ready" to "the same day as the announcement." I cover that case in Step 12, because it is where our strongest evidence comes from. For most launches, most of the time, the three rows above are enough.
Pro tip: in our experience founders over-count full launches and engineers under-count them. We break the tie with the test in the first row. If a developer could not do something new in a day because of it, it is not a full launch, however long it took to build.
If a page does not exist, search and AI assistants assume the feature does not. Launch posts are time-stamped and sink; a feature page on a stable URL is what gets found and cited six months later. So we build the page first, and the announcement points at it, not the other way round.
In the order a developer reads it. Developers skip the marketing paragraph and read the table and the code; so does the assistant about to summarize you. We write those first.
| Element | The rule |
|---|---|
| The feature's name | In the title, URL and first sentence, spelled the way people will search for it |
| What it does | One sentence, from the positioning page |
| The specifics | Limits, pricing, supported languages or frameworks, the endpoint; in a table |
| A working snippet | Tested by someone who did not build the feature |
| What changed | Against the previous version, for the migration intent |
| One limitation | Stated plainly; it is what makes the rest credible |
| The next step | Something a developer can do in five minutes: run it, the playground, free credits |
We do not build all five for every launch. We pick the ones that match the questions developers and the assistants are asking (Step 4 is how we find out).
| Page | Build it when | Query it catches |
|---|---|---|
| Pricing or plan page | The feature changes what things cost | "[feature] pricing" |
| Comparison or "best of" page | Developers will shortlist you against alternatives for this; the format AI assistants cite | "[product] vs [competitor] [feature]", "best [category] with [feature]" |
| Integration guide | There is code to copy | "[feature] with [language or framework]" |
| Benchmark or data piece | You have a number nobody else has | "[feature] speed", "[product] vs [competitor] benchmark" |
| What changed, migration | Existing users have to migrate | "[competitor] alternative with [feature]", "migrate from [previous]" |
We do the keyword research a week out, from the queries in the right-hand column with the product's names filled in.
Keyword research tells us what people type into Google. It tells us nothing about what they ask ChatGPT, Perplexity or Gemini, and for a developer-tools launch that is now the question that matters. When a developer asks an assistant whether your product does X, or where they should run a model, the answer is a yes, a no, or a competitor's name, and the launch content decides which. So before we build the pages in Step 3, we decide which prompts this release has to win and build the pages against that list.
We recommend three types of prompt per launch, and we create a new page for each core prompt rather than hoping the announcement covers it. The announcement never does; it is dated and it sinks.
| Prompt type | What a developer asks | The page we build to answer it |
|---|---|---|
| The yes/no | "Does [product] support X?" "Can I run [model] on [product]?" | The feature or model page (Step 3), with the feature's name spelled the way the prompt spells it, in the title and first sentence |
| The shortlist | "Best [category] tool with X." "Where should I run [model]?" "Cheapest [model] API." | A comparison or "best of" page with your product as one honest entry next to the competitors. This is the prompt that produces recommendations, and the page type assistants cite most. |
| The how-to | "How do I do X with [product]?" "[Model] with Python." | The integration guide, with the snippet the assistant can quote |
We weight the shortlist prompts highest. A yes/no prompt gets you confirmed; a shortlist prompt gets you recommended, and that is where a launch turns into a new customer.
We run about 50 prompts for DeepInfra across the inference category ("fastest Kimi K3 API provider," "cheapest way to run DeepSeek V4," "best Llama hosting"). The week a model drops, the five or six prompts for that model are the only numbers anyone looks at, and the answer usually flips within two weeks of the main page and the "best providers" page going live. By the time we are tracking the next model, deepinfra.com is in the previous one's answer. Case study
Launch posts drift furthest from the positioning, because they get written last, by the person who built the feature, from the PR description. Our fix is a six-field brief, filled from a 25-minute interview with that engineer, and an announcement we write from the brief in the positioning language. The engineer does not write; they answer questions and check the code.
| Field | Where it comes from |
|---|---|
| What is new, in one sentence a developer would repeat | The engineer, then rewritten against the positioning page |
| Who it is for, and the moment they need it | The sales calls and tickets that asked for it; the positioning page's audience line |
| What they can do now that they could not yesterday | The engineer: "what does this let someone build?" |
| How to try it in five minutes | The snippet, the flag, the playground link; tested by someone who did not build it |
| One number | A benchmark, a limit, a latency, a price. The engineer: "what would you put on a slide?" |
| One limitation, stated plainly | The engineer: "what do you wish was documented?" The caveat is what makes the rest credible. |
The announcement is those six fields in that order, with the demo embedded. We record the demo once, with whoever can do it in one take, and cut it to 60 seconds for X. Nothing else about the post is clever. "What you can do now" beats "what we shipped" every time, and the limitation paragraph is the one developers quote back approvingly.
Pro tip: we have someone who did not build the feature run the "how to try it" step before publishing. If it takes them more than five minutes, the post says "in five minutes" and is wrong, and the first comment will say so.
The brief from Step 5 is raw material for more than the announcement. A full launch can become several pieces, and the formats you pick decide whether it gets read, shared and cited, or sinks with the post.
The test for every piece is the same: is it opinionated, and has an expert verified it? Pass both and the format barely matters. Fail either and no format saves it.
| Format | What it is | Why it works |
|---|---|---|
| Technical release write-ups | What shipped, why, benchmarks, migration notes; the announcement in Step 5 | Timed to real demand spikes |
| Use cases with working code | "How we built X with [product]", repo linked | Developers arrive with the product already installed |
| Build guides | Step-by-step tutorials for a job your buyers do; the integration guide in Step 3, the Reddit build guide in Step 10 | Captures intent-driven searches |
| Benchmarks and comparisons | Your tool vs named alternatives, with numbers; the comparison and benchmark pages in Step 3 | The format AI assistants cite most |
| Opinion pieces | A position on how the category should work | How you become the default; travels on Reddit and HN |
| Original data | Anonymized usage data from your platform, or tests you ran yourself | Nobody else can publish it; the most shareable format on Reddit because it reads as education |
You are sitting on data no competitor has: what your users actually do, which models or frameworks they pick, where requests fail, what pricing looks like at real volumes. Anonymize and aggregate it ("across 40M requests last quarter, 62% of teams using X also used Y") and you have a piece that gets quoted. If you do not have the volume yet, run the test yourself: benchmark five providers on the same workload, time ten SDKs on the same device, and publish the method with the result. Both travel further on Reddit than anything else you will write, because they teach something and the brand is incidental to the finding.
No data of your own yet? Borrow a public dataset and do the explaining. Benchmarking sites publish raw comparison data that almost nobody reads in full: for DeepInfra we took artificialanalysis.ai's model comparison data (speed, price, quality scores across dozens of models and providers) and wrote it up for developers choosing a model, with the trade-offs spelled out and the source credited. The data was public; the interpretation was the content.
Some launches are one-offs. Most are not: the tenth integration, the fourth SDK, the new model of the week. For anything we will launch more than four times, we hand-write the first four and extract a template from them; from the fifth on, the brief plus the template produce the draft. The engineer fills the fields, the template holds the structure and the voice, and one of us reads the output before it goes live.
| Launch content | Templatable? | Why |
|---|---|---|
| Integration pages, model pages, SDK pages | Yes | Same shape every time: what it is, the specifics, the snippet, the limit, the next step |
| Supporting pricing, comparison and "what changed" pages | Yes | The structure never changes; the facts do, and the facts are in the brief |
| Changelog-plus-post releases | Yes | Six fields, 150 words, the same every week |
| The announcement for a full launch | No | It is the one piece that has to sound like a person who cares. We write it by hand, from the brief. |
We build the template in a tool we control. We use AirOps for templated volume and Claude for one-off drafts; whichever AI builder your team already has works, as long as the brief and the fields go in and a draft comes out with every step visible. Then our editing pass, which is not optional: we strip the model's meta commentary ("in this article we will…"), verify every number against the brief, three rounds, because the model will round, convert or helpfully update a figure it was not given, rewrite the passive voice, and break any sentence over 40 words. It takes us under an hour for a set of pages, and skipping it is how a wrong price ends up on the page developers compare you on.
DeepInfra adds a new model most weeks, so every release fills the same slots from one brief through an AirOps template we built once: the main model page, a pricing guide, a "best API providers for [model]" comparison with DeepInfra as one honest entry, an integration guide, a benchmarks piece and a version overview. The engineer supplies the price, context window, throughput and snippet; the editing pass takes an hour; the whole set is live the same day. Ten of the twelve DeepInfra pages Gemini cites most are these model-release pages. Case study
We run a launch as a checklist that starts a week before the release and ends two weeks after it. We wrote it once, put a name on every row, and run it on every full launch without re-deciding anything.
| When | What | Who |
|---|---|---|
| A week before | Keyword research for the feature's name and the questions around it. The feature page and supporting pages drafted from the template (Step 7). The brief filled from the engineer interview (Step 5). The launch prompts picked (Step 4). | Whoever writes most; the engineer for 25 minutes |
| Two days before | Announcement written from the brief and checked against the positioning page. Demo recorded. The "try it in five minutes" step tested by someone who did not build it. | The writer; the checker; a volunteer |
| The day before | Docs and changelog live. Feature page live on its stable URL, submitted in Search Console. User email queued. | DevRel or PM |
| Launch day | Announcement published, linking to the feature page. Internal links to the feature page from the five highest-traffic pages on the site. Posts where developers gather, within the hour, under real names (Step 9). Stay in the threads and answer. | The launch owner; founder; DevRel |
| Days 2 to 14 | Mentions (Step 11): republish on dev.to and Medium, answer the Reddit threads, start the roundup outreach. Comparison and "best of" pages updated to include the new thing. | Outreach owner; DevRel |
| Day 30 | The scorecard row (Step 13). | The launch owner |
The row most teams skip is the internal linking, and in my experience it is the highest-leverage ten minutes in the table. A new page nobody links to is invisible to the crawler and to the assistants; five links from pages Google already visits daily is the difference between indexed this afternoon and indexed next week.
The announcement is one URL waiting to be found until it is posted where developers are. We put the same launch out in five forms on the same day, because that is how it gets found, discussed and cited, and each form feeds the others: the Reddit thread links the page, the X thread sends the founder's followers to both, and an assistant that sees the feature described in five places treats it as established.
| Channel | Form | Who posts | When |
|---|---|---|---|
| Your site | The announcement, linking to the feature page | The writer, under their name | First, so there is a URL to cite |
| X | A short thread: what you can do now, the demo, the snippet, the link last | The founder or the engineer; developers follow people, not brands | Within the hour |
| Not the announcement. A build guide where the feature is one tool in a working stack, or a complete answer in the thread where someone asked for exactly this | DevRel, under a real name | Day 1 to 3 | |
| Discord or Slack community | The announcement, plus "ask me anything about it this week" | The engineer | Launch day |
| Hacker News | Only for full launches that would interest people who have never heard of you, submitted plainly, with the engineer in the comments | The founder | Launch day, morning US time |
| Email to users | What changed, how to try it, two paragraphs | Whoever owns the product | Launch day |
| One takeaway in the author's voice, the demo inline, link in the first comment | Personal accounts, never the company page alone | Launch day |
Our rule across all of them: real names. Developers trust the engineer who built it and the founder who bet on it, and they can tell a company account from a person in one line. Reddit has stricter rules than the rest; Step 10 covers them.
Reddit is where developers research tools before they ever reach your site, and it is a primary source for Google's AI Overviews, ChatGPT and Perplexity when they answer "which API should I use". One channel reaches the buyer directly and shapes what the models say about you. No other channel in Step 9 does both.
The communities that matter (r/LocalLLaMA, r/LLMDevs, r/MachineLearning, r/typescript, r/webdev and the niche subreddit for your stack) are the most hostile to marketing on the internet: strict moderation, astroturf detection, and users who call out a promotional post in a thread that then ranks on Google for years. A generic Reddit playbook gets you banned in a week.
We learned this the expensive way: early on, many of our accounts were banned for content that was, in hindsight, promotional. A banned account takes its posting history and every placement it earned with it.
| Got accounts banned | Stayed up and earned upvotes |
|---|---|
| A helpful comment that steered to the client's product | A complete answer that names the client and the alternatives |
| A comparison post that ranked the client first | A benchmark with a method and a result; the client is one of five rows (original data, Step 6) |
| A "has anyone tried X?" thread with a planted answer | A build guide where the client is one tool in a working stack |
The build guides worked best. The shape is a complete, working build with the client as one named tool among several, with the code and the trade-offs:
Developers upvote them because they can copy them, moderators leave them up because they are education, and the mention survives because the build earned it.
Run this under real names: DevRel, the engineer who built it, the founder, from accounts with real posting history in the community. Say who you work for when you mention the product. One rule: no account ever posts something an engineer at your company would not sign.
42 subreddits mapped, continuous thread monitoring. 300K+ impressions and 411 brand mentions in communities where Together AI, Replicate and Groq were the default answer, with zero callouts or flags. Case study
Run our free GEO audit: it checks whether ChatGPT, Perplexity and Google AI Overviews can find and describe your product, and which of your pages they cite.
Mentions beat links. When a developer asks an assistant whether your product does X, the answer is assembled from the comparison lists, roundups and threads the assistant trusts; your own feature page is the least of it. In our tracking, a plain-text mention in a "best tools for X" article that already ranks is worth more than a backlink from a site nobody reads.
The honest caveat: earning those mentions is slow. Getting added to a roundup that already ranks means finding the author, writing the ask, and waiting weeks for an editor who may never reply, and a launch does not have weeks. So we run two tracks in parallel: the slow outreach that pays off over a quarter, and the fast channels that put the launch in front of developers and in the assistants' source set within days.
We recommend working with communities like Reddit and distribution platforms like Medium, dev.to and Substack to get reach and quick mentions in the first week. Each one is a place developers already read, each one is crawled and cited by the assistants, and none of them needs anyone's permission.
| Channel | What goes there | Why it works fast |
|---|---|---|
| A complete answer in the threads where someone asked for exactly this, and a build guide where the feature is one tool in a working stack, under a real name (Step 10) | Threads rank for years and are a primary source for AI Overviews; a top comment shows up in Google's result snippet | |
| dev.to | The integration guide or build guide, republished with a canonical link back to your page | Indexed within hours, high domain authority, a developer audience that reads tutorials |
| Medium | The benchmark or opinion piece, in a relevant publication if you can get into one | Reach beyond your own list; assistants cite Medium for comparisons and explainers |
| Substack or your newsletter | The launch note to people who already know you, with the demo | Existing users are the first to try it, and the first to mention it elsewhere |
Republishing is the point, not a shortcut. The same integration guide on your site, on dev.to with a canonical, and summarized in a Reddit answer is three mentions of the feature in three places the assistants read, in one week, from one piece of writing. We set the canonical tag so the search credit stays with your page.
We track the launch prompts from Step 4 in PromptWatch until the product is in the answer, and after, because the next release moves the answer again.
Everything above assumes you set the pace. Some categories do not let you. DeepInfra hosts 100+ models and adds a new one most weeks, and so do Together AI, Fireworks, Groq, Replicate and Novita, usually within hours of the same model lab's announcement. The feature is a commodity before the announcement thread has cooled. What separates the providers is which one developers find, and which one the assistants name when someone asks where to run it. That is a race, and we run it on content.
When we started, a new DeepInfra model page took days to get indexed. By the time Google saw it, the comparison lists and the Reddit threads had formed around Together AI and Replicate, and the AI answers followed them. The content was fine; the pipeline was slow, and in a race slow loses regardless of what you wrote. What we changed is the same process as the rest of this guide, compressed to a day:
It is the strongest evidence we have for the whole process, because the pace leaves nowhere to hide. If your category works this way, the deadline for every row in Step 8 moves to the same day, and the preparation in Steps 3 and 4 becomes the job.
With the pipeline, the bundle and the mentions running on every release: blog clicks from Google went from 1,347 to 18,551 year over year, signups from organic sessions landing on the blog from 9 to 464, and organic sign-ups per session from 2.9% to 8.6%. In Gemini, deepinfra.com is now the most-cited domain for the inference prompts we track, with 563 citations in four weeks against 382 for artificialanalysis.ai and 353 for OpenRouter; the single most-cited page is a model-release analysis with 112 citations. Content case study · Reddit case study
One sheet, one row per release, the same columns every time. We score a launch on three things, in the order they happen: did search see it, did people visit it, and did the assistants pick it up. Then whether any of those visits turned into a conversion. The point is not the numbers on any one launch; it is seeing launches side by side, which is what tells you which kind of release deserves a full launch next time and which part of the kit is slipping.
| Source | What we pull | What it tells you |
|---|---|---|
| Google Search Console | Impressions and clicks for the feature page and its supporting pages, and for the queries containing the feature's name, at day 7 and day 30 | Whether search saw the pages at all (impressions), whether anyone is looking for this (query impressions), and whether they chose you (clicks). Impressions with no clicks is a title problem; no impressions is an indexing problem. |
| GA4 | Sessions landing on the launch pages, by source: organic, direct, Reddit, dev.to, Medium, the newsletter, the assistants' referrals | Where the visitors came from, which is the only way to know whether the fast-track channels (Step 11) or search did the work. A launch that got 2,000 sessions from the newsletter and 40 from organic is a different lesson from the reverse. |
| PromptWatch | Presence on the launch prompts from Step 4, and citations for the feature page, at day 14 and day 30 | Whether the assistants know you have it, and whether they credit your page or someone's roundup for it |
Visits are the input; the row is not finished until it says what the visits did. We tie every launch page to the conversion events from the companion guide (signup, API key, SDK install or download, with landing page and source), and add one column for the launch itself: first use of the new feature by a new account, which is the API call with the new model string or the flag turned on. The ratio that matters is conversions per 100 sessions on the launch pages. It is usually higher than the site average, because a developer who searched for the feature by name arrived ready to try it, and when it is lower than the site average the page is missing its next step.
| Column | When | What it tells you |
|---|---|---|
| Search Console impressions, feature pages and feature-name queries | Day 7, day 30 | Search saw it; people are looking |
| Search Console clicks | Day 7, day 30 | They chose you |
| GA4 sessions on the launch pages, by source | Day 7, day 30 | Who sent them |
| PromptWatch presence on the launch prompts; citations for the feature page | Day 14, day 30 | The assistants know |
| Conversions from launch-page sessions, and per 100 sessions | Day 30 | Whether any of it mattered |
| First use of the feature by a new account | Day 30 | Whether they used the thing you launched |
The sheet also settles arguments for us. When a launch underperforms, the row shows whether search never saw the page, visitors came and did not convert, or the assistants never picked it up. Those have different fixes, and without the row I have watched teams pick the fix that is most fun.
A launch process survives on names, not goodwill. We give every release one named owner, and split the rest so that nobody's part takes more than an hour or two once the templates exist.
| Who | Owns | Time per full launch |
|---|---|---|
| Launch owner (rotates; never nobody) | The calendar, the kind-of-release call, the checklist, the scorecard row | 2 hours |
| Engineer | The 25-minute interview; a 20-minute review of the page's numbers and code, not its wording; the Discord AMA | 1 hour |
| Whoever writes most (DevRel, or your author) | The brief, the announcement, the feature page and supporting pages from the template, the editing pass, the internal links | Half a day |
| DevRel | The demo; the Reddit build guide and thread answers, under a real name | 3 hours over two weeks |
| Outreach owner (the founder, until there is marketing) | The roundup asks, from the standing list | 1 hour |
| Founder | The X thread; Hacker News when it qualifies | 30 minutes |
| The checker | Reads the announcement and the feature page against the positioning page before anything goes live | 30 minutes |
The first full launch takes three times that, because the templates and the outreach list do not exist yet. By the fourth it is routine. When it stops being routine, that is the signal we tell clients to hire on: releases coming faster than one owner can run them alongside their actual job, rows in the scorecard going empty, or the sheet showing that launch pages are now a main source of conversions and the mention work is what moves the AI column, so it deserves more than the hour it gets.
The first marketing hire then inherits something we rarely see a first hire get: a release calendar with the kind marked on every row, a template set, an outreach list with live contacts, a Reddit presence under real names, and a scorecard with a row for every launch. Their first quarter is adding to it, not building it.
The same process, run by us at three paces.
Crawl infrastructure rebuilt for speed, a fixed bundle per model release from one AirOps template, internal links the same day, outreach from a standing list.
Read the DeepInfra case studyComplete answers with every provider named, build guides where the product is one tool in the stack, top-comment placements on threads that already rank.
Read the Reddit case studyThe "best of" format from Step 3, applied to a category rather than a single launch: listicles produce most of LlamaIndex's AI mentions, and 1,097 signups from those sections in a quarter.
Ask us about the LlamaIndex workEverything above is doable by a founder, a DevRel and an engineer with a free afternoon per launch. The afternoon is the problem, and it is the first thing that goes when the sprint slips. Here is what we see each path look like over the first ten launches.
| In-house | With AUQ | |
|---|---|---|
| The pages and templates | Built on launch one, by whoever has time, refined when something breaks | Built in the first two weeks from the bundles we already run; refined every launch |
| Launch week | Pages by day two or three, mentions if someone remembers | Feature page and supporting pages live before the post; Reddit answers and outreach from day one, from our team, under real names |
| The scorecard and the handover | A spreadsheet someone meant to keep | Every launch scored; the hire inherits the calendar, the templates, the outreach list and the history |
What stays yours either way: the product, the pricing, and the engineer who knows why the feature matters. We never invent any of those.
We work with developer-tools companies where generalist content fails, and we hire a subject-matter author for every account rather than a generalist. Send us your last three releases; we will come back with where each one landed in search and AI answers, how long the pages took to index, and what the supporting page set for your category should be.