mirror of
https://github.com/versia-pub/docs.git
synced 2025-12-06 06:18:19 +01:00
docs: 📝 Finish main page, add guides
This commit is contained in:
parent
5ab772df21
commit
3545bf525f
22
app/page.mdx
22
app/page.mdx
|
|
@ -3,15 +3,14 @@ import { Resources } from '@/components/Resources'
|
|||
import { HeroPattern } from '@/components/HeroPattern'
|
||||
|
||||
export const metadata = {
|
||||
title: 'Lysand Documentation',
|
||||
description:
|
||||
'Introduction to the Lysand Protocol, a communication medium for federated applications, leveraging the HTTP stack.',
|
||||
title: 'Lysand Documentation',
|
||||
description: 'Introduction to the Lysand Protocol, a communication medium for federated applications, leveraging the HTTP stack.',
|
||||
}
|
||||
|
||||
export const sections = [
|
||||
{ title: 'Vocabulary', id: 'vocabulary' },
|
||||
{ title: 'Guides', id: 'guides' },
|
||||
{ title: 'Resources', id: 'resources' },
|
||||
{ title: 'Vocabulary', id: 'vocabulary' },
|
||||
{ title: 'Basic Concepts', id: 'basic-concepts' },
|
||||
{ title: 'Resources', id: 'resources' },
|
||||
]
|
||||
|
||||
<HeroPattern />
|
||||
|
|
@ -42,6 +41,15 @@ The Lysand Protocol uses the following terms:
|
|||
- Using the same nomenclature, an ActivityPub Implementation would be `Mastodon`, and an Instance would be `mastodon.social`.
|
||||
- **Federation**: The process of exchanging data between two or more **Instances**.
|
||||
|
||||
<Guides />
|
||||
## Philosophy
|
||||
|
||||
The Lysand Protocol is heavily inspired by the [ActivityPub](https://www.w3.org/TR/activitypub/) specification. It is designed to be simple and easy to implement, with a focus on the following concepts:
|
||||
- **Simple Structures**: Entities are represented as JSON objects. No JSON-LD, no complex data structures, just plain JSON.
|
||||
- **Modularity**: The protocol is divided into a **core protocol** and **extensions**. Implementations can choose to support only the core protocol or add extensions as needed.
|
||||
- **Namespacing**: To avoid extension conflicts, all extensions are namespaced.
|
||||
- **Signatures**: Most types of interactions **must** be signed with a private key. Unlike other protocols, signatures are **mandatory**, not optional.
|
||||
- **Developer-Friendliness**: Understanding and implementing your own Lysand server should be easy. Documentation is aimed at developers first.
|
||||
|
||||
{/* <Guides /> */}
|
||||
|
||||
<Resources />
|
||||
|
|
|
|||
|
|
@ -7,23 +7,6 @@ const guides = [
|
|||
name: "Authentication",
|
||||
description: "Learn how to authenticate your API requests.",
|
||||
},
|
||||
{
|
||||
href: "/pagination",
|
||||
name: "Pagination",
|
||||
description: "Understand how to work with paginated responses.",
|
||||
},
|
||||
{
|
||||
href: "/errors",
|
||||
name: "Errors",
|
||||
description:
|
||||
"Read about the different types of errors returned by the API.",
|
||||
},
|
||||
{
|
||||
href: "/webhooks",
|
||||
name: "Webhooks",
|
||||
description:
|
||||
"Learn how to programmatically configure webhooks for your app.",
|
||||
},
|
||||
];
|
||||
|
||||
export function Guides() {
|
||||
|
|
|
|||
|
|
@ -16,8 +16,6 @@ import type {
|
|||
import { GridPattern } from "./GridPattern";
|
||||
import { Heading } from "./Heading";
|
||||
import { ChatBubbleIcon } from "./icons/ChatBubbleIcon";
|
||||
import { EnvelopeIcon } from "./icons/EnvelopeIcon";
|
||||
import { UserIcon } from "./icons/UserIcon";
|
||||
import { UsersIcon } from "./icons/UsersIcon";
|
||||
|
||||
interface Resource {
|
||||
|
|
@ -33,11 +31,11 @@ interface Resource {
|
|||
|
||||
const resources: Resource[] = [
|
||||
{
|
||||
href: "/contacts",
|
||||
name: "Contacts",
|
||||
href: "/entities",
|
||||
name: "Entities",
|
||||
description:
|
||||
"Learn about the contact model and how to create, retrieve, update, delete, and list contacts.",
|
||||
icon: UserIcon,
|
||||
"Learn how Entities work and how to use them to transmit federated data.",
|
||||
icon: ChatBubbleIcon,
|
||||
pattern: {
|
||||
y: 16,
|
||||
squares: [
|
||||
|
|
@ -47,11 +45,11 @@ const resources: Resource[] = [
|
|||
},
|
||||
},
|
||||
{
|
||||
href: "/conversations",
|
||||
name: "Conversations",
|
||||
href: "/security",
|
||||
name: "Security",
|
||||
description:
|
||||
"Learn about the conversation model and how to create, retrieve, update, delete, and list conversations.",
|
||||
icon: ChatBubbleIcon,
|
||||
"Learn how to secure your Lysand implementation and protect your users' data.",
|
||||
icon: UsersIcon,
|
||||
pattern: {
|
||||
y: -6,
|
||||
squares: [
|
||||
|
|
@ -60,31 +58,6 @@ const resources: Resource[] = [
|
|||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
href: "/messages",
|
||||
name: "Messages",
|
||||
description:
|
||||
"Learn about the message model and how to create, retrieve, update, delete, and list messages.",
|
||||
icon: EnvelopeIcon,
|
||||
pattern: {
|
||||
y: 32,
|
||||
squares: [
|
||||
[0, 2],
|
||||
[1, 4],
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
href: "/groups",
|
||||
name: "Groups",
|
||||
description:
|
||||
"Learn about the group model and how to create, retrieve, update, delete, and list groups.",
|
||||
icon: UsersIcon,
|
||||
pattern: {
|
||||
y: 22,
|
||||
squares: [[0, 1]],
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
function ResourceIcon({ icon: Icon }: { icon: Resource["icon"] }) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue