Social Sample Data
Sample ActivityPub actors, notes, and inbox activities for previewing social UI.
- Viewer
- @ada@social.example
- Actors
- 6
- Timeline objects
- 4
- Inbox activities
- 6
{
"id": "https://fediverse.example/users/mira/posts/coastline-drift",
"type": "Note",
"attributedTo": {
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://fediverse.example/users/mira",
"type": "Person",
"preferredUsername": "mira",
"name": "Mira Halvorsen",
"summary": "<p>Cartographer. I make maps of things that are hard to see.</p>",
"url": "https://fediverse.example/users/mira",
"icon": {
"type": "Image",
"mediaType": "image/svg+xml",
"url": "https://api.dicebear.com/9.x/thumbs/svg?seed=mira",
"name": "Mira Halvorsen avatar"
},
"image": {
"type": "Image",
"mediaType": "image/svg+xml",
"url": "https://api.dicebear.com/9.x/shapes/svg?seed=mira-cover",
"name": "Mira Halvorsen cover image"
},
"inbox": "https://fediverse.example/users/mira/inbox",
"outbox": "https://fediverse.example/users/mira/outbox",
"followers": "https://fediverse.example/users/mira/followers",
"following": "https://fediverse.example/users/mira/following",
"published": "2019-07-21T12:00:00.000Z",
"attachment": [
{
"type": "PropertyValue",
"name": "Atlas",
"value": "https://maps.example/mira",
"verifiedAt": "2025-06-05T15:00:00.000Z"
},
{
"type": "PropertyValue",
"name": "Location",
"value": "Bergen, Norway"
}
]
},
"content": "<p>Spent the week redrawing a 1:25000 coastline by hand. The shoreline has moved 40 metres inland since the 1984 survey.</p><p>Every map is a snapshot of a place that has already changed. #cartography #openstreetmap</p>",
"published": "2025-06-12T14:26:00.000Z",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://fediverse.example/users/mira/followers"
],
"url": "https://fediverse.example/users/mira/posts/coastline-drift",
"inLanguage": "en",
"attachment": [
{
"type": "Image",
"url": "https://api.dicebear.com/9.x/shapes/svg?seed=coastline",
"name": "Hand-drawn coastline contour map with annotated survey markers",
"width": 1200,
"height": 800
},
{
"type": "Image",
"url": "https://api.dicebear.com/9.x/shapes/svg?seed=survey",
"name": "Comparison overlay of the 1984 and current shoreline",
"width": 1200,
"height": 800
}
],
"tag": [
{
"type": "Hashtag",
"name": "#cartography",
"href": "https://fediverse.example/tags/cartography"
},
{
"type": "Hashtag",
"name": "#openstreetmap",
"href": "https://fediverse.example/tags/openstreetmap"
}
],
"location": {
"type": "Place",
"name": "Bergen, Norway",
"latitude": 60.39,
"longitude": 5.32
},
"likes": {
"type": "Collection",
"id": "https://fediverse.example/users/mira/posts/coastline-drift/likes",
"totalItems": 214
},
"shares": {
"type": "Collection",
"id": "https://fediverse.example/users/mira/posts/coastline-drift/shares",
"totalItems": 38
},
"replies": {
"type": "Collection",
"id": "https://fediverse.example/users/mira/posts/coastline-drift/replies",
"totalItems": 2,
"items": [
{
"id": "https://social.example/users/ada/posts/coastline-drift-reply-1",
"type": "Note",
"attributedTo": {
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://social.example/users/ada",
"type": "Person",
"preferredUsername": "ada",
"name": "Ada Okoye",
"summary": "<p>Front-end engineer. Building small tools for large groups of people.</p>",
"url": "https://social.example/users/ada",
"icon": {
"type": "Image",
"mediaType": "image/svg+xml",
"url": "https://api.dicebear.com/9.x/thumbs/svg?seed=ada",
"name": "Ada Okoye avatar"
},
"image": {
"type": "Image",
"mediaType": "image/svg+xml",
"url": "https://api.dicebear.com/9.x/shapes/svg?seed=ada-cover",
"name": "Ada Okoye cover image"
},
"inbox": "https://social.example/users/ada/inbox",
"outbox": "https://social.example/users/ada/outbox",
"followers": "https://social.example/users/ada/followers",
"following": "https://social.example/users/ada/following",
"published": "2020-01-14T10:30:00.000Z",
"attachment": [
{
"type": "PropertyValue",
"name": "Website",
"value": "https://ada.example",
"verifiedAt": "2025-06-10T15:00:00.000Z"
},
{
"type": "PropertyValue",
"name": "Location",
"value": "Lagos, Nigeria"
},
{
"type": "PropertyValue",
"name": "Pronouns",
"value": "she/her"
}
]
},
"content": "<p>Is the 1984 survey digitised anywhere? I would love to run the two through a diff.</p>",
"published": "2025-06-12T14:34:00.000Z",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://social.example/users/ada/followers"
],
"url": "https://social.example/users/ada/posts/coastline-drift-reply-1",
"inLanguage": "en",
"inReplyTo": "https://fediverse.example/users/mira/posts/coastline-drift",
"likes": {
"type": "Collection",
"id": "https://social.example/users/ada/posts/coastline-drift-reply-1/likes",
"totalItems": 12
},
"shares": {
"type": "Collection",
"id": "https://social.example/users/ada/posts/coastline-drift-reply-1/shares",
"totalItems": 0
},
"replies": {
"type": "Collection",
"id": "https://social.example/users/ada/posts/coastline-drift-reply-1/replies",
"totalItems": 0,
"items": []
}
},
{
"id": "https://social.example/users/tobi/posts/coastline-drift-reply-2",
"type": "Note",
"attributedTo": {
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://social.example/users/tobi",
"type": "Person",
"preferredUsername": "tobi",
"name": "Tobi Ferrand",
"summary": "<p>Sound designer. Field recordings from very cold places.</p>",
"url": "https://social.example/users/tobi",
"icon": {
"type": "Image",
"mediaType": "image/svg+xml",
"url": "https://api.dicebear.com/9.x/thumbs/svg?seed=tobi",
"name": "Tobi Ferrand avatar"
},
"image": {
"type": "Image",
"mediaType": "image/svg+xml",
"url": "https://api.dicebear.com/9.x/shapes/svg?seed=tobi-cover",
"name": "Tobi Ferrand cover image"
},
"inbox": "https://social.example/users/tobi/inbox",
"outbox": "https://social.example/users/tobi/outbox",
"followers": "https://social.example/users/tobi/followers",
"following": "https://social.example/users/tobi/following",
"published": "2021-03-08T09:00:00.000Z"
},
"content": "<p>The hand-drawn linework is beautiful. Are you inking these on vellum?</p>",
"published": "2025-06-12T14:39:00.000Z",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://social.example/users/tobi/followers"
],
"url": "https://social.example/users/tobi/posts/coastline-drift-reply-2",
"inLanguage": "en",
"inReplyTo": "https://fediverse.example/users/mira/posts/coastline-drift",
"likes": {
"type": "Collection",
"id": "https://social.example/users/tobi/posts/coastline-drift-reply-2/likes",
"totalItems": 5
},
"shares": {
"type": "Collection",
"id": "https://social.example/users/tobi/posts/coastline-drift-reply-2/shares",
"totalItems": 0
},
"replies": {
"type": "Collection",
"id": "https://social.example/users/tobi/posts/coastline-drift-reply-2/replies",
"totalItems": 0,
"items": []
}
}
]
}
}Installation
npx shadcn@latest add https://ui.uptoolkit.com/r/social-sample-data.jsonUsage
Fixtures shaped exactly like real ActivityPub responses, so the blocks and pages in this registry render standalone before you have a server to talk to. The social blocks default their data props to these values; swap them for your fetch and delete the file.
import {
SAMPLE_NOW,
sampleFeed, // OrderedCollection of Create and Announce activities
sampleInbox, // OrderedCollection of Like, EmojiReact, Announce, Follow, Create
sampleFollowers, // Actor[]
sampleSuggestions, // Actor[]
sampleTimeline, // Object[]
samplePost, // Note with attachments, tags, location, and replies
sampleReplies, // Object[], including one nested reply
sampleViewer, // the signed-in Actor
sampleAuthor, // a remote Actor on another domain
sampleCounts,
} from "@/lib/social-sample-data";Timestamps derive from the fixed SAMPLE_NOW clock rather than Date.now(), so relative times are
stable between server and client renders. Pass it as the now prop of any component that formats a
timestamp.
The set deliberately covers the awkward cases: a remote actor on a second domain, an
Organization actor, an actor with manuallyApprovesFollowers, a sensitive post behind a content
warning, an Article, an Announce boost, a post with an audio attachment and a Mention, and
verified rel="me" profile fields.