OpinlySDK

Opinly Docs

Publish your Opinly content in your own app, and measure what it earns.

Opinly generates SEO-optimized blog content for your business. These docs cover the two ways you build on it.

Content — the Opinly SDK publishes your content inside your own application: no separate CMS, no markdown files, no iframe. You fetch posts over a versioned REST API and render them with your own UI. It's headless and framework-agnostic, shipping data and rendering primitives only — you own the layout.

Analytics — the pixel tracks what that content does. Which campaigns bring visitors, which visitors convert, and which of them turn into revenue. First-party, on your domain, no ad network in the middle.

The two work together — attributing a sale back to the post that earned it is the point — but you can use either on its own.

The package family

You only install the packages your framework needs. Everything builds on two foundations — a data client and an agnostic core — with thin framework adapters on top.

Every framework package also ships the analytics pixel, so the package you install for content is the same one you use for tracking — see Install the pixel.

PackageRole
@opinly/backendData client. Fetches your content over the /v1 REST API. Zero framework deps.
@opinly/sharedAgnostic core. Content rendering (HTML + element walker), SEO/JSON-LD builders, sitemap/RSS helpers, URL + image helpers. Zero framework deps.
@opinly/reactRender content as React elements (<OpinlyContent>).
@opinly/vueRender content as Vue components (<OpinlyContent>).
@opinly/svelteRender content in Svelte (<OpinlyContent>).
@opinly/nextNext.js glue: image rewrites, generateMetadata, JSON-LD <script>.
@opinly/nuxtNuxt SEO helper: opinlyHead()useHead().
@opinly/sveltekitSvelteKit SEO component: <OpinlySeo><svelte:head>.

How it fits together

@opinly/backend ──fetch──▶  your route  ──render──▶  @opinly/react / vue / svelte

                                 └──SEO──▶  @opinly/next / nuxt / sveltekit
  1. Fetch the content for a route with @opinly/backend (opinly.posts(), opinly.post(slug), …).
  2. Render the post body with your framework's renderer (<OpinlyContent>).
  3. Add SEO (metadata + JSON-LD) with your framework's meta-adapter.

Track what it earns

Pick your framework

New here?

Start with Sign up & get your API key, then the Quickstart to fetch and render a post in five minutes.

Using an AI builder (Lovable, v0, Bolt, Cursor)? Every page here is available as plain Markdown for your LLM — use the Copy for LLM button on any page, or feed it /llms-full.txt (the whole docs site as one file).