OpinlySDK

Opinly SDK

A headless content SDK — fetch your Opinly blog over a REST API and render it in any framework.

Opinly generates SEO-optimized blog content for your business. The Opinly SDK lets you publish that content inside your own application — no separate CMS, no markdown files, no iframe. You fetch your posts over a versioned REST API and render them with your own UI.

The SDK is headless and framework-agnostic. It ships data + content-rendering primitives only — you own the page layout. The same content renders in Next.js, Nuxt, SvelteKit, or any React/Vue/Svelte app.

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.

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.

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).