By Noah Zinsmeister
Today, I'm pleased to announce that I've transferred ownership of web3-react to Uniswap Labs. For the uninitiated, web3-react is a simple, maximally extensible, dependency minimized framework for building modern Ethereum dApps. The repository’s new home is now Uniswap/web3-react, though distribution will still be under the
@web3-react npm organization. This is the culmination of a multi-year, ongoing integration, and I'm thrilled that my fellow engineers at Uniswap Labs will be able to take an ownership stake in one of the most widely used web3 frontend libraries — with the goal of leveling up the library in the long run.
When I first became interested in Ethereum in late 2017, I started a side project called ProveIt. I had tons of fun brainstorming use cases for a public, immutable ledger, and writing my first smart contract. But I struggled to create even a rudimentary frontend for my project (though in the end, it turned out okay).
I quickly realized that I wasn't just a bad frontend developer — or at least that wasn't the only problem... Frontend tooling for dApps was in a sorry state, so in 2018 I set out to build what became web3-webpacked, a "drop-in web3 solution for single-page Ethereum dApps". This experience quickly brought me to the boundaries of my technical knowledge, and while the library was beginning to pick up steam, I realized that a more elegant approach built on stronger foundations was warranted. This approach was the beginning of web3-react, which is still in use today and has nearly 4k stars on Github and over 300k monthly downloads.
web3-react was actually (indirectly) responsible for landing me my role at Uniswap, and my first official project was updating the Uniswap interface to use my library (which I completed in commit #4e41391). This effort neatly separated the majority of wallet connection logic from app logic and offered easy access to a user's address and web3 connection throughout the codebase. This migration represented a big DevEx/UX improvement (at a time when dApps were regularly blocking interaction behind a required MetaMask popup!), and I was proud to have contributed, albeit in a small way, to the improvement of web3 developer tooling.
However, as the years went on, and wallet standards came and went, I was only able to give intermittent support to web3-react. Because I'd dogfooded the library, I always made an effort to keep it functional, but I occasionally fell behind the state of the art, as more and more of my time went into smart contract development.
Recently, I felt compelled to modernize the library in a v8 release, which is currently in a fully functional beta. This release dramatically improved performance and reduced developer friction, but it also included some breaking changes, and I quickly realized that as a solo maintainer I wasn't going to be able to offer the level of support and backwards compatibility that's required for a library used by applications with Uniswap's level of scale. By transferring ownership of web3-react to Uniswap Labs, we now have a much larger and more talented team dedicated to maintaining the library.
Being able to write and maintain open-source, copyleft code has always been a pleasure and an honor for me, and I'm excited for what this new chapter will bring to web3-react.
Download the repo here.