@metamask/onboarding
Assists with onboarding new MetaMask users
This package has a good security score with no known vulnerabilities.
Community Reviews
Simple but dated library with no observability and stale maintenance
The real concern is the lack of updates since 2021. While the functionality is simple enough that this might not matter today, the web3 ecosystem moves fast. No timeout configuration exists for the forwarder check, and there's no error handling for edge cases like popup blockers or CSP violations. You'll need to build your own retry logic and state management around it.
Resource-wise it's lightweight with minimal memory footprint, but the redirect behavior opens tabs that you can't control programmatically. No connection pooling concerns since it's purely client-side DOM manipulation. For production use, expect to wrap this in your own observability layer and handle edge cases manually.
Best for: Simple prototypes or MVPs where you just need basic MetaMask detection and don't need production observability.
Avoid if: You need detailed onboarding analytics, custom error handling, or active maintenance for a production dapp.
Simple but stagnant - does one thing well, but hasn't aged gracefully
The main concern is that this package hasn't been updated since mid-2021, which is problematic given how rapidly the Web3 ecosystem evolves. The documentation is minimal - essentially just the README with basic examples. Error handling is nearly non-existent; you're left to manually check `MetaMaskOnboarding.isMetaMaskInstalled()` and handle edge cases yourself. The package also uses the legacy `ethereum.isMetaMask` detection which can have false positives with other wallets.
For simple 'Install MetaMask' flows, it reduces boilerplate. However, modern dapps often need multi-wallet support, and this package locks you into MetaMask-only onboarding. The lack of maintenance means no updates for newer MetaMask features or improved detection methods.
Best for: Simple single-wallet dapps that only support MetaMask and need basic installation prompting for desktop users.
Avoid if: You need multi-wallet support, robust mobile handling, or depend on actively maintained dependencies for production apps.
Simple onboarding utility but dated and limited in scope
However, the package feels frozen in time. Last updated in 2021, it hasn't evolved with modern MetaMask practices or the broader wallet ecosystem. The forwarder link it uses can feel clunky compared to directing users to metamask.io directly. Error handling is minimal - there's little feedback when things go wrong, and the library doesn't handle edge cases like mobile browsers or alternative wallets gracefully.
The documentation is bare-bones but sufficient for the narrow use case. You'll find yourself writing additional logic around it to handle mobile detection, alternative wallet support, and user state management. For a simple 'install MetaMask' flow it works, but modern dApps often need more sophisticated onboarding that considers multiple wallets and connection states.
Best for: Simple dApps that only support MetaMask and need basic install detection for desktop users.
Avoid if: You need multi-wallet support, mobile-friendly onboarding, or a maintained library with active development.
Sign in to write a review
Sign In