Once upon a time, I thought badges were keen and I started a project called Badger. It fizzled, for various reasons.

Thinking about it again. I'd like to maybe create a new thing with a few focused notions:

  • Stickers
    • Tiny pieces of collectable, shareable creative expression
    • Whimsical, not too serious
  • A Sticker in an intersection of:
    • Representation - an art image, animation, some text
    • Collaborators - Users who created it
    • Collectors - Users who have Acquired it
  • The Acquisition of a sticker consists of:
    • The agreement by a Collaborator that a Collector can claim a Sticker?
    • If I want to get fancy, maybe an Acquisition is represented by a JWT assertion signed by a key attached to the Sticker? This could be portable / federatable between Sticker instances.
    • Not-so-fancy, an Acquisition could just be a row in a database linking Collaborator + Collector + Sticker
  • Access control in Acquisition
    • Why? Trying to stay not too serious. I don't *really* want to build a micro-credential system.
    • But, a little exclusivity can be a fun game. Exclusive stickers could be fun - i.e. "you had to be there"
    • Should be able to easily Invite a Collector to Acquire a sticker without explicit action - i.e. here's a reusable code in Slack / Riot, use it to claim the sticker.
    • Should be able to make a Sticker more exclusive - i.e. ask for one with this form, you'll get it if we approve
    • Should be able to issue a limited-time invite - i.e. here's a code, it will work once or it will expire in 1 day
    • Discord has invite links, it's not a bad model for this I don't think
    • All of this could be implemented with signing keys and a system gating access to signing on behalf of Collaborators
  • Hosting / self-hosting
    • Glitch has become a thing since I last thought about Badger. If I build something that's as easy to host as cloning a Glitch project, that would be super-cool.
    • As a side benefit, something that's easily hosted on Glitch is probably easily hosted anywhere.
    • I don't want to host the main or canonical instance of this thing. I'd like to make it easy for folks to spin up their own StickerBook for their own group.
  • Federation / portability
    • Would be super cool.
    • Users with portable identity - personal info, avatars, signing keys, etc. Could reuse some ActivityPub / LinkedData ideas?
    • Would a Sticker be better represented as a JSON file? As HTML with meta headers?
      • JSON - can do a structured JSON document with lots of LinkedData reuse
      • HTML - easily shareable on social media by URL, include OpenGraph headers & etc
      • Maybe both? HTML with JSON embedded?
    • Stickers as portable units - maybe a JSON file encapsulating the Representation, Collaborators, public signing keys for Acquisitions?
    • Acquisitions as portable units - maybe a JSON file that includes the Sticker along with metadata and signing to represent the agreement by a Collaborator that a Collector has acquired the sticker
  • Building this thing
    • Could be interesting to start with a command-line tool to create Users, Collaborators, Collectors, Stickers and Acquisitions
    • Build the CLI tool around a library that can also be used in a web app
  • Random musings
    • Would Solid be at all interesting here, if only for interop?

Links