Environment
Everything needed for getting started with kickstartDS is a Node & npm environment.
Additionally you'll probably want to use an editor like Visual Studio Code to work on your Design System.
This also enables you to take advantage of smart features, like code completion or inline documentation, while coding.
Terminal
Working with the terminal
Working with a Design System code base in general, and with kickstartDS specifically, often involve working with your local terminal.
We can't give you an exhausting intro to that here, but the MDN one is a good start:
Understanding client-side web development tools > Command line crash course
Generally your best starting point is the built-in terminal, included with most Operating Systems (OS). There's nothing prohibiting you from using other terminal solutions or configurations, but if you happen to come accross something strange feel free to open a ticket on Github.
Included terminal options per OS
- Windows: The older Command Line Shell or the newer PowerShell.
- macOS: The built-in Terminal app
- Linux: Choice of terminal can vary wildly, depending on distribution (Ubuntu, Debian, Arch, etc) and user preference
Node & npm
As with most modern frontend tooling, and JavaScript based projects in general, kickstartDS is based in Node. You can either download current prebuilt installation packages for all common platforms directly from their downloads page, which include both Node in a specific version, as well as the corresponding version of npm as the package manager, or you use a version manager for Node like nvm
, to be more flexible in switching used versions of both.
We're currently on Node LTS version 16.14.2
. See details about it here. We generally adopt new LTS releases (the even numbered ones) when they become stable, and supported by all of our associated downstream tooling (like integrations, themes, etc).
Verifying installation
To check if your local installation works and matches your expecation, open a new terminal window and run:
_10node --version_10npm --version
Which should result in:
_10v16.14.2_108.19.2
Usage with nvm
It's recommended to use a Node version manager. We prefer using nvm
, a pretty widely used, terminal based solution:
https://github.com/nvm-sh/nvm
We also include a .nvmrc
file with all our repositories, specifying the currently used and supported version, for example this one for the main repository of kickstartDS:
https://github.com/kickstartDS/kickstartDS/blob/next/.nvmrc
With nvm
installed, just switch to the folder and call:
_10nvm use
Which should net you something like this:
_10Found '/home/julrich/Projects/Frontend/code/kickstartDS/.nvmrc' with version <16.14>_10Now using node v16.14.2 (npm v8.19.2)
If the needed version is not found locally, you're automatically prompted with the correct command to install it. This ensures general compatibility with provided code and it's associated processes.
Automatic Node version change
Your currently selected working version of Node and npm can also be chosen completely automated, based on your local shell configuration. This is a bit more environment specific, but enables (for example) version changes based on your current working directory:
Read more on the nvm
section about Deeper Shell Integration.
Usage with yarn
We use yarn
for package management ourselves, including their workspaces feature... enabling having all modules / packages together in our single mono repository.
Just replace commands normally prefixed with npm
by their corresponding yarn
equivalents.
Only ever use one package manager
You should never mix package manager use. So if you're opting for yarn
, be careful to not call commands link npm install
, or npm run
any longer. Just use their counter parts yarn install
/ yarn
or yarn run
instead.
yarn
uses a yarn.lock
file to pinpoint your exact versions, whereas npm
uses package-lock.json
. This might also give you an indication as to which package manager was used before in a project.
Other package managers
Currently the use of pnpm
or Nx
is untested. There's nothing immediately coming to mind blocking their use, though. If you happen to use one of them, and come upon problems, feel free to open a ticket on our Github repository.
Almost all tooling for modern JavaScript projects is based in Node.js. The download page has prebuilt installation packages for all platforms. We recommend selecting the LTS version to ensure best compatibility.
Git
You'll probably want to have Git
support installed on your system, too. This is not strictly a requirement for working with kickstartDS, but is the recommended way to work with code today. Learn more about Git
on their official website.
Next to your locally installed Git
client, most of the time you'll interact with a hosted repository.
This might live on popular SaaS hosting providers such as Github, Gitlab or Bitbucket, on privately hosted providers, based on those, or a variety of other flavours... up to completely local repositories just used for personal use.
kickstartDS is hosted on Github
, but where your Design System repository is hosted depends on your own setup.
You can find our repository here: github.com/kickstartDS/kickstartDS
Popular configuration guides include:
GitHub
: Set up GitGitlab
: Installing GitBitbucket
: Install Git
Git GUI
If working with the terminal is not your thing, you might want to use a dedicated Git GUI (Graphical User Interface). For an overview have a look at the options for your operating system.
GitHub Desktop is an excellent choice when working with Github
, but in general the Visual Studio Code Git extensions are an integrated, natural alternative for developers. Learn more about them on their intro page.
Git TUI
If you just want to have a nicer terminal based experience, you might have a look at the ncurses
-based tig
:
jonas.github.io/tig