Create Dot App

June 17, 2026 ยท View on GitHub

A command-line interface (CLI) tool designed to streamline the development process for Polkadot-based decentralized applications (dApps).

Features

Choose the Polkadot stack you want to build with:

โšก Solidity - next

  • Next.js (App Router) with React 19 and Tailwind CSS
  • Web3Auth social/embedded wallet login
  • Wagmi for EVM wallet and contract interactions
  • Solidity smart contracts on Polkadot Hub (EVM)

๐ŸŸฃ Substrate (PAPI) - next-papi

  • Next.js (App Router) with React 19 and Tailwind CSS
  • PAPI (polkadot-api) for native Polkadot interaction
  • smoldot light client transport
  • Connect Wallet plus a sample system.remark extrinsic, wired out of the box

๐Ÿ’š Solidity (Nuxt) - nuxt

  • Nuxt (Vue 3) with Tailwind CSS, rendered as a client-side SPA
  • Web3Auth social/embedded wallet login
  • Wagmi for Vue for EVM wallet and contract interactions
  • Solidity smart contracts on Polkadot Hub (EVM)

๐Ÿ“ฆ Package Manager Support

Compatible with npm, yarn, pnpm, and bun

๐Ÿ“‹ Planned Templates

  • Frontend Frameworks: Svelte, SvelteKit, Solid, Remix
  • Backend Frameworks: Hono, Elysia, Fastify, H3

Want any specific UI or frontend framework such as Shadcn/UI, Chakra UI, or others? Let me know by opening an issue!

Usage

Interactive Mode

Create a new Polkadot dApp project with interactive prompts:

npx create-dot-app@latest

Enter your project name when prompted, then pick a stack: Solidity (next), Substrate (PAPI) (next-papi), or Solidity (Nuxt) (nuxt).

Non-Interactive Mode

Skip the prompts by providing options via CLI flags:

# Specify project name only (defaults to the next template)
npx create-dot-app@latest my-dapp

# Solidity dapp (Polkadot Hub EVM)
npx create-dot-app@latest my-dapp --template next

# Substrate dapp, PAPI SDK (Polkadot native)
npx create-dot-app@latest my-dapp --template next-papi

# Solidity dapp on Nuxt (Polkadot Hub EVM)
npx create-dot-app@latest my-dapp --template nuxt

CLI Options

OptionAliasDescription
--template <template>-tSpecify template (see available templates below)
--name <name>Specify project name (can also be first positional arg)
--help-hShow help message
--version-vShow version number

Available Templates

  • next - Solidity (Next.js + Web3Auth + Wagmi, Polkadot Hub EVM)
  • next-papi - Substrate (Next.js + PAPI light client, Polkadot native)
  • nuxt - Solidity (Nuxt + Web3Auth + Wagmi, Polkadot Hub EVM)

Quick Start

# Interactive mode (pick Solidity or Substrate)
npx create-dot-app@latest

# Non-interactive with a specific template
npx create-dot-app@latest my-dapp --template next         # Solidity
npx create-dot-app@latest my-dapp --template next-papi    # Substrate (PAPI)
npx create-dot-app@latest my-dapp --template nuxt         # Solidity (Nuxt)

# Navigate to project directory
cd my-dapp

# Install dependencies
npm install

# Start development server
npm run dev

Development

Building from Source

# Clone the repository
git clone https://github.com/preschian/create-dot-app.git
cd create-dot-app/cli

# Install dependencies
bun install

# Build the CLI
bun run build

# Run locally
node dist/index.js

Testing

This CLI includes comprehensive E2E tests using Vitest and node-pty:

# Run all tests
bun run test

# Run tests in watch mode
bun run test:watch

For more details about testing, see TESTING.md.

CI/CD

The project uses GitHub Actions for continuous integration:

  • CLI E2E Tests: Automated tests for all templates and features
  • Package Manager Tests: Tests template installations with npm, yarn, pnpm, and bun
  • Automated Releases: Publishes to npm on version tags

Contributing

We welcome contributions! Please feel free to submit issues and pull requests.


Get started building your Polkadot dApp today! ๐Ÿš€