Getting Started
lyrn creates a repository that is ready to work in: Vite, React, TypeScript, Tailwind and the dowel design system, plus the things a project usually grows only after the third time somebody wishes it had them — a CI gate, a changelog, an ADR directory, an editor config.
Install
Section titled “Install”$ npm install -g lyrnOr with cargo:
$ cargo install lyrnOr without a package manager at all:
$ curl -fsSL https://raw.githubusercontent.com/lacodda/lyrn/main/tools/install.sh | shirm https://raw.githubusercontent.com/lacodda/lyrn/main/tools/install.ps1 | iexCreate a project
Section titled “Create a project”$ lyrn new demo-app --accent kilnaCreated 44 files in `demo-app`.Installing dependencies... doneStarting the repository... doneStaging the first commit... doneCreating the first commit... done
Next: cd demo-app pnpm devThe project is already a git repository with one Conventional Commit in it, its
dependencies are installed, and pnpm dev runs.
Check it
Section titled “Check it”$ cd demo-app$ pnpm lintThat single script is eslint, tsc --noEmit and the tests — the same gate the
generated .github/workflows/ci.yml runs. A green terminal means a green pull
request.
See it first
Section titled “See it first”Nothing has to be written to find out what would be:
$ lyrn new demo-app --dry-runWould create 44 files in `demo-app`:
├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.yml │ ├── workflows/ │ │ ├── audit.yml │ │ └── ci.yml │ └── pull_request_template.md ├── assets/ ...Answer nothing
Section titled “Answer nothing”With a terminal attached lyrn asks for what it is missing. In a script or in CI there is nobody to ask, so it takes the defaults and never blocks:
$ lyrn new demo-app --yes