ethereum-org-website
ethereum-org-website copied to clipboard
Categorising Tutorial Tags: Framing Web3 Technologies - Suggestions Wanted
Description
Related to the Q4 2022 roadmap (Epic #8491) and PR #8631 , propose the following changes to the tutorial tags for better clarity.
The main goal is to abstract specific implementations and categorise according to concepts for better contextualisation of specific use cases. As categorical names are constantly evolving with the industry, it is envisioned that the list below is sufficiently generalised to function as a framework to approach the tutorials. If implemented, it is expected that there will be a guide page specifically on how these categories are determined.
This issue was created with the intention of standardising tags and by extension, categorical standards in the Web3 space. As such, the below acts as guide points for the community to arrive at a preferred conceptual framework.
Proposed List:
BLOCKCHAIN ANALYSIS
- Description: Applications and tools which help to make sense of blockchain transaction data. These are read only applications which help to increase transparency in the space.
- Examples: Etherscan, Coingecko, DefiLlama, Dune
BRIDGES
- Description: Covers all cross-chain bridges that enable assets to be securely moved across various independent chains
- Examples: Multichain, RenBridge, Rubic
CLIENT LIBRARIES
- Description: Libraries that enable rapid development of client side applications that interact with the Ethereum blockchain
- Examples: ethers.js, web3.js
DAO
- Description: Any tutorials relating to collectively-owned, blockchain-governed organisations
- Examples: BitDAO, PleasrDAO, SyndicateDAO
DEFI
- Description: Decentralised finance dapps that encompasses all non-custodial financial services on the Ethereum chain. While DeFi is extremely complex and varied, categorising all DeFi dapps under a single tag will aid in readability. Alternatively, tags can be expanded to specific financial functions if required: DEFI DEX, DEFI LENDING, DEFI DERIVATIVES, etc.
- Examples: Uniswap, Curve, Convex, Yearn, 1inch, DYDX, Nexus Mutual, 0x
DESO
- Description: Decentralised social networks and related identity technologies where digital identities and social graphs are user owned.
- Examples: CyberConnect, Lens, Status, Skiff, Mirror, ENS, Spruce
DEV TOOLS
- Description: Ethereum developer tools which optimises the development pipeline and developer workflow. This ranges from local development environment setup to backend IaaS providers.
- Examples: Hardhat, Truffle, Alchemy, Infura, Remix
GAMING
- Description: Structured virtual environments with clearly defined goals and gamified play-to-earn economic incentives. This includes both GameFi as well as yield guilds.
- Examples: Axie Infinity, Splinterlands, Merit Circle, Yield Guild Games
HARDWARE
- Description: Tutorials involving the installation of software on hardware devices. This can be for the purposes of contributing towards network resources or as user interfaces to the network.
- Examples: Node setup, Hardware wallets
LAYER 2
- Description: Scaling solutions which focus on reducing or off-loading compute requirements while settling the final state on the base chain.
- Examples: Polygon, Optimism, Aztec, Raiden
METAVERSE
- Description: Tutorials involving virtual worlds where users have the freedom to form personal networks and take ownership of digital assets. This covers avatar creation, virtual worlds, as well as extended reality.
- Examples: OSUVOX, Decentraland, Sandbox, Mattereum
NFT
- Description: While NFT refers to a specific token interface, mainstream adoption of this terminology has extended to cover cultural assets. Consequently, this is a catch-all tag for culturally significant tokenised assets as well as the tokenisation of real world assets. Possible alternatives: COLLECTIBLES, CULTURAL
- Examples: BAYC, Meebits, POAP, Propy
ORACLES
- Description: Data providers that enable DeFi protocols to ingest external data for logic processing within their smart contracts. This includes data feed and indexing applications.
- Examples: Chainlink, Band, UMA, Graph, API3, Push
PRIVACY
- Description: Privacy focused tutorials focusing on third party privacy applications implemented through smart contracts.
- Examples: Tornado Cash, Railgun
PROTOCOL
- Description: Tutorials which cover Ethereum protocol specific functionalities and implementations. Intention is for users to navigate to the official ethereum.org dev docs where required. This tag includes guides around Consensus, Logging, Public Key Cryptography, the EVM, gas fees, etc.
- Examples: Staking, Events, ECDSA, Hashes, PKC, Calculating Gas
STORAGE
- Description: Decentralised storage solutions which enable data to be reliably and securely stored across a network of nodes.
- Examples: IPFS, Arweave, Sia, Storj
TOKEN STANDARDS
- Description: Standard representation of asset ownership/rights that enable interoperability of tokens across decentralised applications.
- Examples: ERC20, ERC721, ERC1155
WALLETS
- Description: User owned wallets which stores and manages the private keys of the user. This covers all kind of wallet user interfaces: browser, desktop, mobile, hardware security modules, paper
- Examples: Metamask, Argent, Trust, Ledger, Trezor, Exodus
Other Considerations
- Removed references to specific coding languages. While this is definitely useful in narrowing the search, it is not directly related to the Ethereum protocol and might be better separated from Web3 specific concepts.
- To consider further whether specific development workflows should be used as tags: TESTING, DEPLOYMENT, etc.
- Smart Contracts is less helpful as a tag due to all dapps meeting this requirement. I find it personally more helpful to have a PROTOCOL tag and those that does not meet this filter will most likely be related to smart contracts.
- To consider whether content type should be included: VIDEO, etc.
Related Issues
#8491 #8631
This is a great idea! Will bring this up with the team to get a bit more input, but this is a direction I think makes sense to go with for tagging tutorials.
Thanks for posting @0xKai27! Appreciate the well thought out proposal.
Overall I really like what you've laid out. I do think the current tags are far too messy, and we need a way to trim these down.
I would be really curious to see how our current tutorials would look if these tags were to be applied. As the tutorials stand, they live specifically as "developer tutorials". As such, I do wonder if being a little more granular with some of these could be beneficial, such as expanding out "Dev Tools", or "Client Libraries"
I also suspect a handful of these, such as Metaverse, Gaming, Hardware, would probably be fairly low usage.
Curious what others think, but I think with a few small adjustments this would likely be a nice upgrade for user experience.
Definitely agree with your sentiment on the granularity of the "developer tutorials" related tags. I think the tricky part here is the level of assumed knowledge that a reader will have with regards to the Ethereum stack.
In the optimistic scenario (i.e. they've read through the ethereum.org getting started, etc.), breaking down the toolings based on the below would definitely have more value add:
- Infrastructure-as-a-Service (eg. Alchemy, Infura)
- Ethereum Clients (eg. geth, besu, openethereum)
- Web3 Frameworks (eg. hardhat, truffle)
- Client Libraries (eg. web3.js, ethers.js)
- Backend Frameworks (eg. express, node)
- Dapp SDKs (Dapp specific client integration)
- Frontend Frameworks (eg. angular, vue, react)
- Wallets (eg. metamask, ledger, exodus)
Will likely also have to arrive a decision while taking into account how the "User Guides" (#8757) will relate to these tutorials. For example, if "Developer Tutorials" and "User Guides" flow is separate, we can maintain a more narrow set of tags specific to developer content. Additionally, this will also reduce the confusion for non-developer personas.
I agree with this, removing project-specific tags for something more general is a great idea. I think a start we can have for this could be:
- Blockchain Analytics
- Bridges
- Clients
- DAO
- Defi
- Dev tools
- Layer 2
- NFT
- Client Libraries
- Oracle
- Protocol
- Smart contract
- Storage
- UI
If there are any others you think would be fitting @0xKai27, then I think we can test them out and see on review. I do think there are going to be some tags suggested here which won't have a place at the moment as @wackerow mentioned, but leaving what I think will be high impact for now.
What do you suggest for next steps? Would you like to work on going through the tutorials and updating these tags?
Yeah, I can run through the tutorials and categorize them accordingly. Will collate them here first as a comment then we can discuss further whether the above tags are sufficient.
First run of categorising the tutorials according to the tags suggested:
Some comments:
- Still unsure about the value-add of the
Smart Contract
tag. Conscious that this is what most people will search by but the concept itself is quite general and therefore doesn't really help with the filtering process. This is especially given the nature of most tutorials which focuses on application level use cases. - For
DeFi
tag, I have excluded purely creating ERC20 tokens guide and reserved it for more specific financial flows rather than the financialisation of assets. There are many ERC20 guides which would cause theDeFi
tag to be less useful as a filter if included. Personally, I view ERC20 as more of a standard interface. - To avoid any doubt,
Client
tag is used to refer to protocol clients (e.g. geth, besu, lighthouse, teku, etc.). On the other hand,Client Libraries
refer to browser(i.e. client) hosted libraries. - There are some smart contract checklist style tutorials which might be better suited as content under the docs? (i.e. security/integration checklist, best practice, etc.). If left under tutorials, all of them will fall exclusively under the
Smart Contract
tag. Refer to first point regarding concerns. - Some alternative categorization approaches for consideration: language, development stage (e.g. code creation, testing, DevOps). One thing I noticed while trying to categorize is that application use cases might be quite helpful as users will likely be approaching tutorials from that perspective (i.e. am i trying to create a collectible, build a DEX, or improve the ETH protocol code?)
This issue is stale because it has been open 45 days with no activity.
Hey @0xKai27,
Overall like your thinking here. MY main concern like you had mentioned is the smart contract tag. It is very overused as you mentioned, and doesn't serve much of a purpose if basically everything has it. I think we maybe just get rid of it for now and see how it goes? Let me know what you think. I left some changes to the table you provided with this, and adding a few tags that I felt were missing, or removed ones that seemed unnecessary.
Just some initial thoughts above, let me know what you think @0xKai27
This issue is stale because it has been open 30 days with no activity.