One set of assets. Every surface.
Send six fields and we can run your ad everywhere. Add images for the richer units. Here's exactly what to send, and what works with developers.
What to send
The first six run your ad on every surface. Images add richer units where they fit.
Needed to run · every surface
| Brand name | 20 characters |
| Square logo | SVG or PNG, 256×256, transparent |
| Headline | Up to 80 characters; 60 or fewer reads best |
| Body | 100 characters, one sentence, action at the end |
| Call to action | 24 characters, such as “Try now” or “Get started” |
| Link | One per variant; UTM tags and short links are fine |
Adds richer units
| Card image | 1024×512, JPG or PNG, under 2 MB. Keep what matters in the centre 812×512: narrow layouts crop the edges. |
| Newsletter image | 680×512, JPG or PNG, under 2 MB. Shown beside the sponsor copy. |
| Terminal line | 60 characters, plain text. Otherwise we use your headline. |
One image, one headline, one link.
The card sits in the article column or the sidebar and inherits the site's fonts.
- Keep the product UI centred: edges crop to 812×512 on narrow layouts
- No text in the image beyond your logo
- Up to 80 characters; 60 or fewer reads best
Branch your Postgres like you branch code
Small, quiet and useful.
Shown under the table of contents: your logo and one sentence.
- Your square logo, never a screenshot
- Lead with the brand name, then what it does
- Never mimic the docs' own callouts or warnings
npx ql branch create pr-482Vectorly. Fast vector search on the Postgres you already run. No new database to learn.
One sponsor per issue.
A labeled block near the top of the issue, written in the newsletter's style.
- Image 680×512, optional: many issues run text-only
- One link, one call to action
- We can write the copy with you at no cost
CI that remembers every build
Remote caching for every runner, so builds skip work they've already done.
Speed up CIPostgres 18 is out. Async I/O, virtual columns and faster upgrades.
Below the answer, never inside it.
Text first: your logo, headline, body and one button, separated from the model's reply.
- No first person: never “I recommend” or “I can help”
- Never claim to answer the user's question
- Rotates only when a new conversation starts
Create a database branch per preview environment, seed it from a snapshot, and drop it when the pull request closes.
SSO, MFA and passkeys in six lines of code. Self-host or let us run it.
keyring.devOne plain line after the task.
Shown only when the work is done, in the host's dim style, with a short link.
- No commands, code or install instructions: an agent could run them
- No instructions addressed to an agent or model
- No emoji, no color beyond the host's styling
What developers respond to
Lessons from developer campaigns.
Say what they actually get
Lead with an outcome, a number or a capability. Words like solution, platform and seamless tell a developer nothing.
Name the problem, not the promo
A discount tacked onto the opening line reads like a coupon. Put the offer in the call to action.
Be specific enough to check
Numbers and nouns earn trust. Superlatives don't.
Send variants, keep the winner
Send 10 to 15 variants with different hooks, visuals or offers, and let the strongest take the budget. Refresh before it goes stale.
How review works
A person reviews every ad before it runs. If we can't run it, we tell you why.
We'll ask you to change ads that
- Imitate a site's content, an assistant's voice or a system message
- Contain commands, code or instructions an agent could act on
- Promise results you can't back up, or use fake urgency
- Promote products that aren't useful to developers
- Link to a page that doesn't match the ad

