From fabrik
Guides building on AT Protocol (atproto/Bluesky): authoring Lexicons, app views, firehose consumption, DIDs/handles, repositories, records, XRPC endpoints, OAuth.
npx claudepluginhub maragudk/fabrik --plugin fabrikThis skill uses the workspace's default tool permissions.
A guide for building on atproto -- the protocol behind Bluesky and the broader atmosphere of interoperable apps. This file is the overview and a router; deep details live in `references/`.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
A guide for building on atproto -- the protocol behind Bluesky and the broader atmosphere of interoperable apps. This file is the overview and a router; deep details live in references/.
atproto is a federated protocol where users own a signed, content-addressed data repository that any service can replicate. Apps are mostly app views -- services that consume the network firehose, validate records against a Lexicon schema, index them, and expose a read API. Writes go to the user's PDS via XRPC.
Five concepts to keep in your head:
did:plc:... or did:web:...).com.example.fooBar).Real systems are made of four roles. An app you build is usually #3.
This SKILL.md is intentionally thin. For anything beyond a high-level question, jump to the right reference:
| You are doing | Read |
|---|---|
| Authoring a Lexicon (records, queries, procedures, subscriptions) | references/lexicon.md |
| Lexicon style guide -- naming, conventions, design patterns | references/lexicon-style.md |
| Working with DIDs, handles, AT URIs, NSIDs, TIDs, record keys | references/identity.md |
| Calling XRPC endpoints, handling errors, auth, proxying | references/xrpc.md |
| Reading repos, commits, MSTs, CAR files, the data model | references/repository.md |
Consuming the firehose / subscribeRepos, event framing | references/firehose.md |
| OAuth client implementation specifics | references/oauth.md |
| Designing an app view end-to-end (the most common task) | references/app-view.md |
| Picking a Go package from indigo, code sketches | references/indigo-go.md |
If a question spans several topics, start with app-view.md -- it stitches the others together.
github.com/bluesky-social/indigo). See references/indigo-go.md.These bite people the first time they build anything on atproto:
#identity events.$type is required on records, blobs, and union variants. Strict clients silently drop records without it.indexedAt for ordering.https://atproto.com/specs/atp -- starting point for everything below.
| Spec | URL |
|---|---|
| Lexicon | https://atproto.com/specs/lexicon |
| Data model | https://atproto.com/specs/data-model |
| Repository | https://atproto.com/specs/repository |
| XRPC | https://atproto.com/specs/xrpc |
| Sync / firehose | https://atproto.com/specs/sync |
| Event stream framing | https://atproto.com/specs/event-stream |
| OAuth | https://atproto.com/specs/oauth |
| DIDs | https://atproto.com/specs/did |
| Handles | https://atproto.com/specs/handle |
| NSIDs | https://atproto.com/specs/nsid |
| TIDs | https://atproto.com/specs/tid |
| Record keys | https://atproto.com/specs/record-key |
| AT URI | https://atproto.com/specs/at-uri-scheme |
| Blobs | https://atproto.com/specs/blob |
| Labels | https://atproto.com/specs/label |
| Cryptography | https://atproto.com/specs/cryptography |
| Permissions | https://atproto.com/specs/permission |
| Accounts | https://atproto.com/specs/account |
Worked examples: Statusphere tutorial (TS), indigo services (Go), Bluesky's canonical Lexicons (the best style reference).