Last updated: January 19th 2020 ( Improve this guide )

Creating apps with Embark

Once Embark is installed, there are different ways to create a new decentralized application. Whether we intent to create an application that uses only Smart Contracts, or we want to take advantage of other decentralized features like storages and messaging, Embark provides options and templates for various scenarios. Let’s take a look!

Using the demo command

As discussed in our quickstart guide, the fastest way to get up and running with Embark is using its demo command. This will scaffold a new demo application and its needed environment in a folder called embark_demo. The demo application lets you play with Embark’s APIs through a pre-built web interface.

$ embark demo

Creating a new app

If you prefer starting entirely from scratch, while still getting a ready to use environment, Embark’s new command has got you covered. Similar to the demo command, it will scaffold a new project folder. However, it will not include the demo application. The green field is all yours.

Quick tip: Smart Contract only apps

Smart Contract developers that mainly want to focus on building and deploying Smart Contracts can take advantage of new command’s --contracts-only option, as described here.

$ embark new <YourDappName>

Creating apps from templates


The --template option has been deprecated in v5 and support will be removed in future versions.

Another possible scenario to start from is taking advantage of a template. Embark comes with templates for various environments and frameworks, but you can also use any template created by the community. In order to create a new app from a template, use the --template option and either specify a supported template name, or a Git host URL.

The following example creates a new application from Embark’s TypeScript template:

$ embark new <YourDAppName> --template typescript

To learn more about supported templates, head over to our templates or look out for embark-[template_name]-template repositories.

Templates can also be fetched from external resources as long as they can be referred to via Git host URLs. The following example fetches a template from a GitHub repository and uses that to create that app:

$ embark new <YourDAppName> --template

In fact, in case of GitHub, the same can be done with the username/repository shortcut:

$ embark new <YourDAppName> --template embarklabs/embark-vue-template

It is even possible to specify the branch by appending a # and the branch name you’re interested in:

$ embark new <YourDAppName> --template status-im/dappcon-workshop-dapp#start-here

Creating “contracts-only” apps

Sometimes, all we really want to do is creating, developing, compiling and deploying Smart Contracts without introducing an actual front-end that talks to them. Embark lets us scaffold apps that come with the most minimal setup needed to build and deploy our Smart Contracts, using the --contracts-only option.

The following command will create a project with all Embark services disabled except the blockchain service.

$ embark new <YourDAppName> --contracts-only

This will also affect the generated application structure, as Smart Contract only apps are less complex. Learn more about the application structure of Smart Contract only apps here.

A note on --simple

In earlier versions of Embark the same could be achieved using the --simple option. This option is still supported but will be deprecated and likely be removed in future versions of Embark.