Skip to content

A curated list of awesome Web3 resources, libraries, tools and more.

License

Notifications You must be signed in to change notification settings

ahmet/awesome-web3

Repository files navigation

Awesome Web3

A curated list of awesome Web3 resources, libraries, tools and more.

Please check the contribution guidelines for information on formatting and writing pull requests.

Awesome List

  • Solidity - Curated list of awesome Solidity resources, libraries, tools and more.
  • Ethereum - Awesome Ethereum & Dapps Resources.
  • Thirdweb - Curated list of awesome thirdweb resources, libraries, examples, showcase, and open source projects.
  • Farcaster Protocol - A collection of awesome Farcaster links including clients, tools, and more.
  • Lens Protocol - Curated list of awesome Lens Protocol projects, resources, libraries, tools and more.
  • RPC Nodes - Curated list of awesome Node providers and public RPC endpoints.
  • Web3 Security - Curated list of web3 security materials and resources for pentesters and bug hunters.
  • Wagmi - Curated list of awesome projects and resources related to Wagmi.
  • XMTP - Curated list of awesome resources and projects built using XMTP.
  • NFT - Curated list of awesome Non Fungible Token (NFT, ERC721) frameworks, libraries and software.
  • Blockchain - Curated list of resources for the development and applications of blockchain.
  • ethereum-security - Curated list of Ethereum security references, guidance, tools, and more.
  • Foundry - Curated list of awesome Foundry resources, tutorials, tools and libraries.
  • Reth - Curated list of awesome Reth resources.
  • Algorand - Curated list of awesome resources related to the Algorand Blockchain.
  • Vyper - Curated resources for Vyper, the Pythonic smart contract language for the EVM.
  • StarkNet - Curated list of awesome StarkNet resources, libraries, tools and more.
  • Arweave - Curated list of awesome resources related to the Arweave.
  • Huff - Curated list of resources for Huff language.
  • The Graph - Curated list of awesome resources for The Graph.
  • Zero Knowledge - Curated list of awesome ZK resources, libraries, tools and more.
  • Blockchain Scalability - Curated list of awesome resources about blockchain scalability.
  • MakerDAO - Collection of tools, documents, articles, blog posts, interviews, and videos related to MakerDAO and the Dai stablecoin.
  • Kiwi - Collection of documents, clients, apps, APIs, and other resources related to Kiwi protocol.
  • Account Abstraction - Collection of account abstraction resources.
  • ETH Gas Tracker - Monitor and track Ethereum and L2 gas prices to reduce transaction fees, save money and take control of your blockchain experience

Reference

  • BIPs - Bitcoin Improvement Proposals.
  • EIPs - Ethereum Improvement Proposals.
  • Ethereum Yellow Paper - Formal definition of the Ethereum protocol.
  • EVM Illustrated - Illustrated explanation of how EVM works under the hood.
  • EVM Opcodes - Low level reference for the EVM and a Solidity decompiler which turns bytecode into more readable Solidity-like code.
  • evm.codes - An interactive reference to Ethereum Virtual Machine Opcodes (source code).
  • Solidity - Solidity is an object-oriented, high-level language for implementing smart contracts.
  • Vyper - Vyper is a contract-oriented, pythonic programming language that targets the Ethereum Virtual Machine (EVM).

Software Development

Developer Roadmap

  • DeFi Developer - Curated Web3.0 Developer handbook which includes a list of the best tools for DApps, development resources and lifehacks.
  • Blockend Developer - Step By Step Roadmap for those who want to Learn Blockchain Development from Beginning.

Communities

  • BuidlGuidl - Curated group of Ethereum builders creating products, prototypes, and tutorials to enrich the web3 ecosystem
  • DeveloperDAO - Community of thousands of web3 builders creating a better internet
  • WomenBuildlWeb3 - Global collective of women and non-binary developers learning and building in web3
  • WebtrES - Global Spanish-speaking community learning and building in web3
  • Launchcaster - A place to share and discover the best new stuff in Web3. Built on Farcaster and Lens protocols.

Sample Code

Development Environment

  • Brownie - Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.
  • Ethereum Code Viewer - View source of deployed Ethereum smart contracts in VS Code.
  • EthFiddle - Web-based IDE that lets you write, compile, and debug your smart contract.
  • Hardhat - Development environment to compile, deploy, test, and debug your Ethereum software.
  • Remix - Online IDE for Solidity development.
  • BuildBear - Development platform that provides realistic test environments to developers.
  • Foundry - Foundry is blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
  • Embark - The all-in-one developer platform for building and deploying decentralized applications.
  • Solana Playground - Online IDE to quickly develop and deploy Solana programs that runs on web browser.
  • Tenderly DevNets - Development Networks or DevNets are a zero-setup, managed development environment for developing, testing, and debugging smart contracts. With built-in debugging tools, DevNets eliminate the need to run any third-party software or to set up an environment.

DevOps

  • Cannon - Continuous configuration automation & development cli multi-tool. Like Terraform, Docker and NPM for Ethereum.

Hosting

  • dAppling Network - Decentralized web hosting platform for Web3 frontends focusing on increasing uptime, security, and providing an additional access point for users.

SDK

  • Kryptokrona Kotlin SDK - Kryptokrona SDK in Kotlin for building decentralized private communication and payment systems.

Protocol

  • WalletConnect - Open protocol connecting wallets to Dapps.
  • WalletLink - Open protocol that lets users connect their mobile wallets to your DApp.
  • IPFS - Distributed system for storing and accessing files, websites, applications, and data.
  • Lens Protocol - Lens Protocol is composable and decentralized social graph, ready for you to build on so you can focus on creating a great experience, not scaling your users.
  • Aave Protocol - Aave is decentralized non-custodial liquidity protocol where users can participate as depositors or borrowers.
  • SmartWeave - SmartWeave is smart contract protocol that allows developers to build permanent applications on top of Arweave.
  • The Graph - The Graph is indexing protocol for querying networks like Ethereum and IPFS.
  • Push - Push Protocol is web3 communication network, enabling cross-chain notifications and messaging for dapps, wallets, and services.
  • Ceramic Network - Ceramic is decentralized data network that brings unlimited data composability to Web3 applications.
  • Polkadot - Polkadot is scalable, interoperable & secure network protocol for the next web.
  • zkSync - Protocol zkSync is trustless protocol that uses cryptographic validity proofs to provide scalable and low-cost transactions on Ethereum.
  • Uniswap - Uniswap is protocol for trading and automated liquidity provision on Ethereum.
  • NEAR - NEAR is smart-contract compatible blockchain, designed and built to support the development of highly secure and scalable dApps.
  • Arweave - Arweave is protocol that allows you to permanently and sustainably store data for a single upfront fee.
  • Livepeer - Livepeer is Ethereum-based protocol that distributes video transcoding work throughout its decentralized network.
  • Compound - Compound is algorithmic, autonomous interest rate protocol built for developers, to unlock universe of open financial applications.
  • Yield - Yield Protocol is permissionless market for collateralized fixed-rate borrowing and lending.
  • Euler - Euler is non-custodial protocol on Ethereum that allows users to lend and borrow almost any crypto asset.
  • Unitas - Unitas Protocol enables financial sovereignty by granting people the right to choose their units of account while transacting with each other.
  • Sablier - Sablier is money streaming protocol that aims to be used for streaming payments and achieve near real-time transactions.
  • Pika Protocol - Pika is one of the most leveraged DeFi protocols, offering up to 100 times leverage on trades.
  • Ocean Protocol - Ocean protocol aims to allow businesses and individuals to exchange and monetize data and data-based services.
  • Rollup ID - User management for the private web.
  • Aztec Network - Aztec Network is Layer 2 zk-rollup, designed to enable programmable privacy, that will run on Ethereum.
  • IPOR - IPOR: The heartbeat of DeFi Fix your interest rate or hedge your exposure by leveraging non-custodial on-chain IPOR derivative instruments.
  • Ajna protocol - Ajna protocol is peer to peer, oracleless, permissionless lending protocol with no governance, accepting both fungible and non fungible tokens as collateral.
  • Synapse - Synapse Protocol enables cross-chain communication for facilitating transactions across blockchains.
  • Router Protocol - Router Protocol bridges different layer 1 and layer 2 blockchains, enabling seamless cross-chain liquidity migration in DeFi. It facilitates token transfers between chains and cross-chain execution of operations.

JavaScript

  • RainbowKit - React library that makes it easy to add wallet connection to your dapp.
  • OnchainKit - Collection of tools to build world-class onchain apps with CSS, React, and Typescript.
  • avalanchejs - JavaScript Library for interfacing with the Avalanche Platform.
  • Avalanche Wallet SDK - Typescript library to create and manage wallets on the Avalanche network.
  • BitcoinJS - Bitcoin library for node.js and browsers.
  • dapparatus - Reusable dApp components in React.
  • ethers.js - Complete Ethereum wallet implementation and utilities in JavaScript (and TypeScript).
  • ipfs-mini - Super tiny module for querying an IPFS node, that works in the browser and in Node.
  • js-ipfs - IPFS implementation in JavaScript.
  • Truffle - Development environment, testing framework and asset pipeline for Ethereum.
  • wagmi - React hooks library for Ethereum.
  • web3.js - Ethereum JavaScript API which connects to the Generic JSON-RPC spec.
  • web3-react - Simple, maximally extensible, dependency minimized framework for building modern Ethereum dApps.
  • db3.js - DB3.js is SDK of DB3 network, a community-driven layer2 decentralized database network.
  • ensjs - Javascript bindings for the Ethereum Name Service.
  • Lens.js - Lens.js is JavaScript SDK or API wrapper for the Lens API.
  • bee-js - Javascript client library for connecting to Bee decentralised storage.
  • livepeer.js - Liverpeer.js provides core vanilla JS library and React hooks/components to easily connect to a Livepeer provider.
  • solana-web3.js - Solana Javascript API built on the Solana JSON RPC API.
  • seaport-js - JavaScript library to interface with the Seaport marketplace.
  • js-algorand-sdk - AlgoSDK is the official JavaScript library for communicating with the Algorand network.
  • starknet.js - JavaScript library to interact with Starknet.
  • notify - JavaScript library for real time notifications for Ethereum transaction state changes.
  • Dynamic - Web3 authentication platform and multi-chain wallet connection library.
  • sequence.js - Sequence is modular web3 stack and smart wallet for Ethereum chains.
  • attestate/crawler - JavaScript library for retrieving on-chain storage and generating data derivatives.
  • signature-validator - TypeScript library that supports validation of any type of signature: account abstraction (ERC-1271, ERC-6492), standard EOA signatures, ERC-712.
  • @kolirt/vue-web3-auth - Simple WalletConnect Web3Modal v2 integration package for Vue3 apps.
  • @web3icons/react - Web3 icons as React components. Includes tokens, coins, networks, wallets.

Solidity

  • Date and Time tools - Contract which implements utilities for working with datetime values in ethereum.
  • OpenZeppelin - The standard for secure blockchain applications.
  • CREATE2 Deployer - Helper smart contract to make easier and safer usage of the CREATE2 EVM opcode.
  • Solady - Gas optimized Solidity Libraries.

Go

  • avalanchego - Go implementation of an Avalanche node.
  • avalanche-network-runner - Tool to run and interact with an Avalanche network locally.
  • ava-sim - Helper tool to spin up a local instance of an Avalanche network to interact with the standard APIs or to test a custom VM.
  • ethereum-hdwallet - Ethereum HD Wallet derivations from seed which implements the go-ethereum's accounts.Wallet interface.
  • coreth - Code and wrapper to extract Ethereum blockchain functionalities without network/consensus, for building custom blockchain services.
  • geth - Official Go implementation of the Ethereum protocol.
  • subnet-cli - CLI tool to manage Avalanche Subnets.
  • eRPC - Open-source EVM RPC proxy & cache service built to scale horizontally from small traffic to million RPS across many chains, optimized for read-heavy use-cases such as Indexers, Frontends, MEV bots, etc.

C/C++

  • libethc - Open-source Ethereum library in ANSI C.
  • Trust Wallet Core - Cross-platform, mobile-focused library implementing low-level cryptographic wallet functionality for a high number of blockchains.

Rust

  • Reth - Modular, contributor-friendly and blazing-fast implementation of the Ethereum protocol, in Rust.
  • OpenEthereum - The fast, light, and robust client for the Ethereum mainnet.

Shell

  • avash - Avalanche shell client provides temporary stateful shell execution environment used to deploy networks locally, manage their processes, and run network tests.

Python

  • py-evm - Ethereum protocol implementation in Python.
  • Vyper - Contract-oriented, pythonic programming language that targets EVM.
  • web3.py - Python interface for interacting with the Ethereum blockchain and ecosystem.

Dart

  • Polkadart - Dart library to interact with any Polkadot based blockchain.

VMs

  • evmone - C++ implementation of the Ethereum Virtual Machine (EVM), faster.
  • SpacesVM - SpacesVM enables authenticated, hierarchical storage of arbitrary keys/values using any EIP-712 compatible wallet.

No Code

  • Polkadot.js - Free and open-source plugin for no code platform bubble.io. Use polkadot.js to build a web3 app that interacts with the Polkadot chain without code. The plugin was built with the help from Web3 Foundation.
  • Rarible SDK - Build an NFT marketplace without code, a free plugin for bubble.io. Deploy collections, set royalties/platform fees, bid, sell, etc.
  • ZilPay - Zilliqa Wallet plugin for bubble.io, connect your Bubble app to the Zilliqa Blockchain and interact with ZilPay Wallet.
  • ChainJet - No-code platform for building on-chain or off-chain task automations. Use ChainJet to integrate multiple web3 services to automate all kinds of tasks.
  • Layer4 - No-code and low-code blockchain integration platform. Deploy standard token contracts or persist data on-chain with a few clicks.
  • WalletConnect - Web3Modal v2 SDK with updated UI integrated into a plugin for bubble.io - Connect a wallet, sign a message, detect chain or account changed.
  • Minting.tools - No-code ERC20 token generator. Free to use, shares flattened contract code for verification after deployment. Works with any EVM blockchain. Only requirement is a Web3 wallet, and gas on the chain you'd like to use.

Boilerplate

  • scaffold-eth - Ethereum dev stack focused on fast product iterations.
  • create-eth-app - Create Ethereum-powered apps with one command, similar to create-react-app.
  • next-web3-boilerplate - Boilerplate in TypeScript using Next.js, NextAuth.js, siwe, Web3modal, useDapp, next-i18next, reactMUI.
  • useDApp - Framework for rapid Dapp development.
  • Turbo ETH - Web3 App Template in Next.js 13, Tailwind, RainbowKit and Optimized Developer UX.
  • ethereum-boilerplate - The ultimate NextJS Ethereum Dapp Boilerplate which gives you maximum flexibility and speed.
  • create-web3-dapp - The complete toolbox to create web3 applications.
  • nexth - Next.js + Ethereum starter kit to quickly ship Web3 Apps.
  • dapp-starter-template - Opinionated Dapp Starter Template.

Testing

  • mock-contract - Simple Solidity contract to mock dependent contracts in truffle tests.
  • openzeppelin-test-helpers - Assertion library for Ethereum smart contract testing that you can use with hardhat.
  • Robot Framework Solidity Testing Toolkit - This combines popular smart contract testing and deployment libraries with Robot Framework (a generic RPA ecosystem).
  • solidity-coverage - Code coverage for Solidity smart-contracts.
  • Waffle - Library for writing and testing smart contracts.
  • prb-test - Modern collection of testing assertions and logging utilities for Solidity.

Code Quality

  • Slither - Solidity static analysis framework, a suite of vulnerability detectors, prints visual information about contract details etc.
  • solhint - Solidity linter providing Security and Style Guide validations.

Database

  • Gun - Small, easy, and fast protocol for syncing data.
  • OrbitDB - Serverless, distributed, peer-to-peer database.
  • DB3 - DB3 is a community-driven layer2 decentralized database network, a firebase firestore alternative.
  • WeaveDB - WeaveDB is NoSQL Database as Smart Contract Bringing web2-like smooth UX, complexity, and scalability to web3 dApps.
  • Polybase - Polybase is a drop-in replacement for Firebase, Firstore alongside 10x better db permissions with ZK + Wallet Auth.

Datasets

  • Indexed.xyz - Raw and decoded logs, transactions, and blocks for many EVM chains.

Risk Management

  • Risky Contract Manager - Tool to revoke approvals to smart contracts.
  • CryptoFin Solidity Auditing Checklist - A checklist of common findings, and issues to watch out for when auditing a contract for a mainnet launch.
  • MythX - Security verification platform and tools ecosystem for Ethereum developers.
  • Mythril - Open-source EVM bytecode security analysis tool.
  • Oyente - Alternative static smart contract security analysis.
  • Ethersplay - EVM disassembler.
  • Evmdis - Alternative EVM disassembler.
  • Hydra - Framework for cryptoeconomic contract security, decentralised security bounties.
  • Solgraph - Visualise Solidity control flow for smart contract security analysis.
  • Manticore - Symbolic execution tool on smart contracts and binaries.
  • Slither - A Solidity static analysis framework.
  • Adelaide - The SECBIT static analysis extension to Solidity compiler.
  • solc-verify - A modular verifier for Solidity smart contracts.
  • Solidity security blog - Comprehensive list of known attack vectors and common anti-patterns.
  • EVMole - Extracts function selectors from EVM bytecode, even for unverified contracts.

Open Source Project

  • Ethora - Ethora is a low code web3 'super app' engine featuring social sign on, chat, bots, gamification, digital wallet, documents sharing etc. It is easy to customize and build your own app based on Ethora engine.
  • Blockscout - Blockchain explorer for Ethereum based network and a tool for inspecting and analyzing EVM based blockchains.
  • MetaMask - Browser extension of MetaMask crypto wallet.
  • Rabby - Browser extension crypto wallet for the DeFi ecosystem that works multi-chain.
  • Rainbow - Open source Ethereum wallet.
  • Remix - Browser-based compiler and IDE that enables users to build Ethereum contracts with Solidity language and to debug transactions.
  • UniSwap - Decentralized trading protocol on Ethereum.
  • Chainlink - Chainlink enhances the possibilities of smart contracts by allowing them to access real-world data.
  • react-moralis - Hooks and components to use Moralis in React app.
  • Solidity - Solidity is statically typed, contract-oriented, high-level language for implementing smart contracts on the Ethereum platform.
  • Solana - Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
  • Neo - Neo is blockchain platform that is open-source and community-driven.
  • fabric - Hyperledger Fabric is enterprise-grade permissioned distributed ledger framework for developing solutions and applications.
  • web3swift - web3swift is iOS toolbelt for interaction with the Ethereum network.
  • Fuel - Fuel is the fastest execution layer for the modular blockchain stack.
  • Hugin Messenger - Desktop - Private messaging application on Kryptokrona Blockchain for desktop.
  • Hugin Messenger - Mobile - Private messaging application on Kryptokrona Blockchain for mobile.
  • Ambire Wallet - Open source Web3 wallet that makes self-custody easy and secure via account abstraction.
  • Mobula - Mobula App is an open-source coin & portfolio tracking platform

Tutorial

  • useWeb3 - Learning platform for developers to explore and learn about Web3.
  • CryptoZombies - Interactive school that teaches you all things technical about blockchains.
  • Figment Learn - Tutorials for various use cases and networks, Avalanche, Solana, Polygon and more.
  • Buildspace - Cohort based web3 development courses, learn by building projects.
  • The complete guide to full stack Solana development with React, Anchor, Rust, and Phantom. - link
  • The complete guide to full stack Ethereum development. - link
  • Building a full stack NFT marketplace on Ethereum with Polygon. - link
  • Uploading files to IPFS from a web application. - link
  • Create your own NFT collection on Ethereum with Solidity. - link
  • Intro to dApp's: Create your dApp backend with Solidity. - link
  • Intro to dApp's: Create your dApp frontend with React. - link
  • What is a crypto wallet & how does it work? - link
  • Create your cryptocurrency token. - link
  • Solidity and Truffle CI setup. - link
  • How to use Slither to find smart contract bugs. - link
  • How to mock Solidity smart contracts for testing. - link
  • Building EVM from scratch. - link source code
  • Build a blockchain from scratch in Go with gRPC - The foundational and practical guide for effectively learning and progressively building a blockchain from scratch in Go with gRPC
  • LearnWeb3 DAO - Free program that teach you how to become Web3 Developer.
  • Cadena - Cadena is a free plaform where you can learn by coding smart contracts, NFTs, tokens and more.
  • Building Full Stack Permanent Applications with Arweave, Smartweave and Next.js. - link
  • Building and Testing Smart Contracts with Foundry by Paradigm. - link
  • Building a Full Stack Web3 YouTube Clone with Next, IPFS, The Graph, Solidity, and Livepeer. - link
  • ODYSSEY - Odyssey is great platform to understand blochchain, NFTs, web3 concepts, Defi, Dao and more.
  • Bankless Academy - Bankless Academy is on a mission to ensure every web3 Explorer is ready for their crypto-verse voyage.
  • Speed Run Ethereum - Learn how to build on Ethereum; the superpowers and the gotchas.
  • Node Guardians - Learn about blockchain and programming as you navigate through a medieval game.
  • Solidity by example - Introduction to Solidity with simple examples.
  • Alchemy University - Alchemy University is the ultimate ecosystem for learning how to build and interact with web3.
  • DApp World - DApp World is one-stop platform for blockchain developers that offers tutorials, quizzes, and other features.
  • How To Web3 - All essential resources to learn and build web3 projects in one place.
  • Developer DAO Academy - Developer DAO Academy is open-source education platform created by the Developer DAO.
  • Metaschool - Metaschool is free and trusted resource to become a Web3 Developer by building & shipping dApps.
  • SimpleHash - Tutorials for retrieving NFT metadata, media, sales and collection info from multiple chains.
  • Ape Academy - Learn how to build smart contracts with Python and Vyper.
  • NFT School - Learn everything there is to know about NFT from the ground up.
  • Layer3 - Layer3 is web3 teaching platform that is gamified and allows individuals to discover and learn about web3.
  • Vyper - Learn Vyper by building a Pokémon Game.
  • Staking Academy - Staking Academy is content aggregation platform with the goal of educating people about blockchain technology, staking and DeFi.
  • Web3coda - Web3coda provides bite-sized, hands-on Web3 and Blockchain exercises with online environment (with pre installed/configured tools) and simple to follow manuals.
  • Wriggly - Learn Solidity and smart contract development with interactive code challenges.
  • Cyfrin Updraft - Learn from industry-leading experts how to build the next generation of web3 applications and kickstart your career.

YouTube Channel

  • Chainlink - Videos about blockchain basics, oracles, Free Code Camp and more.
  • EatTheBlocks - Numerous hands-on development tutorial videos on blockchain Solidity smart contracts.
  • Nader Dabit - Tutorials and live coding on dApps, NFTs, DeFi and more.
  • Patrick Collins - Smart contract development with Solidity.
  • Smart Contract Programmer - Free education about smart contracts on open decentralized blockchains.
  • Dapp University - Learn to build decentralized apps on Ethereum Blockchain and smart contracts hacking tutorials.
  • Alchemy - Tutorials and coding on dApps, NFTs, NFT's marketplaces, and other topics.
  • Austin Griffith - Learn everything about how to build on Ethereum.
  • Moralis Web3 - Tutorials and Learn how to build dApps with Moralis web3 APIs.
  • Block Explorer - Tutorials about smart contract development, crypto, DeFi, tokens, NFTs, Ethereum.
  • Thirdweb - Tutorials about full stack web3 development.
  • Delphi Digital - Tapping the brains of leaders across all verticals in the digital asset industry.
  • Bankless Shows - The ultimate guide to crypto finance.
  • HashLips NFT - Web3 Focused and has content on Blockchain development, and other topics.
  • Whiteboard Crypto - Visually learn about Web3, Cryptocurrencies and many other concepts.
  • Jarrod Watts - Learn how to build full-stack dApps with thirdweb and other web3 concepts.

Book

Podcast

  • BAT Community - BAT, Brave and tech underneath.
  • Delphi Media - Bi-weekly episodes on investing in the digital asset industry.
  • On The Brink with Castle Island - Explore the political, ethical, and economic significance of Bitcoin and other public blockchains and talk to some of the leading experts in the industry.

Newsletter

Platform as a Service

Other

  • Chainlist - List of EVM networks, Chain IDs and Network IDs.
  • Crypto Payroll - Automate and simplify payroll operations in crypto.
  • Ethereum Ecosystem - Unofficial Ecosystem page for Ethereum and its Layer 2s featuring 900+ dApps and tools across Optimism, Base, Starknet and more.
  • Formo - Web3 forms and product analytics for web3 teams.

Contribute

Contributions are welcomed! Please read the contribution guidelines first.

Don't forget to star my repo ⭐