Source of truth
The active marketing context gives people and agents one approved model of the product, audience, positioning, proof and hypotheses.
System documentation
Learn how to initialize the context, run developer-marketing work through explicit states, connect your agents and feed measured results back into the next decision.
Bootstrap
Quiver is an agentic developer-marketing system. It keeps product context, customer evidence, active work, shipped output and measured results connected so people and agents operate from the same approved state.
01
Name the organization and choose its slug. Hosted workspaces get a shared address at your-slug.quivergtm.dev.
02
Founder includes up to three seats. Team includes unlimited seats. Both hosted plans include the current hosted feature set.
03
Add Anthropic, OpenAI, Google, OpenRouter or another OpenAI-compatible endpoint. Your account determines model cost and usage policy.
04
Paste the website or describe the product. Quiver drafts the starting model; you review assumptions before relying on it.
05
Onboarding ends by handing you an MCP key, shown once, plus your workspace MCP URL. Browser clients can sign in with OAuth instead.
06
Choose Strategy, Create, Feedback, Analyze or Optimize. Every session starts from the active approved context.
07
Save the work, move it through production states, log the result and review what should change before the next cycle.
Architecture
Quiver applies familiar engineering properties to developer marketing. These are product behaviors—not a metaphor layered over generic chat.
The active marketing context gives people and agents one approved model of the product, audience, positioning, proof and hypotheses.
Context and artifacts keep their history. You can inspect changes, restore earlier versions and prevent silent drift.
Artifacts move through Draft → Review → Approved → Live → Archived. Generated output does not become published truth by accident.
The Content API serves approved content to websites. MCP lets external agents operate the system through structured tools.
Campaigns connect the context, evidence, sessions, content, tasks and outcomes behind an initiative.
Results can produce proposed context changes. A human reviews what the system carries into the next cycle.
Team boundary
Model layer
Agent runtime
Modes give the agent a job boundary and load the context most relevant to that job. Pick one directly or describe the outcome you need and let Quiver route the session.
Use for positioning, ICP, message architecture, campaign planning and decisions that shape what the team should do.
Use for production work. Choose the artifact type and build from approved context, relevant evidence and earlier work.
Use for qualitative input such as call notes, objections and reactions. Turn raw evidence into findings, next steps and proposed context changes.
Use for interpreting campaign, content or channel results. Separate observations from conclusions and preserve what the team should learn.
Use for improving existing pages, copy, signup flows and onboarding. Evaluate the current work against the active audience and positioning.
Source of truth
The active context stores the product model agents should use: positioning, ICP, messaging, customer language, proof, hypotheses and brand voice.
Production state
Operating scope
A campaign is the scope that connects an initiative's sessions, evidence, artifacts, content, tasks and performance. It is how Quiver keeps the plan, execution and outcome traceable.
Content infrastructure
Content in Quiver keeps markdown, production state, SEO and social metadata, authorship, tags, repurposing lineage, distribution records and metric snapshots together.
Live URLs are recorded for you
Set your public site once in Settings → API tokens: the site address (for example https://www.example.com) and the path your content lives at (for example /blog/{slug}, which defaults to /{slug}). From then on, publishing a piece records a website distribution with its live URL automatically, and renaming the slug of a published piece updates that same record instead of adding another. Nothing is duplicated if you publish twice, and a workspace with no public site configured is unaffected.
Content API
Published content is available as structured JSON with its markdown body and SEO/social metadata. Quiver remains the editorial source of truth while the website controls presentation.
GET https://quivergtm.dev/api/public/content
GET https://quivergtm.dev/api/public/content/[slug]Release notes
A changelog is a content type, not a separate product. Entries are content pieces with contentType: changelog, so they move through the same draft and published states, carry the same SEO and tags, and are served by the same public Content API as everything else.
changelog-drafting skill tells it how to turn them into release notes: grouped by user-visible change rather than by commit, leading with what someone can now do, internal refactors left out, one short paragraph each. It saves the result through MCP as a draft.v2.4.0 becomes the release label), and publish when it reads the way you want it to. Nothing is published on your behalf./api/public/content?contentType=changelog, so your site renders them wherever you want. Quiver’s own changelog, at /changelog, is that API rendered — full entries inline, newest first, grouped by month, with its own RSS feed.Quiver never talks to GitHub. Your agent already has whatever repository access you gave it; Quiver’s job is to store the entry, keep its history and publish it.
Evidence layer
Store calls, interviews, surveys, reviews, forums, support tickets, social posts, community exports and field notes beside the work they should influence.
Feedback loop
pending, approved or rejected.Work layer
The built-in task system is part of hosted Quiver and is not included in the open-source edition.
list_tasks, create_task, update_task and complete_task.Feedback
The speech-bubble button in the workspace header, next to notifications and the theme toggle, opens the feedback form from anywhere in the app. One form covers both — it asks whether you are reporting a bug or requesting a feature, so there is nothing to choose before you start typing.
The form can also receive three optional fields describing the situation, so nobody has to ask what you were doing: userEmail, replayUrl — a link to your PostHog session replay, so the exact session can be watched back rather than reconstructed from memory — and quiverContext, a single line holding your workspace, plan, user id and role, the page you were on and the id of the object it shows, the deploy’s git commit and environment, your browser, viewport, timezone and locale, and the last few JavaScript errors your browser raised.
Those three are sent on every submission but are only recorded if the form declares a hidden field with the matching name; Fillout ignores the rest. So a form that declares none of them still works perfectly, and adding one starts capturing it immediately with no change to Quiver.
Nothing you wrote is attached automatically. No prompts, session messages, artifact, content or research bodies, context values, object titles or API keys are ever included — only what you type into the form itself.
Agent interface
MCP lets compatible agents read and write Quiver through structured tools. Your agent environment can keep its broader context and connections while Quiver remains the system of record for developer-marketing work.
Open Settings → Connectors → Add custom connector and paste the full workspace MCP URL:
https://<your-workspace>.quivergtm.dev/api/mcpKeep the detected OAuth settings: Sign in now, automatic client registration and no custom request headers. Approve the connection after Quiver sign-in. The workspace comes from the URL and actions are attributed to the signed-in member. Add and approve each workspace separately.
For clients that support a static authorization header, create an API token with the mcp scope in Settings → API tokens.
{
"mcpServers": {
"quiver": {
"type": "http",
"url": "https://<your-workspace>.quivergtm.dev/api/mcp",
"headers": { "Authorization": "Bearer qvr_..." }
}
}
}Tokens are workspace-scoped and revocable. OAuth-capable local clients can use the browser sign-in flow instead of storing a static token.
Context: get_context, get_context_history, propose_context_update, apply_context_update, restore_context_version
Campaigns: list_campaigns, get_campaign, create_campaign, update_campaign, update_campaign_status
Artifacts: list_artifacts, get_artifact, save_artifact, update_artifact, update_artifact_status
Performance: log_performance, get_performance_log, get_close_the_loop_queue, list_proposals, action_proposal
Content: list_content, get_content, save_content, update_content, add_distribution, log_content_metrics, get_content_metrics, get_content_calendar
Research: list_research_entries, get_research_entry, save_research_entry, list_quotes, get_linear_payload
Sessions: list_sessions, get_session
Tasks: list_tasks, create_task, update_task, complete_task
Workspace: get_dashboard_summary
Use propose_context_update when a change needs human review. Use apply_context_updateonly when a person explicitly asks to change the active context immediately.
Packaging
MIT licensed and free to self-host. A strong fit for technical founders and startups comfortable running the application, database, authentication and updates. The built-in task system is not included.
Ready-to-use shared workspaces, simple team invitations, managed infrastructure and hosted-only features such as tasks. Founder supports three seats; Team supports unlimited seats.