Likes as a service

A blog post / web page “liking” system.

Very simple “heart” / “like” / “thumbs-up” system that a person can install some javascript in their web page or blog.

Users visit the page and can “like” it, much like here in Discourse forum or like the Medium clapping widget.

Building this with the Fission SDK

This would be a “Likes App”. When a person first interacts with the widget on the page, if they are logged in with a Fission account already, then you need to authorize the liking app.

If you don’t have a Fission account, you go through a flow of creating a new account, and then authorizing the liking app.

Then you’re back on the source page, and can see that the widget state shows that you’ve liked it.

If you squint, this could be a bookmarking system, a search index system, or any number of other things that follows this pattern.

1 Like

Wanted to post some thoughts on implementation, but I might be completely wrong :slight_smile:

Like is written to the user’s account as a simple JSON file, in their public tree. (So we should let people know that likes are public). Publicly, so that it can be queried by the page where the widget lives.

  "date": "TIMESTAMP",
  "url": "",
  "action": "liked"

Hmmm. Could we do and change that string into a content-address, so we essentially index by the content addressed version of the web address?


  • could look at how ActivityPub / ActivityStreams stores such a thing?
  • might just be too complicated, but for reference here is an ActivityStream “Like” action
1 Like

I like the “can we use/adapt ActivityPub/-Stream” idea. More interoperable, pretty lightweight, can start adapting this as a general pattern for other use cases.

Yeah, I think that we want to support both URIs and CIDs. We can pin the liked content, but there’s some question here about storage. At that point we’ve built a Pocket competitor.

I mainly want the option of data Liked = URL | CID so that we can make rich links on IPFS & on Fission apps / FS.

1 Like

This is a great idea, btw. Small, simple, easy to grok, a good way to show the kind of thing that’s suddenly really easy to throw together in a couple of hours now that you don’t have to worry about rolling your own deployment & storage. Plus integrates with web2. Potentially a good content ingestion pipeline, too :+1: