# Getting Started with Elm 01 - The Very Basics

DevFeed: [Getting Started with Elm 01 - The Very Basics](<https://devfeed.tech/articles/getting-started-with-elm-01-the-very-basics-28164.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/elm/2022/03/29/getting-started-with-elm-01-the-very-basics.html>)

Author: Fuzzygroup

Published: 2022-03-29T12:58:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Elm](<https://devfeed.tech/topics/elm.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Bootstrap](<https://devfeed.tech/topics/bootstrap.md>), [Laravel](<https://devfeed.tech/topics/laravel.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>)

Tags: [css](<https://devfeed.tech/tags/css.md>), [elm](<https://devfeed.tech/tags/elm.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [guide](<https://devfeed.tech/tags/guide.md>), [installation](<https://devfeed.tech/tags/installation.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

## AI overview

A beginner tutorial for Elm that covers installation, the elm terminal command, project creation with elm init, the elm.json file, and adding Bootstrap support. It also compares Elm's setup with Rails and Laravel while using a Laravel back end as a reference point.

## Source excerpt

Elm is an interesting new front end language technology based on a functional language that generates JavaScript transparently and has a focus on great documentation and ease of learning. A good starting point is the Guide. In this blog post, I'm going to walk through the initial steps. Along the way I'll draw some comparisons to things like Rails or Laravel. My goal in all this is re-implementing a recent project I built with a JavaScript front end and a Laravel back end. I'll us the same Laravel back end to see how Elm stacks up. Installation There is an installer for Elm here which installs the language and binds it to the elm terminal command. Sidebar: Trying Out Elm There is an excellent online console for trying out Elm here: https://elm-lang.org/try Building a Project I keep all my projects organized by their language type so I have a directory structure like: ~/code/elm Within the elm directory you want to start by creating a project directory. Mine is named kit_selector3: cd ~/code/elm mkdir kit_selector3 Once you have a project directory built then you want to to use the init command: elm init Please note that this is very unlike Rails or Laravel which build the project directory when you use their equivalent of elm init (rails new kit_selector3 or composer create-project laravel/laravel kit_selector3). This builds the bare minimum skeleton for an elm project which looks like this: . ├── elm-stuff │ └── 0.19.1 │ ├── Main.elmi │ ├── Main.elmo │ ├── d.dat │ ├── i.dat │ ├── lock │ └── o.dat ├── elm.json └── src The file elm.json is there to handle component installation. Let's Add Bootstrap Support Given that it is the 21st century and virtually anything we build needs to work nicely on a mobile phone, I generally start everything these days with Bootstrap. Happily there is a Bootstrap component for elm. We can argue about CSS grids and such but Bootstrap, well, just plain works. Here's how we get Bootstrap added to our "application" (right now there is so li