Skip to content

House of Panes: a store for free and premium Solid panes #194

Description

@melvincarvalho

Summary

A pane store — like WordPress plugins or mobile app stores — where users browse, install, and purchase Solid panes (UI components) for their pod. Free panes install directly. Premium panes are purchased with pod tokens via the HTTP 402 payment system.

The name

House of Panes — a store for Solid panes. Glass panes. Window panes. House of Panes. 🏠

How it works

Discovery

Each pane is a Solid resource with metadata:

{
  "@type": "SolidPane",
  "name": "DEX Pane",
  "description": "AMM trading interface for pod tokens",
  "version": "1.0.0",
  "author": "did:nostr:<pubkey>",
  "price": 0,
  "ticker": null,
  "screenshot": "/store/panes/dex/screenshot.png",
  "entry": "/store/panes/dex/index.js",
  "signature": "<NIP-98 signed hash of entry>"
}

Installation flow

Free panes:

  1. Browse GET /store/panes/ — container listing
  2. Pick a pane, read its metadata
  3. Install → copies/links the pane into user's pod UI config

Premium panes:

  1. Browse panes, see price in tokens (e.g. 100 PODS)
  2. POST /pay/.buy to acquire tokens (or already have them)
  3. Purchase pane → server verifies token balance, transfers tokens to pane author, unlocks download
  4. Pane author gets credited on the MRC20 trail — verifiable on Bitcoin

Mechanism

User                    Pod (House of Panes)              Pane Author
  |                            |                              |
  |-- GET /store/panes/ ------>|                              |
  |<-- pane listing -----------|                              |
  |                            |                              |
  |-- POST /store/buy -------->|                              |
  |   { "pane": "dex" }       |                              |
  |                            |-- transferToken() ---------->|
  |                            |   (user → author, N tokens)  |
  |                            |   anchored on Bitcoin        |
  |<-- 200 + pane entry URL ---|                              |
  |                            |                              |
  |-- install pane locally --->|                              |

What already exists

  • Token purchases: .buy endpoint acquires tokens
  • Token transfers: transferToken({ from, to }) moves tokens between users on the MRC20 trail
  • NIP-98 auth: identifies buyer and author by Nostr pubkey
  • Skill provenance (Skill provenance via blocktrails anchoring #183): signed panes = verified authorship
  • Solid containers: panes are just resources in a container — standard LDP

Pane types (starter ideas)

Pane Price Description
File Browser Free Basic file management
Markdown Viewer Free Render .md files
DEX / AMM Premium Token trading interface (#193)
Analytics Dashboard Premium Pod usage stats, balance charts
Social Feed Free ActivityPub timeline
Chat Premium Real-time messaging via WebSocket
Code Editor Premium Edit pod resources with syntax highlighting
Nostr Client Free Read/write Nostr events

Revenue model

  • Pane authors set their own price in tokens
  • Pod owner earns from token sales (primary market) and trading fees (AMM, AMM: Automated Market Maker for pod tokens #193)
  • Authors earn tokens which they can sell on secondary market or use on other pods
  • Portable: tokens are MRC20 proofs on Bitcoin — withdraw and use anywhere

Future

  • Pane registry: a federated index across pods (via ActivityPub?) so users discover panes from any pod
  • Reviews/ratings: stored as Solid resources, signed by purchasers
  • Auto-updates: pane metadata includes version, pod checks for updates
  • Pane SDK: minimal API surface for panes to read/write pod resources

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    nostrNostr relay, did:nostr auth, NIP-relatedpluginCould be implemented as a plugin (#206); core/plugin line defined in #564

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions