Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

380 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

create-solana-dapp

The fastest way to create Solana apps πŸš€

Run one command to generate a new project:

# npm
npm create solana-dapp@latest

# pnpm
pnpm create solana-dapp@latest

# bun
bun create solana-dapp@latest

# yarn (only supports the 'latest' tag)
yarn create solana-dapp

npm version npm downloads

This is a CLI that automates the initialization of predefined Solana templates (see below).

Templates

The official create-solana-dapp templates can be found in this repository.

External templates

You can also use create-solana-dapp to create projects using external templates:

The --template (or -t) flag supports anything that giget supports

# npm
npm create solana-dapp@latest -t <github-org>/<github-repo>

# pnpm
pnpm create solana-dapp@latest -t <github-org>/<github-repo>

# yarn
yarn create solana-dapp -t <github-org>/<github-repo>

Init script

Template authors can add an init script to the package.json file to help set up the project.

Use this script to return instructions to the user, check the anchor and solana versions, and replace text and files in the project.

{
  "name": "your-template",
  "create-solana-dapp": {
    // These instructions will be returned to the user after installation
    "instructions": [
      "Run Anchor commands:",
      // Adding a '+' will make the line bold and '{pm}' is replaced with the package manager
      "+{pm} run anchor build | test | localnet | deploy",
    ],
    // Optional. Force this template to use an installed package manager.
    // An explicitly selected different package manager will stop installation.
    "packageManager": "bun",
    // Rename is a map of terms to rename
    "rename": {
      // Rename every instance of counter
      "counter": {
        // With the name of the project
        "to": "{{name}}",
        // In the following paths
        "paths": ["anchor", "src"],
      },
    },
    // Optional. If omitted, the default Solana skill is installed.
    // Set to [] to skip skill installation, or provide one or more skill repo URLs to replace the default.
    "skills": ["https://github.com/org/skill-repo"],
    // Optional boolean CLI flags declared by this template.
    "options": {
      // `--ollama` is selected when no option in the "engine" group is passed.
      "ollama": {
        "default": true,
        "description": "Configure the template for Ollama",
        "group": "engine",
        "instructions": ["Start Ollama"],
        "rename": {
          "__MODEL__": {
            "to": "qwen3:0.6b",
            "paths": ["request.json"],
          },
        },
      },
      // Passing `--llamacpp` replaces the default from the same group.
      "llamacpp": {
        "description": "Configure the template for llama.cpp",
        "group": "engine",
        "instructions": ["Start llama-server"],
        "rename": {
          "__MODEL__": {
            "to": "local-model",
            "paths": ["request.json"],
          },
        },
      },
    },
    // Check versions and give a warning if it's not installed or the version is lower
    "versions": {
      "adb": "33.0.0",
      "anchor": "0.30.1",
      "solana": "1.18.0",
    },
  },
}

Pass template-defined options as boolean long flags when creating the project:

pnpm create solana-dapp@latest my-inference-app \
  --template pay-gate-inference \
  --ollama

When no flag is passed for an option group, the group's default option is selected. Passing another option from that group, such as --llamacpp, replaces the default.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for more info.

Local development

Tip

This project uses pnpm as the package manager. If you don't have it, you can install it using corepack:

corepack enable
corepack prepare pnpm@10 --activate

To install the project locally, run the following commands:

git clone https://github.com/solana-foundation/create-solana-dapp.git
cd create-solana-dapp
pnpm install
pnpm build

Detailed instructions on the local development workflow are outlined in the Development Workflow section of the CONTRIBUTING guidelines.