elm-pages
elm-pages copied to clipboard
Hybrid Elm framework with full-stack and static routes.
elm-pages

A statically typed site generator, written with pure Elm.
Getting Started Resources
- elm-pages Docs Site
- elm-pages Elm API Docs
- Quick start repo (live site hosted here)
-
Introducing
elm-pages
blog post -
examples
folder (includes https://elm-pages.com site source)
Key features
SEO made easy
With elm-pages
, SEO is as easy
as calling a type-safe, high-level Elm API
and passing in data from your content's metadata.
The metadata is just Elm data that you define however you want, using a Json Decoder to grab data out of your markdown frontmatter.
import MyMetadata exposing (MyMetadata)
head : BlogMetadata -> List (Head.Tag Pages.PathKey)
head meta =
Seo.summaryLarge
{ canonicalUrlOverride = Nothing
, siteName = "elm-pages"
, image =
{ url = PagesNew.images.icon
, alt = meta.description
, dimensions = Nothing
, mimeType = Nothing
}
, description = meta.description
, locale = Nothing
, title = meta.title
}
|> Seo.article
{ tags = []
, section = Nothing
, publishedTime = Just (Date.toIsoString meta.published)
, modifiedTime = Nothing
, expirationTime = Nothing
}
Optimized for performance
elm-pages
has a set of features built-in to make
sure your page is blazing fast on any device.
- Automatic page pre-rendering
- Page content is split up per-page so page content downloads and parses just-in-time
- Page pre-fetching on link hover
Try out elm-pages
, open up Lighthouse, and
see for yourself! Or check out https://elm-pages.com
(find the source code in the examples/docs/
folder).
What's next?
Take a look at the current projects to see the current priorities!
https://github.com/dillonkearns/elm-pages/projects
Contributors β¨
Thanks goes to these wonderful people (emoji key):
Daniel MarΓn π» |
Steven Vandevelde π» |
Johannes Maas π π» |
Wiktor Toporek π» |
Luke Westby π» |
This project follows the all-contributors specification. Contributions of any kind welcome!