by rtfeldman

rtfeldman /elm-workshop

An introductory Elm workshop. Video available on Frontend Masters!

438 Stars 164 Forks Last release: Not found Other 276 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

This work is licensed under a Creative Commons Attribution 4.0 International License. Enjoy!

Getting Started


  1. Install Node.js 6.9.2 or higher

  2. Add a plugin for your editor of choice: Atom, Sublime Text, VS Code, Light Table, Vim, Emacs, Brackets

  3. Not required, but highly recommended: enable "

    on save" in your editor.

  4. Run the following command to install everything else:

npm install -g elm elm-test elm-css [email protected] [email protected]

Note to macOS users: If step 4 gives you an

error, try this fix:
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Then re-run step 4.

Clone this repository

Run this at the terminal:

git clone https://github.com/rtfeldman/elm-workshop.git
cd elm-workshop

Note: Tab characters are syntax errors in Elm code, so if your editor uses them for indentation, definitely switch it to spaces for this workshop!

Create a GitHub Personal Access Token

We'll be using GitHub's Search API, and authenticated API access lets us experiment without worrying about the default rate limit. Since we'll only be accessing the Search API, these steps can be done either on your personal GitHub account or on a throwaway account created for this workshop; either way will work just as well.

  1. Visit https://github.com/settings/tokens/new
  2. Enter "Elm Workshop" under "Token description" and leave everything else blank.
  3. Create the token and copy it into a new file called


module Auth exposing (token)

token = -- Your token should go here instead of this sample token: "abcdef1234567890abcdef1234567890abcdef12"

Note: Even for a token that has no permissions, good security habits are still important!

is in
to avoid accidentally checking in an API secret, and you should delete this token when the workshop is over.

Verify Setup

Run this to install packages:

elm-package install --yes

Once that succeeds, run this to verify everything:

elm-live Main.elm --open --output=elm.js

A browser should open, and you should see this in it:

If things aren't working, the instructor will be happy to help!

Start with Part 1

Run this at the terminal:

cd part1

Now head over to the README for Part 1!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.