elm-pages is a free, open source blogging & personal sites project written in Elm and released under BSD-3-Clause. It has 692 GitHub stars, 102 forks and 81 open issues, and was last pushed 4 months ago. On this registry it ranks #27 of 30 tracked projects in Blogging & Personal Sites, with 5 head-to-head comparisons available.

elm-pages Netlify Status Build Status npm Elm package

Deploy to Netlify

elm-pages is a framework for building an Elm single-page app that is able to seamlessly interface with data from an Elm Backend. elm-pages is a hybrid framework, allowing you to define Routes that are either server-rendered (for more dynamic content with user-specific or request-specific data) or pre-rendered at build-time (for generating static HTML files that are hosted through a CDN). You can mix and match server-rendered and pre-rendered routes in your app.

elm-pages also has a command for running pure Elm scripts with a single command. See the elm-pages Scripts docs page.

What's new in 12.2

  • Tui — build interactive terminal apps as elm-pages scripts. TEA-style init/update/view that renders styled text to the terminal and responds to keyboard, mouse, paste, resize, and time events. Tui.programOrScript lets the same script behave interactively in a TTY and as a plain BackendTask under CI or when its output is piped.
  • Test.PagesProgram — end-to-end tests for elm-pages routes. Drive the real framework runtime through form submissions, optimistic UI, concurrent fetchers, redirects, session cookies, and error pages with simulated HTTP and custom ports. Deterministic, in-process, no browser. Inspired by elm-program-test.
  • Test.Tui — pure Elm tests for TUI programs. Simulate keypresses and mouse events, resolve pending BackendTasks with the Test.BackendTask simulators, and assert on screen output.
  • Visual test runnerelm-pages dev serves page tests in the browser at /_tests, and elm-pages test --visual steps through TUI tests in the terminal. Run tests headlessly with elm-pages test.

See examples/smoothies/tests/ and examples/todos/tests/ for route tests, and examples/end-to-end/script/tests/TuiStarsTests.elm for a TUI test.

Getting Started Resources

Compatibility Key

You will see an error if the NPM and Elm package do not have a matching Compatibility Key. Usually it's best to upgrade to the latest version of both the Elm and NPM packages when you upgrade. However, in case you want to install versions that are behind the latest, the Compatibility Key is included here for reference.

Current Compatibility Key: 29.

Frequently asked questions

Is elm-pages free to use?

elm-pages is open source under the BSD-3-Clause licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does elm-pages do?

Hybrid Elm framework with full-stack and static routes.

What is elm-pages written in?

elm-pages is primarily written in Elm. Its source is publicly available at https://github.com/dillonkearns/elm-pages, and it has 692 GitHub stars.