Quickly build apps backed by the NEAR blockchain
Make sure you have a current version of Node.js installed โ we are targeting versions 16+
for JS contracts and 18+
for frontend/gateways.
Read about other prerequisites in our docs.
To create a new NEAR project run this and follow interactive prompts:
npx create-near-app@latest
Follow the instructions in the README.md in the project you just created! ๐
You can create contracts written in:
Javascript
Rust
::: We strongly recommend you to follow our smart contract quickstart if you are new to NEAR contracts. :::
For testing we use a sandboxed environment. You can write the tests in JavaScript or Rust.
You can create a web application in:
::: We strongly recommend you to follow our web app quickstart if you are new to NEAR WebApps. :::
Consider using
pnpm
to handle the frontend, since it is much faster thannpm
andyarn
.
This CLI supports arguments to skip interactive prompts:
npx create-near-app
<project-name>
--frontend next-app|next-page|none
--contract js|rs|none
--install
Use --install
to automatically install dependencies from all package.json
files.
When using arguments, all arguments are required, except for --install
.
Check out our documentation or chat with us on Discord. We'd love to hear from you!
To make changes to create-near-app
itself:
- clone the repository (Windows users, use
git clone -c core.symlinks=true
) - in your terminal, enter one of the folders inside
templates
, such astemplates/frontend/next-app
- now you can run
pnpm install
to install dependencies andpnpm run dev
to run the local development server, just like you can in a new app created withcreate-near-app
create-near-app
uses semantic versioning and auto-generates nice release notes & a changelog all based off of the commits. We do this by enforcing Conventional Commits. In general the pattern mostly looks like this:
type(scope?): subject #scope is optional; multiple scopes are supported (current delimiter options: "/", "\" and ",")
Real world examples can look like this:
chore: run tests with GitHub Actions
fix(server): send cors headers
feat(blog): add comment section
If your change should show up in release notes as a feature, use feat:
. If it should show up as a fix, use fix:
. Otherwise, you probably want refactor:
or chore:
. More info
If you want to deploy a new version, you will need two prerequisites:
- Get publish-access to the NPM package
- Get write-access to the GitHub repository
- Obtain a personal access token (it only needs the "repo" scope).
- Make sure the token is available as an environment variable called
GITHUB_TOKEN
Then run one script:
npm run release
Or just release-it
This repository is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See LICENSE and LICENSE-APACHE for details.