create-gcds-app
v0.1.0
Published
Create a new project from official GC Design System starter templates.
Readme
create-gcds-app
Create a new project from official GC Design System starter templates.
Note: This tool is currently in testing and not yet officially supported. It is available in English only. French documentation is coming soon.
Usage
npx create-gcds-app@latestYou'll be prompted for a directory, a framework, and whether to install dependencies and initialize git.
How it works
The starter apps are not bundled into this package. At runtime the CLI fetches the chosen template directly from the cds-snc/gcds-examples repo (starter-apps/<framework>/<framework>-template) on the main branch, using giget. This means:
- Users always get the latest starter app — no CLI republish required when a template changes.
node_modules/,dist/, and other gitignored files are never copied, because giget pulls a git tarball that only contains committed files.
After download, the CLI patches the new project's package.json name and the README's H1 to match the directory name, then optionally runs git init and installs dependencies with whichever package manager invoked it.
Adding a framework
Templates are declared in src/templates.ts. Adding HTML, Angular, or anything else is a single entry in the TEMPLATES array — the prompt, fetch spec, and CI validation matrix all derive from it.
Development
npm install
npm run dev
npm run build
npm run typecheck
# Try it locally against a real fetch:
node dist/index.js /tmp/test-app --template vue --no-installPublishing
npm version <patch|minor|major>
npm publish # prepublishOnly runs the buildBecause templates are fetched at runtime, you only need to republish when the CLI's own behaviour changes, not when a starter app changes.
