id.sifa.profile.project

sifa.id

{
  "id": "id.sifa.profile.project",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "name",
          "createdAt"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "URL of the project (website, repository, demo, etc.)."
          },
          "name": {
            "type": "string",
            "maxLength": 2560,
            "minLength": 1,
            "description": "Project name.",
            "maxGraphemes": 256
          },
          "labels": {
            "refs": [
              "com.atproto.label.defs#selfLabels"
            ],
            "type": "union",
            "description": "Self-label values for this project record."
          },
          "endedAt": {
            "type": "string",
            "description": "Project end date in YYYY-MM or YYYY-MM-DD format. Omit if ongoing."
          },
          "members": {
            "type": "array",
            "items": {
              "ref": "id.sifa.defs#projectMemberRef",
              "type": "ref"
            },
            "maxLength": 50,
            "description": "Other people who worked on this project. Each entry is a claim by the record author and is not self-verifying: the named person supplies the other half by publishing an id.sifa.confirmation record whose subject is this record and whose relation is id.sifa.defs#projectMember. Until they do, consumers must render the entry without their display name, avatar, or profile link. Confirming never puts this record on the named person's profile: it lives in the author's repository and the author can rename it at any time. A named person who wants the project on their profile keeps their own id.sifa.profile.project record and points its projectRef here."
          },
          "position": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Reference to the associated id.sifa.profile.position record, if applicable."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Client-declared timestamp when this record was originally created."
          },
          "startedAt": {
            "type": "string",
            "description": "Project start date in YYYY-MM or YYYY-MM-DD format."
          },
          "projectRef": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Reference to the same project as recorded elsewhere: another person's id.sifa.profile.project entry for the work you shared, or a first-class id.sifa.project.self record. Set when you were named as a member of someone else's entry and keep your own version of it, so consumers can tell the two describe one project instead of showing it twice."
          },
          "description": {
            "type": "string",
            "maxLength": 50000,
            "description": "Description of the project, the user's role, and outcomes.",
            "maxGraphemes": 5000
          }
        }
      },
      "description": "Record representing a single project."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "A project the user has worked on."
}

Validate Record

Validate a record against id.sifa.profile.project

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:2f2ahswozqy4v5lvu676375y
CID
bafyreielduwsmctwqhhseom3rfo2fngytozakzrbaxftrepgm3ssnayluy
Indexed At
2026-07-31 21:36 UTC
AT-URI
at://did:plc:2f2ahswozqy4v5lvu676375y/com.atproto.lexicon.schema/id.sifa.profile.project

Version History (5 versions)

Referenced Schemas (2)

Lexicon Garden

@