Convenience libraries
Various convenience libraries exist for dapp developers. Some of them simplify the creation of specific user interface elements, some entirely manage the user account onboarding, and others give you a variety of methods for interacting with smart contracts, for a variety of API preferences (for example, promises, callbacks, and strong types).
The MetaMask Ethereum provider API is very simple, and wraps Ethereum JSON-RPC formatted messages, which is why some developers use a convenience library for interacting with the provider, such as Ethers, web3.js, and Embark. You can refer to those tools' documentation to use them.
You can use MetaMask SDK, which provides a reliable, secure, and seamless connection from your dapp to MetaMask. It onboards users smoothly from multiple dapp platforms using the MetaMask browser extension or MetaMask Mobile, and your dapp can call any Wallet API methods with the SDK installed.
You can also use Web3-Onboard with MetaMask SDK in your JavaScript dapp.