Skip to content

Which SDK for my stack?

Every SDK reads the same thing — your site’s published articles from the keyless static feed. They differ in how they fold those reads into your framework’s data and caching model. Pick by framework; the article shape is identical across all of them.

FrameworkPackageWhat it gives youRendering model
Next.js App Router@ghostwritr/nextA server-only data client (createGhostwritr) — getArticles, getArticle, generateStaticParams — plus a feed.updated revalidate handler.ISR, SSG, or dynamic SSR — one config flag.
Astro@ghostwritr/astroA Content Layer loader (ghostwritr({ siteId })) that syncs the feed into a content collection at build time.Static (build-time), with a redeploy hook for freshness.
React Router v7@ghostwritr/react-routerThe feed fetchers plus articleMeta — you write the route loader; it returns <title>/OG/canonical/JSON-LD.SSR (loaders run on the server).
Vue & Nuxt@ghostwritr/vueThe feed fetchers plus articleHead (a useHead() input) and an ArticleContent Markdown renderer.SSR/SSG in Nuxt, or plain Vue/Vite SSR.
Svelte & SvelteKit@ghostwritr/svelteThe feed fetchers plus an ArticleHead component (renders into svelte:head) and an ArticleContent renderer.SSR/SSG in SvelteKit.
Any JS runtime@ghostwritr/feedThe framework-agnostic core: fetchArticles, fetchArticle, the types, and the webhook signing helpers.Yours — bring your own caching via opts.fetch.
React (any renderer)@ghostwritr/react<ArticleContent> — renders an article’s Markdown body to React.Renderer-neutral; RSC-safe.

Reach for @ghostwritr/feed when no framework wrapper fits — a Cloudflare Worker, a build script, a CLI, or your own caching layer. The wrappers (next, astro, react-router, vue, svelte) all re-export its types and call its fetchers, so the contract is identical; you just supply your own caching through opts.fetch.