Examples
Canonical patterns for publishing AI-generated content. Each is a single-call recipe that produces a working public URL.
These are not demos of a publishing platform. They are demos of how a publishing primitive composes with whatever AI tooling you're already using.
Real pages built this way
Three live pages published with the markdown API, each demonstrating a different slice of the supported subset (see the API reference for the full list). Click any title to view the rendered output; expand See the input markdown to see what produced it.
Why I built Quicky.Page
The product, explained on a Quicky.Page. Recursive on purpose — the page you click is itself a demonstration of what the markdown API produces.
Built with: GitHub > [!NOTE] callout (elevator pitch up top) · Paired > [!TIP] + > [!WARNING] callouts replacing the "what it is" / "what it isn't" bullet lists · --- divider before the closing CTA · Inline `code` spans
See the input markdown
# Why I built Quicky.Page
> [!NOTE]
> Quicky.Page is the smallest publishing primitive on the web: open a page, type or paste, click Publish, get a URL. No login. No project. No site to manage. Just `quicky.page/abc123` and a copy-paste link.
There's a category of content that wants to be a URL but isn't a website. A note. A thread. An AI output. A launch announcement. A bio. A link.
## The loop
Open the page. Type or paste. Click Publish. Get a URL like `quicky.page/abc123`.
> [!TIP]
> **What Quicky.Page is**
> - A publishing primitive — the smallest thing that turns content into a public URL
> - Single page per URL — no "site", no "project", no "workspace"
> - Anonymous — no login. The edit URL is the only credential
> [!WARNING]
> **What Quicky.Page isn't**
> - Not a website builder. No layout editor, no drag-and-drop, no grid system
> - Not a CMS. No collections, no schemas, no drafts, no scheduling, no rollback
> - Not a hosting platform. You can't upload arbitrary files, run code, or embed scripts
---
This page was made on Quicky.Page. You can make one too at [quicky.page](https://quicky.page).Publish a ChatGPT conversation in one curl call
Runnable tutorial — the curl recipe in the page body is the exact call that published the page you're reading.
Built with: Fenced code blocks (Shiki-highlighted server-side) · Literal `**You:**` / `**Assistant:**` inline-code spans (the marker text stays literal instead of being parsed as bold) · > [!WARNING] callout on the no-auth / rate-limit posture · --- divider before the closing meta paragraph
See the input markdown
# Publish a ChatGPT conversation in one curl call
Any script — including the one running in your terminal right now — can publish a single shareable page in one HTTP call. No accounts, no API keys, no SDK.
## The call
```
curl -X POST https://quicky.page/api/v1/publish \
-H 'content-type: application/json' \
-d '{
"title": "Why TCP slow start exists",
"content": "**You:** Explain TCP slow start in 3 short paragraphs.\n\n**Assistant:** TCP slow start is a congestion-control mechanism..."
}'
```
## What's happening
The `content` field accepts markdown. The bold-speaker-label convention (`**You:**` and `**Assistant:**` on their own lines) reads cleanly because the markdown converter folds the markers into `<strong>` runs around the speaker label.
> [!WARNING]
> This endpoint is anonymous and rate-limited at 30 publishes per 5 minutes per IP. The `editKey` returned in the response is the only credential that lets a caller mutate the page later.
---
You're reading this page on Quicky.Page. It was published with the curl call above.Quicky.Page v0.5 — the Shape layer
Launch note. A real product update, published the same minute it shipped, using the same API anyone else would use.
Built with: > [!TIP] callout with the one-line feature summary up top · > [!IMPORTANT] callout (→ warning tone) framing the boundary statement · Ordered list with **bold** labels inside list items · --- divider before the closing CTA
See the input markdown
# Quicky.Page v0.5 — the Shape layer
> [!TIP]
> Paste any content. Click ✦ Shape. The AI composes it into a polished Quicky.Page — picking blocks, suggesting a theme, writing share metadata.
## What changed
The blank canvas is still there, but the front door is now Shape. The new flow:
1. Paste existing content into the Shape hero on the editor
2. The auto-detector picks an input kind: text / markdown / chat / URL
3. Click ✦ Shape page
4. AI composes the content into blocks, suggests a theme, writes share metadata
5. Click Publish
## Supported input kinds
- **Text** — pasted prose, verbatim (trimmed + truncated to 24k chars)
- **Markdown** — markdown source, read natively
- **Chat** — AI-conversation transcripts, with speaker labels on their own lines
- **URL** — server-side fetch of the URL, stripped to visible text
> [!IMPORTANT]
> Boundary rules are unchanged. The Shape path can only emit the qp.v1 block vocabulary: no websites, no navigation, no multi-page output, no JS execution, no arbitrary iframes, no application logic.
---
Open [quicky.page](https://quicky.page) and paste anything into the Shape hero.Turn a ChatGPT output into a shareable page
Paste a transcript into content with **You:** / **Assistant:** prefixes. Reads cleanly because the markdown converter folds the speaker labels into bold runs.
curl -X POST https://quicky.page/api/v1/publish \
-H 'content-type: application/json' \
-d '{
"title": "Why TCP slow start exists",
"content": "**You:** Explain TCP slow start in 3 paragraphs.\n\n**Assistant:** TCP slow start is a congestion-control mechanism...\n\n(rest of the conversation)"
}'Or, install the browser extension and click "Send to Quicky.Page" from inside ChatGPT — the extractor does this automatically.
Publish AI-generated launch notes instantly
An LLM writes the announcement; you publish it as a single page; you share the URL on a timeline. No site, no CMS, no draft / publish cycle.
curl -X POST https://quicky.page/api/v1/publish \
-H 'content-type: application/json' \
-d '{
"title": "Launch notes for v0.4",
"content": "# Launch notes for v0.4\n\nWe shipped three things today:\n\n## Public API\n\nPOST /api/v1/publish takes markdown or qp.v1 blocks.\n\n## MCP server\n\nClaude and Cursor can now publish in one tool call.\n\n## Browser extension\n\nOne-click \"Send to Quicky.Page\" from any tab."
}'Convert a prompt into a public web page
Compose with any LLM SDK; pipe the result into /api/v1/publish. Two requests, ~30 lines, one URL.
// 1. Generate with your favorite model.
const draft = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Write a 200-word note on the carbon cost of LLM training." }],
});
const content = draft.choices[0].message.content;
// 2. Publish.
const res = await fetch("https://quicky.page/api/v1/publish", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ title: "Carbon cost of LLM training", content }),
});
const { url } = await res.json();
console.log(url);Share an AI explainer visually
For longer explainers, use markdown structure (## sections, lists, bold) so the rendered page has visual hierarchy without you having to think about layout.
curl -X POST https://quicky.page/api/v1/publish \
-H 'content-type: application/json' \
-d '{
"title": "What is RAG?",
"content": "# What is Retrieval-Augmented Generation?\n\nRAG is a pattern that pairs a generative model with a retrieval step.\n\n## The problem it solves\n\nLLMs hallucinate when they have to recall facts.\n\n## How it works\n\n1. Embed the query.\n2. Search a vector store for relevant passages.\n3. Feed those passages to the model alongside the query.\n4. The model answers grounded in retrieved text.\n\n## When to reach for it\n\n- Domain-specific knowledge bases.\n- Documents that update faster than you can re-train.\n- Anywhere citations matter."
}'These four patterns cover ~all of what people use Quicky.Page for. If you find yourself wanting more — multiple pages, structured data, custom domains — that's the signal that you want a different tool. See what Quicky.Page is for why.