# create-web3-dapp: a CLI that scaffolds an Alchemy dapp for you

> create-web3-dapp is a small Node CLI that asks a few questions and clones a ready made Scaffold Alchemy project, wiring up Next.js, React, Tailwind and a smart contract toolchain so a developer can go from nothing to a running dapp without assembling the pieces by hand. It is a project generator, not a framework, and its value is the template it points at.

**alchemyplatform/create-web3-dapp** — The complete toolbox to create web3 applications. 

- Repository: https://github.com/alchemyplatform/create-web3-dapp
- Website: https://docs.alchemy.com
- Stars: 908 · Forks: 255
- Language: JavaScript
- License: AGPL-3.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/alchemyplatform-create-web3-dapp

## It clones a template rather than generating code

create-web3-dapp is described as the complete toolbox to create decentralized applications, and the documentation gives a one line definition: a CLI to create dapps using Scaffold Alchemy.

The mechanics are worth being precise about, because the name suggests code generation and the implementation is template distribution. The dependency list settles it. git-clone at 0.2.0 is there to fetch a repository, fs-extra at 10.1.0 to copy files around, and there is no template engine, no code emitter and no AST manipulation in the list. What the CLI does is ask questions and clone a prepared project.

The prompts are handled by inquirer at 12.4.1, which is the standard interactive prompt library for Node command line tools. The spinner during the clone comes from ora at 8.2.0, terminal output styling from chalk at 5.4.1, and the CLI argument parsing from commander at 10.0.1. figlet at 1.8.0 is there for the ASCII banner that these generators conventionally print.

One dependency is more interesting than the rest: @openzeppelin/wizard at 0.2.3. The OpenZeppelin Wizard generates contracts from audited templates, so the CLI can offer contract choices as part of the setup flow rather than making you leave the terminal to pick one.

So the tool is a guided entry point into a specific template. The value is real, but it is a value of convenience and of the answers the prompts ask, not of code the CLI writes.

The type field is set to module, so the project is an ES module, and the bin entry maps the command name to ./index.js.

## Running it takes one command and a few prompts

The requirements are Node at version 18.18 or newer, npm, and Git. Git being a listed prerequisite is a direct consequence of the clone-based mechanism.

With those in place, creating a project is a single command.

```bash
npx create-web3-dapp@latest
```

The documentation describes what happens next as filling out a few prompts on the CLI, and once those are completed you have a new web3 dapp.

The @latest tag matters more than it looks. This tool exists to pull a template that the maintainers control and update, so pinning a version would freeze you on an old template. The trade is that the generated project changes under you when the template is updated, which is the reason to read the release notes before pulling in a new one.

For working on the CLI itself, the package.json defines a start script that links the package locally and then runs it, so you can exercise your changes against the real prompts.

```bash
npm link && npx create-web3-dapp
```

And a lint script that runs eslint over the JavaScript with the .js extension and then formats with prettier.

```bash
eslint . --ext .js && yarn prettier --write .
```

Note that the lint script shells out to yarn while the package is otherwise npm oriented, which is a small inconsistency in a repository that otherwise looks consistent.

After the project is generated, the documentation points you at the Scaffold Alchemy quickstart to learn how to set up your environment and project, and at docs.alchemy.com for the technical details. The generator gets you a directory; the rest of the setup, including whatever credentials your app needs, happens after.

## What the template gives you: the stack is decided for you

The keyword list in the package manifest is effectively a description of the generated project, and it is more informative than the short documentation.

On the application side there is nextjs, react and create-react-app, with tailwind and chakra-ui both listed as styling options, which suggests the template supports a choice between them rather than one fixed choice. wagmi appears as well, the React library for Ethereum.

On the contract side there are hardhat and foundry, the two dominant smart contract toolchains, and solidity for the language. The @openzeppelin/wizard dependency sits alongside these.

On the network side the keyword list names ethereum, polygon, polygon-zkevm, optimism and arbitrum, so the prompts almost certainly let you pick a target chain, and those names reflect the chains Alchemy serves rather than an exhaustive list of what exists.

The ethereum and web3js keywords describe the client library the generated app uses to talk to the chain, and alchemysdk is there for the Alchemy specific pieces.

Putting it together, the generated project is a Next.js and React application with a Tailwind or Chakra interface, wagmi for wallet connection, a Hardhat or Foundry setup for the contracts, and a chosen L2 or L1 target. That is a coherent and opinionated stack, and it is the reason the CLI is worth using: making those choices consistently and getting the wiring between them right is the boring work that takes an afternoon when you do it by hand and takes two minutes when you do it here.

The trade is that you are choosing this stack, not learning about stacks. If your team already has strong opinions about the contract toolchain or the styling library, the prompts will not help, and the value of the generator drops to the convenience of a working directory.

## Maintenance state and the version numbers disagree

The release history is thin in a way that deserves a note. There is a single listed release, 0.2.50-up with the tag shown as v0.2.52, dated 2023-03-25.

Meanwhile the package.json says the version is 1.4.0, and the last push was on 2026-10-14.

Those three facts do not line up, and the most likely explanation is that the version in the manifest is the published npm version while the GitHub release list only captured one tagged release under a different naming scheme, the 0.2.50-up and v0.2.52 pairing suggesting automated publishing that appends its own suffix. The important thing for a user is not the naming but the consequence: there is no straightforward release history to consult when you want to know what changed in the template between versions, and the npm version number is the number that matters.

The push date of 2026-10-14 is recent enough that the repository is being worked on. What the documentation does not provide is any statement about what changed in the template, or whether a scaffold update will break an existing generated project. There is no upgrade path described here.

That is the gap to plan for. Generators like this one are most useful at the start of a project and least useful later, when the generated code has diverged from the template and the template has moved on. If you take this approach, record which version you scaffolded with and expect to merge upstream changes by hand later.

There is also no test suite. The test script is a placeholder that echoes an error and exits with status 1, which is the conventional create-react-app style placeholder and is consistent with a project whose real tests would live in the generated output rather than in the generator.

## Licence, repository shape and where this sits against alternatives

The licence field on the repository says AGPL-3.0, which is a strong copyleft licence and a different choice from the permissive licences that most scaffolding tools use. This is not legal advice, but the practical consequence is worth naming. The CLI itself being AGPL means a modified version distributed over a network carries the source disclosure obligation. If you fork the generator to change the prompts, or to change what gets cloned, that obligation applies to your fork.

The repository layout is small and conventional: an index.js entry point, a src/ directory holding the implementation, an .eslintrc.js, a .prettierrc with a .prettierignore, a .vscode/ directory, a contributing.md, a funding.json, and the package-lock.json. The funding.json is the mechanism for the sponsor links, and the documentation points at Alchemy's Twitter and Discord as the community channels rather than GitHub issues as the primary route.

The alternative approaches differ in what they assume. A framework like create-react-app or create-next-app generates an application from a maintained template and then gets out of the way, leaving you with a normal project and no ongoing dependency on the generator. That is the right choice when your goal is a web application with a smart contract in it, which is to say most of the time.

Scaffold Alchemy differs by bundling the whole stack, including the chain client and the contract toolchain, in one template. create-web3-dapp is the front door to that bundle, and its value over cloning the Scaffold Alchemy template by hand is the prompting and the wiring, not the templates themselves.

A third approach, which is what a lot of experienced teams do, is to write the two halves separately: a contract project with Foundry or Hardhat and a frontend with your own choice of framework, connected by a small contract interface. That is more initial work and it produces a codebase with no coupling to a vendor's opinions, which is what you want if the project outlives the framework.

## Conclusion

create-web3-dapp suits a developer who has decided to build on Alchemy's Scaffold Alchemy and wants the boilerplate in one command rather than assembled from a template by hand. It does not suit someone who has not chosen a stack yet, since the prompts are about configuring a specific template rather than choosing between approaches, and it does not suit a project that cannot depend on Alchemy's infrastructure or documentation. Before running it, read the package.json dependencies, since they reveal that the CLI clones a git repository and prompts with inquirer rather than generating code, and check that your Node version is 18.18 or newer.

## FAQ

### How do I create a web3 dapp with create-web3-dapp?

Install Node 18.18 or newer, npm and Git, then run npx create-web3-dapp@latest and answer the prompts on the CLI. The result is a new project directory, and the documentation then points you at the Scaffold Alchemy quickstart for environment setup.

### What does create-web3-dapp actually generate?

The dependency list shows that it prompts with inquirer and clones a prepared project with git-clone, rather than emitting code from templates. The resulting project is a Next.js and React application with wagmi for wallet connection, Tailwind or Chakra UI, and a Hardhat or Foundry setup for the contracts, targeting a chain you pick from the prompts.

### Which chains can I target with create-web3-dapp?

The package keywords name ethereum, polygon, polygon-zkevm, optimism and arbitrum, which reflects the networks Alchemy serves. The chain is chosen through the CLI prompts during setup.

### What licence does create-web3-dapp use?

The licence field on the repository says AGPL-3.0, a strong copyleft licence, with a LICENSE file at the root. If you fork the generator to change the prompts or the cloned templates, that copyleft obligation applies to your fork.

### Does create-web3-dapp have a test suite?

No. The test script in package.json is a placeholder that prints Error: no test specified and exits with status 1. The repository instead relies on eslint and prettier through the lint script, and on the generated project's own tests.

## Sources

- [alchemyplatform/create-web3-dapp on GitHub](https://github.com/alchemyplatform/create-web3-dapp)
- [License: AGPL-3.0](https://github.com/alchemyplatform/create-web3-dapp/blob/main/LICENSE)
- [Project website](https://docs.alchemy.com)
- [README](https://github.com/alchemyplatform/create-web3-dapp/blob/main/README.md)
- [Releases](https://github.com/alchemyplatform/create-web3-dapp/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/alchemyplatform-create-web3-dapp
