create-dynamic-app-test
v1.0.0
Published
CLI tool to generate sample applications using Dynamic's web3 authentication
Downloads
9
Maintainers
Readme
Create Dynamic App

A powerful CLI tool to generate starter applications with Dynamic's web3 authentication. Quickly bootstrap projects using your preferred frameworks, libraries, and blockchain networks.
Table of Contents
- Create Dynamic App
Installation
You can use Create Dynamic App directly with npx:
npx create-dynamic-app my-project-nameOr install it globally:
npm install -g create-dynamic-app
create-dynamic-app my-project-nameQuick Start
# Create a new project with interactive prompts
npx create-dynamic-app my-web3-app
# Follow the prompts to select:
# 1. Framework (Next.js, React, React Native)
# 2. Blockchain chains to support
# 3. Library preferences (Viem/Ethers, Wagmi)Features
- Multiple Framework Support: Generate applications using Next.js, React, or React Native
- Blockchain Flexibility: Choose from 7 different blockchain networks to include
- Library Options: Select your preferred Ethereum libraries (Viem or Ethers.js)
- Wagmi Integration: Optional Wagmi support for enhanced React hooks
- Ready-to-use Components: Includes auth components and chain-specific utility methods
- Dark/Light Mode: Built-in theme support that respects system preferences
Supported Chains
The CLI supports the following blockchain networks:
| Chain | Package | Features |
| -------- | ------------------------ | ------------------------------------------------ |
| Ethereum | @dynamic-labs/ethereum | Full wallet connection, signing, transactions |
| Solana | @dynamic-labs/solana | Wallet connection, signing, program interactions |
| Flow | @dynamic-labs/flow | Wallet integration and authentication |
| Starknet | @dynamic-labs/starknet | Layer 2 integration and account management |
| Algorand | @dynamic-labs/algorand | Wallet connection and transaction signing |
| Cosmos | @dynamic-labs/cosmos | Multi-chain Cosmos ecosystem support |
| Bitcoin | @dynamic-labs/bitcoin | Basic Bitcoin wallet connectivity |
Project Options
Frameworks
- Next.js: Server-side rendering, file-based routing, optimized for production
- React: Client-side SPA with Create React App configuration
- React Native: Mobile application support with Expo
Library Options
When including Ethereum support, you can choose:
- Viem: Modern, lightweight TypeScript library for Ethereum
- Ethers.js: Popular, full-featured Ethereum library
- Wagmi: React hooks for Ethereum (can be combined with either Viem or Ethers)
Usage Examples
Generate a Next.js App with Specific Options
# To create a specific Next.js project
npx create-dynamic-app my-next-app --framework nextjs --chains ethereum,solana --library viem --wagmiGenerate a React App
# To create a specific React project
npx create-dynamic-app my-react-app --framework react --chains ethereum --library ethersGenerate Projects for Development/Testing
# Generate all variations for testing
npm run generate:allProject Structure
The generated projects follow best practices for their respective frameworks:
Next.js Project
my-next-app/
├── app/ # Next.js app directory
│ ├── components/ # React components
│ ├── page.tsx # Main application page
│ └── layout.tsx # Root layout
├── lib/ # Utility functions
│ ├── dynamic.ts # Dynamic SDK exports
│ ├── providers.tsx # Context providers
│ └── wagmi.ts # Wagmi configuration (if selected)
├── public/ # Static assets
└── package.json # Dependencies and scriptsReact Project
my-react-app/
├── public/ # Static assets
├── src/ # Source code
│ ├── App.js # Main application component
│ ├── Main.js # Content component
│ ├── Methods.js # Chain-specific utility methods
│ └── index.js # Application entry point
└── package.json # Dependencies and scriptsTroubleshooting
Common Issues
Issue: Error installing dependencies with npm
Solution: Try using --legacy-peer-deps flag or use yarn:
cd my-dynamic-project
npm install --legacy-peer-depsIssue: Conflicts with Solana dependencies Solution: The generator adds necessary overrides. If you have issues, manually set:
"overrides": {
"rpc-websockets": "7.10.0",
"@solana/web3.js": "1.91.6"
}Issue: Environment ID is missing Solution: Replace the placeholder in providers.tsx/App.js:
environmentId: "YOUR_ENVIRONMENT_ID", // Get from Dynamic dashboardContributing
Contributions are welcome! To contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and linting (
npm run lint && npm test) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
ISC License - see the LICENSE file for details.
