Skip to content

Introduction

The Scribe ATP SDK is a TypeScript library for reading content published with Scribe CMS. Authors write and publish their content in Scribe CMS; the SDK is for developers who want to display that content in their own sites and applications.

Content published in Scribe CMS is stored on the author’s AT Protocol Personal Data Server (PDS) — a public, decentralised data store. The SDK handles everything between “I have an author’s handle” and “I have their articles”:

  • Resolving a handle (alice.bsky.social) to the author’s stable DID
  • Discovering which server hosts the author’s data
  • Fetching and normalising site and article records
  • Wiring up request cancellation so you don’t have to

@scribe-atp/core

Any framework, or no framework. Pure async functions with no runtime dependencies. Start here if you’re unsure.

@scribe-atp/react

React SPA or client-rendered components. Provides useSite and useArticle hooks.

@scribe-atp/react-router-framework

React Router v7 framework (server) mode. Loader factories that wire up request.signal automatically.

@scribe-atp/angular

Angular 16+. Provides ScribeService (Observable API) and injectSite / injectArticle (Signals API).

@scribe-atp/next

Next.js 13+ App Router. Factory for generateStaticParams and generateMetadata.

@scribe-atp/vue

Vue 3+. Provides useScribeSite and useScribeArticle composables.

@scribe-atp/nuxt

Nuxt 3+. Full Nuxt module with auto-imports and useAsyncData integration.

For SvelteKit, Astro, or any other meta-framework with server-side data loading, install @scribe-atp/core and call fetchSite / fetchArticle directly in your loaders or server components. See Other frameworks.

  • Node.js 22 or later
  • TypeScript 5.0 or later (optional but recommended — all packages ship full type declarations)

Before diving into code, read Core Concepts to understand the AT Protocol identity model and how Scribe organises Sites, Groups, and Articles. Then follow the Quickstart to fetch your first content in under 5 minutes.