A Zeens-only photo post. Structurally a subset of app.bsky.feed.post, but written to a Zeens-owned collection so it is NOT indexed by the Bluesky AppView and never appears on Bluesky. Used when the creator disables 'Post to Bluesky'. Carries the same app.zeens.v marker and supports the full Zeens feature set (likes, reposts, replies, collections, search, EXIF, film, location) via app.zeens.postMeta, which references this record by AT-URI.
tid
Timestamp-based ID
Properties
app.zeens.film
integer
Optional
Present (value 1) when the post is marked as a film/analog shot.
app.zeens.v
integer
Required
Zeens version marker (always 1). Lets firehose + Lua filters recognise Zeens content.
createdAt
string
datetime
Required
Client-declared timestamp when this post was originally created.
embed
union
Optional
Image embed. Reuses Bluesky embed lexicons so existing image-rendering paths work unchanged.
facets
array
of
ref
app.bsky.richtext.facet
Optional
Rich-text facets (mentions, links, tags) over text, reusing the Bluesky richtext lexicon.
langs
array
of
string
language
Optional
Indicates language(s) of the caption text.
maxLength: 3 itemsreply
ref
#replyRef
Optional
Reply metadata for Zeens-only threads. parent/root reference app.zeens.post URIs.
text
string
Optional
Caption text. Matches app.bsky.feed.post#text semantics.
maxLength: 3000 bytesmaxGraphemes: 300 graphemesView raw schema
{
"description": "A Zeens-only photo post. Structurally a subset of app.bsky.feed.post, but written to a Zeens-owned collection so it is NOT indexed by the Bluesky AppView and never appears on Bluesky. Used when the creator disables 'Post to Bluesky'. Carries the same app.zeens.v marker and supports the full Zeens feature set (likes, reposts, replies, collections, search, EXIF, film, location) via app.zeens.postMeta, which references this record by AT-URI.",
"key": "tid",
"record": {
"properties": {
"app.zeens.film": {
"description": "Present (value 1) when the post is marked as a film/analog shot.",
"type": "integer"
},
"app.zeens.v": {
"description": "Zeens version marker (always 1). Lets firehose + Lua filters recognise Zeens content.",
"type": "integer"
},
"createdAt": {
"description": "Client-declared timestamp when this post was originally created.",
"format": "datetime",
"type": "string"
},
"embed": {
"description": "Image embed. Reuses Bluesky embed lexicons so existing image-rendering paths work unchanged.",
"refs": [
"app.bsky.embed.images",
"app.bsky.embed.recordWithMedia"
],
"type": "union"
},
"facets": {
"description": "Rich-text facets (mentions, links, tags) over text, reusing the Bluesky richtext lexicon.",
"items": {
"ref": "app.bsky.richtext.facet",
"type": "ref"
},
"type": "array"
},
"langs": {
"description": "Indicates language(s) of the caption text.",
"items": {
"format": "language",
"type": "string"
},
"maxLength": 3,
"type": "array"
},
"reply": {
"description": "Reply metadata for Zeens-only threads. parent/root reference app.zeens.post URIs.",
"ref": "#replyRef",
"type": "ref"
},
"text": {
"description": "Caption text. Matches app.bsky.feed.post#text semantics.",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
}
},
"required": [
"createdAt",
"app.zeens.v"
],
"type": "object"
},
"type": "record"
}