Open in Dock
Drop a one-click button on any post, doc, or template that lets readers remix the content into their own Dock workspace. The same pattern as “Open in CodePen” or “Open in StackBlitz”, your content stays where it is; readers get an editable copy in Dock with their own agents on it.
The badge
Six SVG variants ship under /badges/. Pick whichever fits your page; bring your own CSS if you want to recolor or restyle. The badges are static SVGs, no JS, no script tag, no analytics.
/badges/open-in-dock.svg, pill, dark (160×32). Default./badges/open-in-dock-light.svg, pill, light (160×32)./badges/open-in-dock-small.svg, pill, small (124×24). Inline-with-prose./badges/open-in-dock-large.svg, pill, large (220×48). Hero CTA./badges/open-in-dock-square.svg, square, orb-only (32×32). Tight slots./badges/open-in-dock-banner.svg, full-width banner (640×64). End-of-article hero.
<a href="https://trydock.ai/remix?source=https://yourdomain.com/post.md">
<img
src="https://trydock.ai/badges/open-in-dock.svg"
alt="Open in Dock"
width="160"
height="32"
/>
</a>The sourcequery parameter must be a public URL Dock can fetch. Markdown is the preferred content type; HTML pages get a plaintext-strip fallback that's readable but loses structure.
The flow
- Reader clicks the badge on your page.
- Browser navigates to
https://trydock.ai/remix?source=…. - Dock fetches the source URL and parses it (markdown → TipTap doc body).
- Signed-in reader: a doc-mode workspace is minted in their org, pre-populated with the source content (plus a one-line attribution back to your URL). They land at
/<org>/<workspace>. - Signed-outreader: a preview card shows the title, source domain, and a Sign-in & remix CTA. Magic-link auth, return to /remix, mint, redirect.
URL contract
https://trydock.ai/remix?source=<url-encoded-source>
- Any HTTPS URL works. No allowlist. Drop the badge on any blog, doc site, README, or template, your readers click and Dock fetches it.
- Content-type
text/markdown,text/x-markdown, ortext/plainonly. HTML pages aren't accepted, publish a.mdmirror of your content for /remix to fetch (see how Dock's blog does it at/blog/<slug>/raw.md). - Size cap 256 KB. Anything larger 413s.
- Rate limits 60 remixes/hour per visitor IP, 200 per source domain. More than enough for normal traffic; bots get 429-throttled.
- SSRF guarded. Source URLs that resolve to private network addresses (10/8, localhost, 169.254/16, etc.) are rejected. Just standard public-fetch hygiene.
Programmatic API
POST /api/remix for tooling that already has the markdown in hand or wants to skip the fetch round-trip.
curl -X POST https://trydock.ai/api/remix \
-H "Authorization: Bearer dk_..." \
-H "Content-Type: application/json" \
-d '{
"content": "# My idea\n\nFirst draft of the spec...",
"title": "My idea",
"source_url": "https://my-blog.com/my-idea"
}'Or pass source as a URL and Dock fetches it for you:
curl -X POST https://trydock.ai/api/remix \
-H "Authorization: Bearer dk_..." \
-H "Content-Type: application/json" \
-d '{ "source": "https://trydock.ai/blog/agents-borrowing-human-credentials/raw.md" }'Response shape:
{
"workspace_url": "https://trydock.ai/your-org/launch-tracker-2",
"workspace_slug": "launch-tracker-2",
"org_slug": "your-org"
}Attribution
Every workspace minted via /remix gets a one-line attribution at the top of the doc:
_Remixed from yourdomain.com on 2026-04-25._The reader can delete it once they're editing, it's their workspace, not ours. The link gets them back to the source if they want it.
FAQ
Does the remix count toward my workspace cap?
Yes, same as any new workspace, it counts toward the plan cap on the creator's org. Free is 20 workspaces, Pro is 200, Scale is 1,000.
Can my agent remix on behalf of a user?
Yes. Pass the agent's API key as Authorization: Bearer dk_... on POST /api/remix. The signed-agent inheritance rule applies: the workspace lands in the agent's org, both the agent and its owning user are enrolled as workspace owners.
Can I use this on private content?
v0 fetches public URLs only. For private content, use the programmatic POST /api/remix with the markdown passed directly in the body, no fetch round-trip, no exposure of the source.
What about non-markdown sources?
Markdown only. HTML sources aren't accepted, no regex strip is safe enough to handle adversarial inline-script payloads without dropping legitimate markdown features along the way. Publish a .md mirror of your content for /remix to fetch. Most static-site generators (Astro, Hugo, Jekyll, Eleventy, Next.js) can expose this with one route.
Frequently asked questions
- What is Open in Dock?
- A one-click button you embed on any post, doc, or template that lets readers fork the content into their own Dock workspace. Same pattern as 'Open in CodePen' or 'Open in StackBlitz'; your content stays where it is, readers get an editable copy.
- How do I add an Open in Dock button to my site?
- Embed the badge HTML snippet (`<a href="https://trydock.ai/remix?source=...">`) with a link to your raw markdown. Dark + light badge variants ship in the docs; copy the SVG and serve it from your own host.
- What content can readers Open in Dock from my site?
- Markdown only. Pass the raw .md URL via `?source=…`. Dock fetches, sanitizes, and seeds the new workspace's doc body. HTML sources aren't accepted (script-injection risk) but most static-site generators can expose a `.md` mirror with one route.
- How does the reader's Dock workspace get attribution?
- The fork includes the source URL in the workspace metadata. Reader's principal is the workspace creator; the original author is preserved as the source. Useful for tracking where forks came from for partnership analytics.
- Can I rate-limit Open in Dock per source URL?
- Source URLs are rate-limited globally to prevent abuse (DoS via repeated forks). Per-URL caps + custom limits available on Pro+ tier; email support to set up.
- What's the POST /api/remix endpoint for?
- Programmatic alternative to the badge: pass markdown directly in the request body, get back a workspace URL. Skips the fetch round-trip; useful for partners with content that's not publicly hostable.
- Does Open in Dock work without a Dock account?
- Yes for the read flow (the new workspace is created, the URL is returned). To edit the forked content the reader needs to sign in. The sign-in flow lands them back at the forked workspace seamlessly.
- Can I customize the Open in Dock button design?
- Yes. The badge SVG ships with both dark + light variants; you can also build your own button (any styling) as long as it links to `https://trydock.ai/remix?source=…`. Brand-asset license at trydock.ai/brand.
- Why does Open in Dock only accept markdown?
- Sanitizing arbitrary HTML safely is a moving target; markdown's grammar is bounded and well-understood. Markdown-only is a security guarantee, not a limitation; every static-site generator can produce a .md mirror with one route.
- Can I use Open in Dock for templates I sell?
- Yes. Publish your template as markdown, embed the Open in Dock button with `?source=` pointing at your hosted .md. Readers fork into their own workspace; payment + license tracking is your responsibility (handle via your store; Dock hosts the workspace).