daml/templates/create-daml-app
Gary Verhaegen c1559357f6
clean-up gsg README (#10641)
The current README dates back to when `create-daml-app` was its own
repo, and seems mostly written from the perspective of being the default
home page for the project. These days, `create-daml-app` serves two
purposes:

1. As the core starting point for the Getting Started Guide, we can
   assume people who are totally new to Daml will be following the
   getting started guide. How else would they even know about this
   template? In that case, I think it's fair to assume the user will *not*
   be looking to the README for guidance. Therefore, repeating the
   documentation here seems a bit pointless.
2. As a template to quickstart the creation of a "custom" app that is
   not the GSG. For that use-case, the README is the place where people
   would look for information, but at that point the information they're
   looking for are more along the lines of quick refreshers of what
   commands to run than explanations on how to use the app as Alice and
   Bob.

CHANGELOG_BEGIN
CHANGELOG_END
2021-08-23 10:59:35 +02:00
..
daml update copyright notices for 2021 (#8257) 2021-01-01 19:49:51 +01:00
ui s/DABL/Daml Hub/ (#10062) 2021-06-21 16:37:17 +02:00
.dlint.yaml update copyright notices for 2021 (#8257) 2021-01-01 19:49:51 +01:00
.gitignore Replace yarn with npm (#7222) 2020-09-08 12:07:04 +02:00
daml.yaml.template language: automatic ts codegen for daml start (#7516) 2020-10-02 15:43:06 +02:00
README.md.template clean-up gsg README (#10641) 2021-08-23 10:59:35 +02:00

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/digital-asset/daml/blob/main/LICENSE)

# __PROJECT_NAME__

See [documentation] for details.

[documentation]: https://docs.daml.com/getting-started/installation.html

Please ask for help on [the Daml forum] if you encounter any issue!

[the Daml forum]: https://discuss.daml.com

## Development Quick Start

You need to have [Node.js] and [Daml] installed.

[Node.js]: https://nodejs.dev
[Daml]: https://docs.daml.com

First, start the Daml components:

```bash
daml start
```

This will:

- Build you Daml code once.
- Generate JavaScript code (and TypeScript definitions) for your Daml types.
- Start a Daml sandbox gRPC server (on 6865).
- Start a Daml HTTP JSON API server (on 7575).
- Watch for the `r` key press (`r` + Enter on Windows); when pressed, rebuild
  all of the Daml code, push the new DAR to the ledger, and rerun the JS/TS
  code generation.

Next, start the JS dev server:

```bash
cd ui
npm install
npm start
```

This starts a server on `http://localhost:3000` which:

- Builds all of your TypeScript (or JavaScript) code (including type
  definitions from the codegen).
- Serves the result on :3000, redirecting `/v1` to the JSON API server (on
  `localhost:7575`) so API calls are on the same origin as far as your browser
  is concerned.
- Watch for changes in TS/JS code (including codegen), and immediately rebuild.

## Deploying to Daml Hub

To build everything from scratch:

```bash
daml build
daml codegen js .daml/dist/__PROJECT_NAME__-0.1.0.dar -o ui/daml.js
cd ui
npm install
npm run-script build
zip -r ../__PROJECT_NAME__-ui.zip build
```

Next you need to create a ledger on [Daml Hub], upload the files
`.daml/dist/__PROJECT_NAME__-0.1.0.dar` (created by the `daml build` command)
and `__PROJECT_NAME__-ui.zip` (created by the `zip` command based on the result
of `npm run-script build`).

[Daml Hub]: https://hub.daml.com

Once both files are uploaded, you need to tell Daml Hub to deploy them. A few
seconds later, your website should be up and running.