Early development · Feedback welcome

Patterns

Common components backed by open data structures. Standard shapes, styled for context. Any conforming payload renders in any conforming renderer.

Avatar

Identity at a glance. Handle, image, presence.

R
sm
RA
md
RA
lg
RA
online
{
  "type": "avatar",
  "handle": "riveraudio",
  "initials": "RA",
  "image": null,
  "status": "online"
}

Item Card

A thing that exists. Name, image, price, tags.

๐ŸŽง

Vintage Receiver

Pioneer SX-780 from 1978. Clean channels, warm sound.

250,000 sats
vintage audio pioneer
๐Ÿ“ฆ

Untitled Item

No description

{
  "type": "item",
  "name": "Vintage Receiver",
  "description": "Pioneer SX-780 from 1978.",
  "price": { "amount": 250000, "unit": "sat" },
  "emoji": "๐ŸŽง",
  "tags": ["vintage", "audio", "pioneer"],
  "images": ["/uploads/receiver-01.jpg"]
}

Post Card

A thing someone said. Content, author, time.

Just listed a batch of restored receivers. All tested, all clean.

A
audiosmith · 2 hours ago
{
  "type": "post",
  "body": "Just listed a batch of restored receivers.",
  "author": { "handle": "audiosmith" },
  "created_at": "2025-05-16T10:30:00Z"
}

Contact Card

A person or entity. Name, handle, bio, location.

RA

River Audio

@riveraudio

Restoring vintage hi-fi since 2019

Portland, OR

{
  "type": "contact",
  "name": "River Audio",
  "handle": "riveraudio",
  "bio": "Restoring vintage hi-fi since 2019",
  "location": "Portland, OR",
  "avatar": null
}

Transaction Receipt

A thing that happened. Amount, parties, txid.

Payment Confirmed

250,000 sats

From @audiosmith
To @riveraudio
txid a3f2...8b1c
{
  "type": "transaction",
  "amount": { "value": 250000, "unit": "sat" },
  "from": { "handle": "audiosmith" },
  "to": { "handle": "riveraudio" },
  "txid": "a3f2...8b1c",
  "status": "confirmed"
}

Listing Card

An item offered for sale. Item reference, price, seller, status.

๐ŸŽง

Vintage Receiver

Active

250,000 sats

A
audiosmith
{
  "type": "listing",
  "item": { "name": "Vintage Receiver", "emoji": "๐ŸŽง" },
  "price": { "amount": 250000, "unit": "sat" },
  "seller": { "handle": "audiosmith" },
  "status": "active"
}

Each pattern is a data shape plus a renderer. The shape is portable. The renderer is local.