Skip to content
The full source for [elm-lang.org](http://elm-lang.org/), the home-page of the Elm programming language. Open sourced as a way to teach people how to write and serve Elm code. Follow the instructions in README.md to get the site setup on your own machine.
Pull request Compare This branch is 2234 commits behind elm-lang:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
public
resources
server
README.md
compile.bat
compile.sh

README.md

elm-lang.org: a template for creating websites in Elm

This project contains all of the source files used to create elm-lang.org, the home-page of the Elm programming language.

The project provides a general structure for creating your own Elm website, mixing Elm, images, videos, HTML/CSS/JS, and whatever else you need.

This project includes a Haskell server that determines how to serve each kind of file, so you only need to think about the content.

Set up

Follow these steps to get this all running on your local machine:

Unix / Mac
  • Fork or download this project.
  • Run bash compile.sh. This will compile the server.
  • Run ./Server to start the server.
Windows
  • Fork or download this project.
  • Run compile.bat. This will compile the server and start it on your machine.

Great! You should be set up with elm-lang.org running at localhost:8000/.

Project Structure

  • public/ — all of the .elm files used for the site. This makes up the majority of client-side code. You can change/delete the existing files and add entirely new files. The changes, deletions, and additions will be served automatically.
  • resources/ — the various resources needed for Elm. This is where you put all of your non-Elm content, like images, videos, JavaScript code, etc.
  • server/ — the Haskell files responsible for serving everything from .elm files to images. Look here if you need to change how a particular resource is served or if you want to disable some of the sites features (such as the online editor).
Something went wrong with that request. Please try again.