Ballad
Docs

Get Ballad running on your stack.

Ballad writes and serves your content; your own site renders it. Analytics flow the other way, back into Signals, and Claude can work inside the loop as a connector. These guides cover the wiring; the first two are the setup this site runs on.

// app/blog/[slug]/page.tsx const post = await ballad.getItem(slug) return <Blocks blocks={post.blocks} /> // on publish revalidateTag("ballad")
Integration·~15 min

Set up your Next.js blog

Connect a Next.js App Router site to the content API: index and post routes, block rendering, SEO metadata, and automatic refresh when Ballad publishes.

  • The package, in five re-exports
  • Mint a content API key
  • Or build it yourself
  • Revalidate on publish
Read the guide
Claude wants to work in Ballad OAuth
read
draft
propose
decide
publish
Agents·~5 min

Connect Claude to Ballad

Add Ballad to Claude as a custom connector: sign in with Ballad, pick scopes on the consent screen, and ask Claude for drafts, plan changes, or a status check — every draft still reviewed by you.

  • Copy the connector URL
  • Add a custom connector in Claude
  • Sign in and choose scopes
  • Keys for other agents
  • What you can ask for
Read the guide
Where signups came from First touch
AI answer engines
LinkedIn
Search
Direct
Measurement·~10 min

Measure what your content does

Install the beacon: a 1.5 KB first-party script that records landings, referrers and conversions on your own domain — no cookies, no visitor ids.

  • Install the beacon
  • Fire a conversion
  • Keep your canonical tags
  • What Ballad stores
Read the guide
Carousel · 3 slides 1080²
The hook1/3
The number2/3
The ask3/3
One background, words composited on top
Formats·~5 min

Image posts & carousels

Ballad writes the words on the slide and the caption; the image is composited from a text-free background Ballad generates for each post (or one you supply), in your colours, font and logo — so the text is exactly what you approved.

  • What a visual post is
  • Your brand look
  • Reviewing and publishing
  • What it costs
Read the guide
This week's issue Weekly
Copy subject Copy body Copy HTML
Opens your editor — you send it
Channels·~5 min

Newsletters

Ballad drafts a weekly issue from what shipped — for a LinkedIn newsletter or your email tool. You review it and send it yourself; Ballad never sends.

  • What Ballad writes
  • LinkedIn newsletter
  • Email newsletter
  • What it never does
Read the guide
Web
4,812
Conversions
63
Measurement·~10 min

Connect Ballad to Vercel Analytics

Close the measurement loop: enable Web Analytics, emit the signup and demo_request events, and connect it so traffic and conversions feed Signals.

  • Turn on Web Analytics
  • Emit conversion events
  • Keep post URLs matching your collection
  • Connect it in Ballad
Read the guide
The API at a glance

Two endpoints and a webhook.

Everything is authenticated with a bearer token you mint in Ballad under Settings. Responses are plain JSON with typed content blocks, so any stack can render them.

GET/api/content/collections/{slug}

A collection and a page of its published posts: slug, title, tier, date, excerpt, author, permalink, and hero image.

GET/api/content/items/{slug}

One post as ordered blocks (prose, hero image, pull quote, CTA, code) plus its SEO title, description, canonical, and JSON-LD.

POSTyour revalidate hook

Ballad calls your site when something publishes, so a cached index or post refreshes within seconds instead of on a timer.

GET/blog/rss.xml

Not an API endpoint, but worth having: the guide ships an RSS route and a sitemap entry for every published post.

Not on Next.js? The endpoints are plain HTTP and JSON. Render them however you like.