Shared data model specifications for the Pubky social app ecosystem, with pubky.app as the reference implementation.
Note: This component is NOT part of Pubky Core. It is part of the Pubky social app stack.
Overview
pubky-app-specs defines the canonical data schemas for social application data stored on Pubky homeservers. It provides validation rules, serialization logic, and type definitions used by both Pubky apps and the Pubky Nexus indexer to ensure interoperability with pubky.app.
- Repository: https://github.com/pubky/pubky-app-specs
- License: MIT
- Platforms: Rust (native), WASM, JavaScript (npm:
pubky-app-specs)
Data Models
All data is stored under /pub/pubky.app/ on the user’s homeserver. Key models include:
- PubkyAppUser — User profile (name, bio, image, links, status)
- PubkyAppPost — Posts with content, kind, parent, embed, attachments
- PubkyAppFile — File metadata (name, src, content_type, size)
- PubkyAppTag — Tags on URIs (label + target)
- PubkyAppBookmark — Bookmarked URIs
- PubkyAppFollow / PubkyAppMute — Social relationships
See the repository for the full schema reference, ID generation rules, validation constraints, and supported post types (short text, long-form, image, video, link, etc.).
Role in Ecosystem
Compatible apps ──write──> homeserver (/pub/pubky.app/...)
│
▼ events
Pubky Nexus (indexer) ──reads──> indexes to Redis/Neo4j
Both use pubky-app-specs for schema validation