Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Next.js dApp template with Tailwind CSS, built with Wagmi, TanStack Query, and RainbowKit, written in TypeScript.
Next.js dApp Template is a boilerplate for building decentralized applications on Ethereum, combining Next 15, TypeScript, Tailwind CSS, and the wagmi, viem, and RainbowKit Web3 libraries.
This is a starter repository for a decentralized application (dApp) built on Next.js 15. It takes a fresh Next.js project and pre-wires the Ethereum development stack: wagmi for React hooks, viem for low-level blockchain interactions, and RainbowKit for wallet connection UI. The output is a production-ready app scaffold with a dev server, build pipeline, and linter already configured.
The template bundles the core tooling needed to start a dApp project in one git repository.
The template is aimed at developers who want to skip the repetitive setup of Ethereum frontend tooling.
Because the Web3 layer is preconfigured, the template adapts to several common dApp patterns.
The template follows a standard Next.js project structure. Run npm run dev to start the development server at http://localhost:3000. The app is already configured with the Web3 providers (RainbowKit, wagmi) so you can immediately create components that interact with Ethereum wallets and contracts. Production builds are generated with npm run build and served with npm run start.
Yes, this is an open-source boilerplate hosted on GitHub. You can clone it, use it for personal or commercial projects, and modify it.
The template targets Ethereum-compatible networks via viem and wagmi. It uses RainbowKit, which supports multiple EVM-compatible chains, and you can configure additional networks in the wagmi setup.
No, the template is frontend-only. It provides the UI and Web3 connection layer; smart contracts need to be added separately or referenced via their addresses.
You can modify the wagmi configuration file to define additional chains available in RainbowKit. The template uses viem's chain definitions, so adding a chain is a matter of importing it and adding it to the array.
