What is the purpose of the steem-standards category?

in #steem-standards8 years ago (edited)

I have created this category to have a place to discuss standards that we would like Steem frontends to respect.

We have to remember that there are two components to Steem: the backend blockchain and the frontend user interface.

We don't need to worry about standards for the backend because it is already enforced by the steemd node we run. If someone wanted to change the way the backend blockchain worked, it would require a hard fork of the network.

There are a lot of things that matter to the operation of the Steem blockchain such as: account names, category names, permlink names, the comment hierarchy of a discussion thread, and votes. But the blockchain doesn't actually care about the contents of the title, body, or JSON metadata of a post/comment. It enforces no rules on them (other than a limit on the number of characters of the title and an overall size limit on a transaction which in turn puts a size limit on body/json content). So different Steem frontends can provide very different user experiences using the same blockchain data, based on how they interpret the content of the post (specifically the body content and JSON metadata).

We have already seen some differences in Markdown rendering just comparing steemit.com to steemd.com. There are other clients acting as frontends to Steem like @xeroc's piston client. And we should expect many more frontends to come in the future.

Obviously we shouldn't expect identical user experiences with different frontends (after all, the differences are probably the reason a user is using a different frontend in the first place). However, if we want to have a somewhat consistent experience across various frontends (especially if we want to figure out how to produce our posts/comments so that various frontends can render them more or less as we intended), it is important for us to establish certain standards that Steem frontend app developers follow.

Examples of standards to discuss in this category might include:

  1. The actual version of Markdown rendering (and which features are enabled) that the community can expect from most (if not all) frontends.
  2. A consistent way to represent NSFW posts in the JSON metadata so that different frontends can do the right thing in terms of auto-hiding images of NSFW posts when viewed not in the appropriate context.
  3. A consistent way to mark the languages of a post so that the frontend can appropriately filter from the recent/trending views any posts written in languages that the user does not understand .
  4. A way to note in the post metadata the markup language used in the post body (e.g. Markdown vs reStructuredText), so that clients can know how to render the body properly or gracefully fail if they do not support the markup language indicated.
  5. Perhaps a way to mark a post/comment as a linear flow discussion rather than the default threaded discussion if we in the future choose to have frontends that can support either type.
  6. Many, many more.

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63744.49
ETH 2639.10
USDT 1.00
SBD 2.77