User Guide

What Is lore.farm?

lore.farm is a collaborative storytelling platform that bring writers together under a shared universe, and lets their contributions (posts, stories, conversations) become the living record of their collective fictional world.

Worlds

A world is a shared fictional setting (like Westeros or Forgotten Realms), identified by a domain name under the control of a loremaster who sets contribution and membership policies. Each world has six configurable policies:

Membership
Who can join the world and contribute?
Open — anyone can join as a member.
Invite Only — the loremaster or a curator must invite you to join.
Lore
Who can submit lore to the world?
Anyone — any visitor may contribute.
Members — only members of the world may contribute.
Curators — only appointed curators and the loremaster.
Canon
Who can promote lore to canon?
Anyone — any member of the world may canonize content.
Curators — only appointed curators and the loremaster.
Loremaster — only the world's creator.
Content
What content can be added to the world?
Anything — any content from any Atmosphere Account.
Members Only — only posts authored by members of this world.
Owner Only — only posts authored by the loremaster.
Privileges
Who can bypass the content policy?
Nobody — the content policy applies to everyone equally.
Curators — curators can declare any content regardless of origin.
Loremaster — only the loremaster may bypass the rule.
Appointments
Who can add new curators?
Loremaster — only the loremaster can appoint curators.
Curators — any curator can appoint others.

Roles

  • Loremaster — Creates and controls the world. Manages all settings and membership, and appoints curators.
  • Curator — Improves the world by curating lore, promoting canon, and managing memberships.
  • Member — Joins various worlds and contributes lore to their shared stories.

Lore & Canon

Contributions in a world are organised into two tiers:

  • Lore — Posts, stories, conversations, and other narrative content is declared as relevant to a world.
  • Canon — Important or authoritative content is canonized to establish the narrative truth of a world.

These declarations are records separate from the content itself and can be modified or withdrawn without impacting the source material, allowing content to exist independently from the worlds it is submitted to.

Content Types

lore.farm currently supports three types of content. Each renders differently in the world feed.

Bluesky Post
app.bsky.feed.post

Short-form posts up to 300 characters with optional images. These represent passing words and thoughts, conversations, or brief updates about character actions or world events.

Standard.site Story
site.standard.document

Long-form stories published via standard.site. These are used to provide in-depth narratives, lengthy character developments, detailed world building, and full story chapters.

Branchline Bud
ink.branchline.bud

Narrative branches composed in branchline.ink support brief narrative chapters (500 words) with branching paths that allow multiple storylines to unfold from various different authors.

Getting Started

Discover New Worlds

Explore Worlds and enjoy their narrative content and unique communities. No account is required to browse.

Joining a World

Sign-In to access your Dashboard and join any open worlds, or any you are invited to participate in.

Contributing Lore

After joining a world, visit the Compose tab in your Dashboard to declare existing content, or choose a format to write any new content. Once ready, select the worlds you wish to submit to, and declare it as lore!

Everything you've contributed, across all worlds, is visible in your Contributions tab.

Creating a World

From the Dashboard visit the Worlds tab and click New World. You will need a domain name that you control.

Verify it by serving your DID via https://yourdomain/.well-known/atproto-did or adding a DNS TXT record:

_atproto.yourworld.example.  IN  TXT  "did=did:plc:your-did-here"

You can find your DID on bsky.app under Settings → Privacy → Advanced → Your DID.

Dashboard Overview

  • Worlds — Manage worlds you own, view worlds you've joined, accept invitations, and browse others.
  • Stream — A live feed of lore and canon activity across your worlds, with various sorting filters.
  • Compose — Write new lore or declare existing content as part of any worlds you have permissions for.
  • Contributions — Review everything you've contributed across every world.
  • Notifications — Events from your worlds, including invitations, memberships, and canonizations.

Technical Details

lore.farm indexes custom farm.lore.* record collections from users' AT Protocol repositories in real-time via Jetstream. All data lives in your own repo and is portable across any compatible server.

lore.farm record collections:

  • farm.lore.world — World registration and settings
  • farm.lore.character — World membership record
  • farm.lore.content — Lore declarations
  • farm.lore.canon — Canon promotions
  • farm.lore.curator — Curator appointments
  • farm.lore.invited — Membership invitations
  • farm.lore.banished — Banishments from a world
  • farm.lore.remove — Content removal records

Supported external content collections:

  • app.bsky.feed.post — Bluesky short-form posts
  • site.standard.document — Standard.site long-form stories
  • ink.branchline.bud — Branchline narrative branches
GET /api/worlds/indexed

List all registered worlds.

GET /api/worlds/:domain/content/indexed

Validated lore declarations for a world.

GET /api/worlds/:domain/canon/indexed

Validated canon promotions for a world.

GET /api/worlds/:domain/stats/indexed

Aggregate counts (members, lore, canon, curators).

GET /api/docs

Full API documentation.