ethereum-org-website icon indicating copy to clipboard operation
ethereum-org-website copied to clipboard

Categorising Tutorial Tags: Framing Web3 Technologies - Suggestions Wanted

Open 0xKai27 opened this issue 2 years ago • 10 comments

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

0xKai27 avatar Jan 05 '23 08:01 0xKai27

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.

corwintines avatar Jan 06 '23 04:01 corwintines

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.

wackerow avatar Jan 18 '23 18:01 wackerow

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.

0xKai27 avatar Jan 19 '23 04:01 0xKai27

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?

corwintines avatar Feb 07 '23 05:02 corwintines

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.

0xKai27 avatar Feb 08 '23 15:02 0xKai27

First run of categorising the tutorials according to the tags suggested:

Tutorial Tags
All you can cache Smart Contract, Storage, Layer 2
ERC-20 with Safety Rails Smart Contract, DeFi
HOW TO TURN YOUR RASPBERRY PI 4 INTO A NODE JUST BY FLASHING THE MICROSD CARD Protocol, Clients
Learn Blockchain, Solidity, and Full Stack Web3 Development with JavaScript DeFi, Dev Tools, DAO, NFT, Client Libraries, Smart Contract, UI, Oracle, Blockchain Analytics
UNDERSTANDING THE YELLOW PAPER'S EVM SPECIFICATIONS Protocol
How to develop an NFT Smart Contract (ERC721) with Alchemy Dev Tools, NFT, Client Libraries, Smart Contract
SHORT ABIS FOR CALLDATA OPTIMIZATION Layer 2, Protocol
OPTIMISM STANDARD BRIDGE CONTRACT WALKTHROUGH Layer 2, Bridges
Intro to Foundry Smart Contract, Dev Tools
How to build an on-chain DAO Smart Contract, DAO
How to build an on-chain DAO Smart Contract, DAO
How to Connect your Smart Contracts to Metamask Smart Contract, Client Libraries, Dev Tools
FullStack Web3 — Everything You Need to Know Client Libraries, UI,
MERKLE PROOFS FOR OFFLINE DATA INTEGRITY Protocol, Storage
REVERSE ENGINEERING A CONTRACT Protocol, Smart Contract
Events and Logging in Solidity Protocol, Smart Contract, Dev Tools
How to Become a Blockchain Engineer More of a process guide
HELLO WORLD SMART CONTRACT FOR BEGINNERS - FULLSTACK Smart Contract, Dev Tools, Client Libraries, Blockchain Analytics
What is Multicall Smart Contract, Client Libraries
NFT MINTER TUTORIAL Smart Contract, NFT, Storage, UI
Solidity, Blockchain, and Smart Contract Course Protocol, Smart Contract, DeFi, NFT, Client Libraries, Oracle, DAO, Blockchain Analytics,
How to make NFT Art with On-Chain Metadata Smart Contract, NFT, Oracle,
The Complete Guide to Full Stack Ethereum and EVM Development Smart Contract, Dev Tools, Client Libraries
Decentralized Staking App More of a step-by-step challenge rather than a guide?
Simple NFT Example Smart Contract, NFT, UI
HOW TO SET UP TELLOR AS YOUR ORACLE Smart Contract, Oracle
Leveraged Trading in DeFi Dev Tools, DeFi
[Hardhat's tutorial for beginners](https://hardhat.org/tutorial) Dev Tools, Smart Contract
Aave Flash Loan Tutorial DeFi, Smart Contract, Dev Tools
Create your own Blockchain ERC20 Token Smart Contract, Dev Tools
LEARN FOUNDATIONAL ETHEREUM TOPICS WITH SQL Blockchain Analytics, Protocol
NFT/ERC-721/Collectible TUTORIAL NFT, Smart Contract, Dev Tools, Storage
UNISWAP-V2 CONTRACT WALK-THROUGH Smart Contract, DeFi
Upgrading your Smart Contracts Smart Contract, Protocol, Dev Tools
HOW TO MINT AN NFT (PART 2/3 OF NFT TUTORIAL SERIES) Smart Contract, NFT, Client Libraries
HOW TO VIEW YOUR NFT IN YOUR WALLET (PART 3/3 OF NFT TUTORIAL SERIES) NFT, UI
HOW TO WRITE & DEPLOY AN NFT (PART 1/3 OF NFT TUTORIAL SERIES) Smart Contract, Dev Tools, NFT
SENDING TOKENS USING ETHERS.JS Client Libraries
VYPER ERC-721 CONTRACT WALKTHROUGH NFT, Smart Contract
HELLO WORLD SMART CONTRACT FOR BEGINNERS Smart Contract, Dev Tools, Client Libraries, Blockchain Analytics
ERC-20 CONTRACT WALK-THROUGH `Smart Contract
TESTING SIMPLE SMART CONTRACT WITH WAFFLE LIBRARY Smart Contract, Dev Tools
MONITORING GETH WITH INFLUXDB AND GRAFANA Client
How to Fetch the Current Price of Ethereum in Solidity Smart Contract, Oracle
CREATE AND DEPLOY A DEFI APP Smart Contract, Dev Tools
USING WEBSOCKETS Client Libraries
WAFFLE: DYNAMIC MOCKING AND TESTING CONTRACT CALLS Smart Contract, Dev Tools
SENDING TRANSACTIONS USING WEB3 Client Libraries,
GETTING STARTED WITH ETHEREUM DEVELOPMENT Client Libraries, Dev Tools
WAFFLE SAY HELLO WORLD TUTORIAL WITH HARDHAT AND ETHERS Dev Tools, Client Libraries, Smart Contract
TESTING ERC-20 TOKENS WITH WAFFLE Smart Contracts, Dev Tools
A PYTHON DEVELOPER'S INTRODUCTION TO ETHEREUM, PART 1 Client Libraries, Protocol
A GUIDE TO SMART CONTRACT SECURITY TOOLS Dev Tools, Smart Contracts
SMART CONTRACT SECURITY CHECKLIST Smart Contract
SMART CONTRACT SECURITY GUIDELINES Smart Contract
THE GRAPH: FIXING WEB3 DATA QUERYING Blockchain Analytics, Client Libraries
TOKEN INTEGRATION CHECKLIST Smart Contracts
DOWNSIZING CONTRACTS TO FIGHT THE CONTRACT SIZE LIMIT Smart Contract, Storage
HOW TO USE SLITHER TO FIND SMART CONTRACT BUGS Smart Contract, Dev Tools
SOLIDITY AND TRUFFLE CONTINUOUS INTEGRATION SETUP Dev Tools
HOW TO MOCK SOLIDITY SMART CONTRACTS FOR TESTING Smart Contract, Dev Tools
KICKSTART YOUR DAPP FRONTEND DEVELOPMENT WITH CREATE-ETH-APP Client Libraries, UI
CALLING A SMART CONTRACT FROM JAVASCRIPT Client Libraries
SET UP WEB3.JS TO USE THE ETHEREUM BLOCKCHAIN IN JAVASCRIPT Client Libraries
HOW TO USE ECHIDNA TO TEST SMART CONTRACTS Dev Tools, Smart Contract
TRANSFERS AND APPROVAL OF ERC-20 TOKENS FROM A SOLIDITY SMART CONTRACT Smart Contracts
INTERACT WITH OTHER CONTRACTS FROM SOLIDITY Smart Contract, Dev Tools
UNDERSTAND THE ERC-20 TOKEN SMART CONTRACT Smart Contract
DEPLOYING YOUR FIRST SMART CONTRACT Smart Contract, Dev Tools
LOGGING DATA FROM SMART CONTRACTS WITH EVENTS Smart Contract, Protocol
HOW TO IMPLEMENT AN ERC-721 MARKET Smart Contract
HOW TO USE MANTICORE TO FIND BUGS IN SMART CONTRACTS Smart Contract, Dev Tools

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 the DeFi 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?)

0xKai27 avatar Feb 25 '23 07:02 0xKai27

This issue is stale because it has been open 45 days with no activity.

github-actions[bot] avatar Apr 12 '23 08:04 github-actions[bot]

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.

Tutorial Tags
All you can cache Storage, Layer 2
ERC-20 with Safety Rails Token standard
HOW TO TURN YOUR RASPBERRY PI 4 INTO A NODE JUST BY FLASHING THE MICROSD CARD Protocol, Clients
Learn Blockchain, Solidity, and Full Stack Web3 Development with JavaScript DeFi, Dev Tools, DAO, NFT, Client Libraries, Smart Contract, UI, Oracle, Blockchain Analytics
UNDERSTANDING THE YELLOW PAPER'S EVM SPECIFICATIONS Protocol
How to develop an NFT Smart Contract (ERC721) with Alchemy Dev Tools, NFT, Client Libraries, Smart Contract
SHORT ABIS FOR CALLDATA OPTIMIZATION Layer 2, Protocol
OPTIMISM STANDARD BRIDGE CONTRACT WALKTHROUGH Layer 2, Bridges
Intro to Foundry Dev Tools
How to build an on-chain DAO DAO
How to build an on-chain DAO DAO
How to Connect your Smart Contracts to Metamask Client Libraries, Dev Tools, UI
FullStack Web3 — Everything You Need to Know Client Libraries, UI, Dev Tools
MERKLE PROOFS FOR OFFLINE DATA INTEGRITY Protocol, Storage
REVERSE ENGINEERING A CONTRACT Protocol, Smart Contract
Events and Logging in Solidity Dev Tools
How to Become a Blockchain Engineer More of a process guide, agree with take here, this should be removed at this point I think
HELLO WORLD SMART CONTRACT FOR BEGINNERS - FULLSTACK Dev Tools, Client Libraries, UI
What is Multicall Client Libraries
NFT MINTER TUTORIAL NFT, Storage, UI
Solidity, Blockchain, and Smart Contract Course Protocol, DeFi, NFT, Client Libraries, Oracle, DAO, Blockchain Analytics
How to make NFT Art with On-Chain Metadata NFT, Oracle,
The Complete Guide to Full Stack Ethereum and EVM Development Dev Tools, Client Libraries
Decentralized Staking App More of a step-by-step challenge rather than a guide? Agree here, should remove.
Simple NFT Example NFT, UI
HOW TO SET UP TELLOR AS YOUR ORACLE Oracle
Leveraged Trading in DeFi Dev Tools, DeFi
[Hardhat's tutorial for beginners](https://hardhat.org/tutorial) Dev Tools
Aave Flash Loan Tutorial DeFi
Create your own Blockchain ERC20 Token Token standards
LEARN FOUNDATIONAL ETHEREUM TOPICS WITH SQL Blockchain Analytics, Protocol
NFT/ERC-721/Collectible TUTORIAL NFT, Dev Tools, Storage
UNISWAP-V2 CONTRACT WALK-THROUGH Smart Contract, DeFi
Upgrading your Smart Contracts Smart Contract, Protocol, Dev Tools
HOW TO MINT AN NFT (PART 2/3 OF NFT TUTORIAL SERIES) NFT, Client Libraries
HOW TO VIEW YOUR NFT IN YOUR WALLET (PART 3/3 OF NFT TUTORIAL SERIES) NFT, UI
HOW TO WRITE & DEPLOY AN NFT (PART 1/3 OF NFT TUTORIAL SERIES) Dev Tools, NFT
SENDING TOKENS USING ETHERS.JS Client Libraries
VYPER ERC-721 CONTRACT WALKTHROUGH NFT
HELLO WORLD SMART CONTRACT FOR BEGINNERS Dev Tools, Client Libraries
ERC-20 CONTRACT WALK-THROUGH Token standards
TESTING SIMPLE SMART CONTRACT WITH WAFFLE LIBRARY Dev Tools
MONITORING GETH WITH INFLUXDB AND GRAFANA Client
How to Fetch the Current Price of Ethereum in Solidity Oracle
CREATE AND DEPLOY A DEFI APP Dev Tools
USING WEBSOCKETS Client Libraries
WAFFLE: DYNAMIC MOCKING AND TESTING CONTRACT CALLS Dev Tools, Testing
SENDING TRANSACTIONS USING WEB3 Client Libraries
GETTING STARTED WITH ETHEREUM DEVELOPMENT Client Libraries, Dev Tools
WAFFLE SAY HELLO WORLD TUTORIAL WITH HARDHAT AND ETHERS Dev Tools, Client Libraries, Testing
TESTING ERC-20 TOKENS WITH WAFFLE Testing, Dev Tools
A PYTHON DEVELOPER'S INTRODUCTION TO ETHEREUM, PART 1 Client Libraries, Protocol
A GUIDE TO SMART CONTRACT SECURITY TOOLS Dev Tools, Security
SMART CONTRACT SECURITY CHECKLIST Security
SMART CONTRACT SECURITY GUIDELINES Security
THE GRAPH: FIXING WEB3 DATA QUERYING Blockchain Analytics, Client Libraries
TOKEN INTEGRATION CHECKLIST Security
DOWNSIZING CONTRACTS TO FIGHT THE CONTRACT SIZE LIMIT Storage
HOW TO USE SLITHER TO FIND SMART CONTRACT BUGS Dev Tools, Security
SOLIDITY AND TRUFFLE CONTINUOUS INTEGRATION SETUP Dev Tools
HOW TO MOCK SOLIDITY SMART CONTRACTS FOR TESTING Dev Tools, Testing
KICKSTART YOUR DAPP FRONTEND DEVELOPMENT WITH CREATE-ETH-APP Client Libraries, UI
CALLING A SMART CONTRACT FROM JAVASCRIPT Client Libraries
SET UP WEB3.JS TO USE THE ETHEREUM BLOCKCHAIN IN JAVASCRIPT Client Libraries
HOW TO USE ECHIDNA TO TEST SMART CONTRACTS Dev Tools, Testing
TRANSFERS AND APPROVAL OF ERC-20 TOKENS FROM A SOLIDITY SMART CONTRACT Token standards
INTERACT WITH OTHER CONTRACTS FROM SOLIDITY Dev Tools
UNDERSTAND THE ERC-20 TOKEN SMART CONTRACT Token standard
DEPLOYING YOUR FIRST SMART CONTRACT Dev Tools
LOGGING DATA FROM SMART CONTRACTS WITH EVENTS Protocol Not really sure we need this tutorial
HOW TO IMPLEMENT AN ERC-721 MARKET NFT
HOW TO USE MANTICORE TO FIND BUGS IN SMART CONTRACTS Dev Tools , Security Remove because this is in maintenance mode

corwintines avatar Sep 05 '23 22:09 corwintines

Just some initial thoughts above, let me know what you think @0xKai27

corwintines avatar Sep 05 '23 22:09 corwintines

This issue is stale because it has been open 30 days with no activity.

github-actions[bot] avatar May 09 '24 08:05 github-actions[bot]