cip | title | author | discussions-to | status | category | created | edited |
---|---|---|---|---|---|---|---|
142 |
Linkfeed - a content feed abstraction standard |
Zhixiong Pan (@nake13), Liang Qiao (@qbig), dugubuyan (@dugubuyan), Alex Wu (@Alex_bitxia) |
Draft |
RFC |
2023-06-28 |
2023-07-13 |
Linkfeed is a feed abstraction standard built on top of Ceramic’s ComposeDB. This standard enables the generation of link references both within and outside the Ceramic Network. By curating a collection of such links, anyone can construct a feed-like protocol or application. This could cover a range of applications, including social media platforms or any kind of news feed. An older version was implemented using TileDocument here https://github.com/chainfeeds/linkfeed.
This CIP propose a canonical ComposeDB data model for sharing links on the internet, inspired by popular platforms like Reddit, Hacker News, Digg, and del.icio.us / Pinboard. The proposed data model aims to facilitate interoperability among these platforms, enabling seamless sharing and aggregation of link-based content.
The ComposeDB data model incorporates key components such as the URL, title, description, thumbnail/image, tags, metadata.
Web feed is a common concept. Many types of information can be shaped into this form, which allows for the creation of various applications. The main purpose of this standard is to enhanced interoperability through the use of common data fields and structures, enabling smooth data exchange between platforms. This promotes cross-platform integration, allowing users to share links seamlessly across multiple platforms and facilitating the aggregation of link-based content from diverse sources.
type Linkfeed @createModel(accountRelation: LIST, description: "A feed abstraction standard.") {
title: String! @string(maxLength: 2000)
content: String! @string(maxLength: 100000)
url: URI! #source_url
uuid: String! @string(maxLength: 120) # application context specific UUID
status: String @string(maxLength: 20) # life cycle status of the link, eg. pending, published
metadata: String @string(maxLength: 100000) # meta field
tags: [String] # annotation for the link
version: CommitID! @documentVersion
createAt: DateTime
modifiedAt: DateTime
}
By adopting this standardized data model, platforms can achieve consistency in representing shared links, making it easier for users to navigate and interact with content across different platforms. This is achieved by using a canonical ComposeDB data model, so that platforms can unlock the potential for greater collaboration, user engagement, and content discovery. It paves the way for a more connected and interoperable internet landscape, where link-sharing platforms can interact harmoniously while providing users with a unified experience across various services.
N/A
A referenece implementation https://component-doc.s3.xyz/. An older version was implemented using TileDocument here https://github.com/chainfeeds/linkfeed/.
N/A
Copyright and related rights waived via CC0.