Skip to content

Future: New LexiconsΒ #4

@hzoo

Description

@hzoo

See https://bsky.app/profile/henryzoo.com/post/3lndvzwoawc2i
https://www.pfrazee.com/blog/lexicon-guidance
https://fediversereport.com/atproto-explained-lexicons-and-video/

tradeoff between reusing feed.post and introducing a new lexicon for any app.

  • positive: chicken/egg issue with users for a new app is reduced since interop + network effect of bsky app itself. also moderation, search, etc is handled. posts on bsky automatically show up in the extension, even without them knowing in a sense.
  • negative: constrained by bsky schema (limited char count for annotations), and future changes.

new lexicon:

  • complete flexibility in schema.
  • fragmentation, versioning, maintenance.

skylight re-use's video lexicon, reelo created own.

example with reddit-like voting

  • it could be the exact same as a "like" but the direction property?
  • other idea would be to add direction to app.bsky.feed.like as an unspecced field? One could assume that a like is automatically an "upvote" and the extra field just indicates whether it's a downvote
{
  "lexicon": 1,
- "id": "app.bsky.feed.like",
+ "id": "com.henryzoo.feed.vote",
  "defs": {
    "main": {
      "type": "record",
      "description": "Record declaring an upvote or downvote of a piece of subject content.",
      "key": "tid",
      "record": {
        "type": "object",
-       "required": ["subject", "createdAt"],
+       "required": ["subject", "createdAt", "direction"],
        "properties": {
          "subject": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
          "createdAt": { "type": "string", "format": "datetime" },
+         "direction": {
+           "type": "string",
+           "description": "vote direction",
+           "enum": ["up", "down"]
+         }
        }
      }
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions