Skip to main content

Pixelfed

Pixelfed is a photo sharing platform for the Fediverse, similar to Instagram.

Overview

PropertyValue
LanguagePHP (Laravel)
DatabaseMySQL/PostgreSQL
LicenseAGPL-3.0
Repositorygithub.com/pixelfed/pixelfed
Documentationdocs.pixelfed.org

ActivityPub Implementation

Actor Type

{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1"
],
"type": "Person",
"id": "https://pixelfed.social/users/alice",
"preferredUsername": "alice",
"name": "Alice",
"summary": "<p>Photography enthusiast</p>",
"inbox": "https://pixelfed.social/users/alice/inbox",
"outbox": "https://pixelfed.social/users/alice/outbox",
"followers": "https://pixelfed.social/users/alice/followers",
"following": "https://pixelfed.social/users/alice/following",
"icon": {
"type": "Image",
"url": "https://pixelfed.social/storage/avatars/alice.jpg"
}
}

Photo Posts

Pixelfed posts are Notes with Image attachments:

{
"type": "Note",
"id": "https://pixelfed.social/p/alice/12345",
"attributedTo": "https://pixelfed.social/users/alice",
"content": "<p>Beautiful sunset! #photography</p>",
"published": "2024-01-15T18:30:00Z",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://pixelfed.social/users/alice/followers"],
"sensitive": false,
"attachment": [
{
"type": "Image",
"mediaType": "image/jpeg",
"url": "https://pixelfed.social/storage/m/photo.jpg",
"name": "A colorful sunset over the ocean",
"width": 1920,
"height": 1080,
"blurhash": "LEHV6nWB2yk8pyo0adR*.7kCMdnj"
}
],
"tag": [
{
"type": "Hashtag",
"href": "https://pixelfed.social/discover/tags/photography",
"name": "#photography"
}
]
}

Collections (Albums)

{
"type": "Collection",
"id": "https://pixelfed.social/c/alice/vacation",
"name": "Summer Vacation",
"attributedTo": "https://pixelfed.social/users/alice",
"totalItems": 15,
"items": [
"https://pixelfed.social/p/alice/12345",
"https://pixelfed.social/p/alice/12346"
]
}

Stories

Pixelfed Stories are ephemeral content (24-hour expiration):

{
"type": "Note",
"id": "https://pixelfed.social/stories/alice/98765",
"attributedTo": "https://pixelfed.social/users/alice",
"published": "2024-01-15T10:00:00Z",
"expires": "2024-01-16T10:00:00Z",
"attachment": [
{
"type": "Image",
"url": "https://pixelfed.social/storage/stories/image.jpg"
}
]
}

Supported Activities

ActivitySupportNotes
CreatePhoto posts
DeletePost removal
LikeFavorites
AnnounceShares
FollowStandard
UndoAll reversible

Custom Extensions

PropertyTypeDescription
blurhashStringImage placeholder
widthIntegerImage width
heightIntegerImage height
expiresDateTimeStory expiration

API Endpoints

Standard Endpoints

GET /.well-known/webfinger
GET /.well-known/nodeinfo
GET /users/{username}
GET /p/{username}/{id}

Collections

GET /users/{username}/outbox
GET /users/{username}/followers
GET /users/{username}/following

Compatibility

Image Handling

  • Uses blurhash for placeholders
  • Includes dimensions in attachment
  • Alt text via name property

Federation Behavior

  • Photo posts appear as Notes in Mastodon
  • Multiple images shown as attachments
  • Albums may not fully federate

See Also