/create-cosmos-app

Set up a modern Cosmos app by running one command ⚛️

Primary LanguageTypeScriptMIT LicenseMIT

create-cosmos-app

Set up a modern Cosmos app by running one command ⚛️

Demo

cosmos-kit.mp4

Overview

# install
npm install -g create-cosmos-app

# run one command
create-cosmos-app

> name: my-app
cd my-app
yarn && yarn dev

# now your app is running on localhost:3000!

Get Started Immediately

You don’t need to install or configure cosmjs, keplr, nextjs, webpack or Babel.

Everything is preconfigured, ready-to-go, so you can focus on your code!

  • ⚡️ Connect easily to keplr + keplr mobile via wallet connect
  • ⚛️ Sign and broadcast with cosmjs stargate + cosmwasm signers
  • 🛠 Render pages with next.js hybrid static & server rendering
  • 🎨 Build awesome UI with Cosmos Kit and Chakra UI
  • 📝 Leverage chain-registry for Chain and Asset info for all Cosmos chains

Education & Resources

🎥 Checkout our videos to learn to learn more about create-cosmos-app and tooling for building frontends in the Cosmos!

Checkout cosmos-kit for more docs as well as cosmos-kit/react for getting cosmjs stargate and cosmjs signers.

Creating an App

To create a new app, you may choose one of the following methods:

global install

npm install -g create-cosmos-app

Then run the command:

create-cosmos-app

we also made an alias cca if you don't want to type create-cosmos-app:

cca

npx

npx create-cosmos-app

npm

npm init cosmos-app

Yarn

yarn create cosmos-app

Examples

Explore examples!

cca --example

Send Tokens

cca --name send-example --example --template send-tokens

Stake Tokens

cca --name stake-example --example --template stake-tokens

Vote Proposal

cca --name vote-example --example --template vote-proposal

IBC Transfer

cca --name ibc-example --example --template ibc-transfer

Osmosis

uses osmojs

cca --name osmo-example --example --template osmosis

or the cosmwasm example:

cca --name osmowasm-example --example --template osmosis-cosmwasm

Swap Tokens

uses osmojs to swap tokens

cca --name swap-example --example --template swap-tokens

Provide Liquidity

uses osmojs to provide liquidity

cca --name liquidity-example --example --template provide-liquidity

Asset List

cca --name asset-list-example --example --template asset-list

Juno

uses juno-network

cca --name juno-example --example --template juno

Stargaze

uses stargazejs

cca --name stargaze-example --example --template stargaze

NFT

uses stargazejs

cca --name nft-example --example --template nft

CosmWasm

cca --name cosmwasm-example --example --template cosmwasm

Tailwind

cca --name tailwind-example --example --template tailwindcss

Development

Because the nature of how template boilerplates are generated, we generate yarn.lock files inside of nested packages so we can fix versions to avoid non-deterministic installations.

When adding packages, yarn workspaces will use the root yarn.lock. It could be ideal to remove it while adding packages, and when publishing or pushing new changes, generating the nested lock files.

In the root, to remove all nested lock files:

yarn locks:remove

When you need to remove/generate locks for all nested packages, simply run yarn locks in the root:

yarn locks

Credits

🛠 Built by Cosmology — if you like our tools, please consider delegating to our validator ⚛️

Code built with the help of these related projects: