Standard.site landing page built in Next.js
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add documentation MDX content

+219
+41
content/docs/faq.mdx
··· 1 + # Frequently Asked Questions 2 + 3 + Common questions about Standard.site and implementing the lexicons. 4 + 5 + ## General 6 + 7 + ### What is Standard.site? 8 + 9 + Standard.site is a community-driven initiative to create shared lexicon schemas for long-form publishing on AT Protocol. It enables interoperability between different publishing platforms. 10 + 11 + ### Who created Standard.site? 12 + 13 + Standard.site emerged from conversations between developers building long-form platforms on AT Protocol. It's maintained by the community and grows as builders identify shared needs. 14 + 15 + ### Is Standard.site official? 16 + 17 + Standard.site is a community standard, not an official Bluesky or AT Protocol specification. However, it's designed to work seamlessly with the AT Protocol ecosystem. 18 + 19 + ## Technical 20 + 21 + ### Do I need to use all the lexicons? 22 + 23 + No. You can implement just the lexicons that make sense for your application. The schemas are designed to work independently while supporting richer integrations when combined. 24 + 25 + ### Can I extend the schemas? 26 + 27 + The standard focuses on shared metadata fields. You're free to add additional fields in your application, though they may not be understood by other platforms. 28 + 29 + ### How do I validate records? 30 + 31 + Use AT Protocol's standard validation mechanisms. The lexicon schemas define the expected structure, and records are validated against these schemas by the PDS. 32 + 33 + ## Contributing 34 + 35 + ### How can I contribute? 36 + 37 + Standard.site is developed in the open. Join the conversation on Bluesky, Tangled, or check the project on GitHub to propose changes or additions. 38 + 39 + ### How are changes decided? 40 + 41 + Changes are discussed openly in the community. The goal is to reach consensus among builders who are actively implementing the standard.
+33
content/docs/introduction.mdx
··· 1 + # Introduction 2 + 3 + **Standard.site** provides shared lexicons for long-form publishing on AT Protocol. 4 + 5 + ## What is Standard.site? 6 + 7 + Standard.site is a set of lexicon schemas that enable interoperability between long-form publishing platforms built on AT Protocol. By using shared schemas, content created on one platform can be understood and displayed by any other compatible platform. 8 + 9 + ## Why use shared lexicons? 10 + 11 + - **Interoperability**: Your content works across multiple platforms 12 + - **Portability**: Move your content without losing structure 13 + - **Consistency**: Shared vocabulary for publications, documents, and subscriptions 14 + 15 + ## Core concepts 16 + 17 + ### Publications 18 + 19 + A publication is a container for documents. Think of it as a blog, magazine, or newsletter. Each publication has metadata like a title, description, and avatar. 20 + 21 + ### Documents 22 + 23 + Documents are individual pieces of content within a publication. They contain the actual written content, along with metadata like title, publish date, and status. 24 + 25 + ### Subscriptions 26 + 27 + Subscriptions track relationships between users and publications, enabling follow functionality. 28 + 29 + ## Next steps 30 + 31 + - Read the [Quick Start](/docs/quick-start) guide to begin implementing 32 + - Explore the [Publication lexicon](/docs/lexicons/publication) schema 33 + - Check out the [FAQ](/docs/faq) for common questions
+61
content/docs/lexicons/document.mdx
··· 1 + import { Table } from '@/app/components/docs' 2 + 3 + # Document Lexicon 4 + 5 + The `site.standard.document` lexicon defines the schema for documents within publications. 6 + 7 + ## Overview 8 + 9 + A document represents an individual piece of content, such as a blog post or article. Documents belong to a publication and contain the actual written content along with metadata. 10 + 11 + ## Schema 12 + 13 + <Table 14 + headers={['Field', 'Type', 'Required', 'Description']} 15 + rows={[ 16 + ['publication', 'at-uri', 'Yes', 'Reference to parent publication'], 17 + ['title', 'string', 'Yes', 'Document title'], 18 + ['content', 'string', 'Yes', 'The document content'], 19 + ['status', 'string', 'Yes', 'One of: draft, published, archived'], 20 + ['visibility', 'string', 'No', 'One of: public, subscribers, private'], 21 + ['createdAt', 'datetime', 'Yes', 'When the document was created'], 22 + ['publishedAt', 'datetime', 'No', 'When the document was published'], 23 + ]} 24 + /> 25 + 26 + ## Status values 27 + 28 + - **draft**: Work in progress, not publicly visible 29 + - **published**: Live and visible according to visibility settings 30 + - **archived**: No longer actively displayed but still accessible 31 + 32 + ## Example 33 + 34 + ```typescript 35 + const document = { 36 + $type: 'site.standard.document', 37 + publication: 'at://did:plc:abc.../site.standard.publication/main', 38 + title: 'Getting Started with AT Protocol', 39 + content: '...', // Your content here 40 + status: 'published', 41 + visibility: 'public', 42 + createdAt: '2024-01-20T14:00:00.000Z', 43 + publishedAt: '2024-01-20T14:30:00.000Z', 44 + } 45 + ``` 46 + 47 + ## Content format 48 + 49 + The content field is intentionally flexible. Standard.site does not prescribe a specific content format, allowing platforms to use: 50 + 51 + - Markdown 52 + - HTML 53 + - JSON-based rich text 54 + - Custom formats 55 + 56 + This flexibility enables each platform to optimize for their use case while maintaining interoperability at the metadata level. 57 + 58 + ## Related 59 + 60 + - [Publication lexicon](/docs/lexicons/publication) - Parent container for documents 61 + - [Quick Start](/docs/quick-start) - Implementation guide
+37
content/docs/lexicons/publication.mdx
··· 1 + import { Table } from '@/app/components/docs' 2 + 3 + # Publication Lexicon 4 + 5 + The `site.standard.publication` lexicon defines the schema for publications. 6 + 7 + ## Overview 8 + 9 + A publication represents a container for documents, similar to a blog, magazine, or newsletter. Each user can have multiple publications. 10 + 11 + ## Schema 12 + 13 + <Table 14 + headers={['Field', 'Type', 'Required', 'Description']} 15 + rows={[ 16 + ['title', 'string', 'Yes', 'The publication title'], 17 + ['description', 'string', 'No', 'A brief description'], 18 + ['avatar', 'blob', 'No', 'Publication avatar image'], 19 + ['createdAt', 'datetime', 'Yes', 'When the publication was created'], 20 + ]} 21 + /> 22 + 23 + ## Example 24 + 25 + ```typescript 26 + const publication = { 27 + $type: 'site.standard.publication', 28 + title: 'Tech Insights', 29 + description: 'Weekly thoughts on technology and software development', 30 + createdAt: '2024-01-15T10:30:00.000Z', 31 + } 32 + ``` 33 + 34 + ## Related 35 + 36 + - [Document lexicon](/docs/lexicons/document) - Content within publications 37 + - [Quick Start](/docs/quick-start) - Implementation guide
+47
content/docs/quick-start.mdx
··· 1 + # Quick Start 2 + 3 + Get started with Standard.site lexicons in your AT Protocol application. 4 + 5 + ## Prerequisites 6 + 7 + - An AT Protocol application or PDS 8 + - Familiarity with AT Protocol lexicons and records 9 + 10 + ## Basic implementation 11 + 12 + ### 1. Reference the lexicons 13 + 14 + Standard.site lexicons are published under the `site.standard` namespace. The main lexicons are: 15 + 16 + - `site.standard.publication` - Publication metadata 17 + - `site.standard.document` - Document content and metadata 18 + - `site.standard.subscription` - User-publication relationships 19 + 20 + ### 2. Create a publication 21 + 22 + ```typescript 23 + const publication = { 24 + $type: 'site.standard.publication', 25 + title: 'My Blog', 26 + description: 'A personal blog about technology', 27 + createdAt: new Date().toISOString(), 28 + } 29 + ``` 30 + 31 + ### 3. Create a document 32 + 33 + ```typescript 34 + const document = { 35 + $type: 'site.standard.document', 36 + publication: 'at://did:plc:.../site.standard.publication/...', 37 + title: 'My First Post', 38 + content: '...', // Your content format 39 + status: 'published', 40 + createdAt: new Date().toISOString(), 41 + } 42 + ``` 43 + 44 + ## Next steps 45 + 46 + - Learn about the [Publication](/docs/lexicons/publication) schema in detail 47 + - Explore [Document](/docs/lexicons/document) fields and options