All Projects → dillonkearns → Elm Pages

dillonkearns / Elm Pages

Licence: bsd-3-clause
A statically typed site generator for Elm.

Programming Languages

elm
856 projects

Projects that are alternatives of or similar to Elm Pages

Bael Template
Brutalist Blog theme for Netlify CMS
Stars: ✭ 187 (-48.48%)
Mutual labels:  blog, static-site-generator, jamstack
Eleventy Starter Boilerplate
🚀 Eleventy Starter is production-ready with SEO-friendly for quickly starting a blog. ⚡ Built with Eleventy, ESLint, Prettier, Webpack, PostCSS, Tailwind CSS and Netlify CMS (optional).
Stars: ✭ 139 (-61.71%)
Mutual labels:  blog, static-site-generator, jamstack
Statiq.web
Statiq Web is a flexible static site generator written in .NET.
Stars: ✭ 1,358 (+274.1%)
Mutual labels:  blog, static-site-generator, jamstack
Junglejs
The Jamstack static site framework for Svelte
Stars: ✭ 246 (-32.23%)
Mutual labels:  blog, static-site-generator, jamstack
influencer-hugo
Influencer is a Hugo theme for book authors and writers. It has also Snipcart supports for order books and payments.
Stars: ✭ 66 (-81.82%)
Mutual labels:  static-site-generator, jamstack
Bolt
⚡ is a fast grunt based, data driven, static site seed project, for rapid web development of PWA's or JAMstack projects
Stars: ✭ 30 (-91.74%)
Mutual labels:  static-site-generator, jamstack
snipcart-hugo-integration
Hugo Website Tutorial with a Live Static E-Commerce Example
Stars: ✭ 38 (-89.53%)
Mutual labels:  static-site-generator, jamstack
Codedoc
Create beautiful modern documentation websites.
Stars: ✭ 307 (-15.43%)
Mutual labels:  blog, jamstack
parcel-plugin-prerender
No description or website provided.
Stars: ✭ 42 (-88.43%)
Mutual labels:  static-site-generator, seo
Sidey
Sidey is a simple and minimalistic jekyll blogging theme.
Stars: ✭ 274 (-24.52%)
Mutual labels:  blog, jamstack
Eleventy Netlify Boilerplate
A template for building a simple website with the Eleventy static site generator
Stars: ✭ 359 (-1.1%)
Mutual labels:  static-site-generator, jamstack
navigator-hugo
Navigator Business theme powered by Hugo. It also could be used for a personal portfolio.
Stars: ✭ 133 (-63.36%)
Mutual labels:  static-site-generator, jamstack
crisp-react
React boilerplate written in TypeScript with a variety of Jamstack and full stack deployments. Comes with SSR and without need to learn a framework. Helps to split a monolithic React app into multiple SPAs and avoid vendor lock-in.
Stars: ✭ 147 (-59.5%)
Mutual labels:  static-site-generator, jamstack
nuxt-starter-netlify-cms
Example nuxt + netlify cms project. Nuxt port of Gatsby starter app.
Stars: ✭ 13 (-96.42%)
Mutual labels:  static-site-generator, jamstack
sutanlab.id
☕️ My Personal Homepage & Blog site with NextJS. 🇺🇸 🇮🇩
Stars: ✭ 39 (-89.26%)
Mutual labels:  static-site-generator, jamstack
Verless
A simple and lightweight Static Site Generator.
Stars: ✭ 276 (-23.97%)
Mutual labels:  blog, static-site-generator
Easy Hexo
🤘 Build your own website with Hexo, the easy way. | 轻松使用 Hexo 建站。
Stars: ✭ 314 (-13.5%)
Mutual labels:  blog, static-site-generator
Bridgetown
A Webpack-aware, Ruby-powered static site generator for the modern Jamstack era
Stars: ✭ 317 (-12.67%)
Mutual labels:  static-site-generator, jamstack
Hexo Theme Clean Blog
Hexo implementation of Clean Blog http://blackrockdigital.github.io/startbootstrap-clean-blog/index.html
Stars: ✭ 362 (-0.28%)
Mutual labels:  blog, static-site-generator
Skeleventy
A skeleton boilerplate built with Eleventy.
Stars: ✭ 318 (-12.4%)
Mutual labels:  static-site-generator, jamstack

elm-pages Netlify Status Build Status npm Elm package

All Contributors

Deploy to Netlify

A statically typed site generator, written with pure Elm.

Getting Started Resources

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).

Built-in type-safety

elm-pages generates static Elm data for you to make sure you don't have any broken links or images. The SEO API even uses it to make sure you are only pointing to valid images and pages so you have valid metadata!

For example, if you have a content folder like this:

- content
  - blog
    - index.md
    - hello-world.md
    - second-post.md

Then you will be able to access those pages in a type-safe way like this from Elm:

-- this is a generated module
-- it is re-run whenever your `content` folder changes
-- just run `elm-pages develop` to start the watcher
import Pages exposing (pages)
import Pages.PagePath as PagePath exposing (PagePath)


indexPage : PagePath Pages.PathKey
indexPage =
  pages.blog.index


helloPostPage : PagePath Pages.PathKey
helloPostPage =
  pages.blog.helloWorld


secondPost : PagePath Pages.PathKey
secondPost =
  pages.blog.secondPost

Offline Support

elm-pages uses pure elm configuration to setup your progressive web app settings. This includes a "source icon" which is used to generate your favicons and icons for the images following best practices for a progressive web app. The image is even a type-safe ImagePath that guarantees you are using an available image!

manifest : Manifest.Config Pages.PathKey
manifest =
    { backgroundColor = Just Color.white
    , categories = [ Pages.Manifest.Category.education ]
    , displayMode = Manifest.Standalone
    , orientation = Manifest.Portrait
    , description = "elm-pages - A statically typed site generator."
    , iarcRatingId = Nothing
    , name = "elm-pages docs"
    , themeColor = Just Color.white
    , startUrl = pages.index
    , shortName = Just "elm-pages"
    , sourceIcon = images.icon
    }

It will also take care of setting up a service worker which will automatically cache the basic shell for your application's compiled Elm code and HTML container. The page content is currently cached as it is loaded, but in the future there will be an API to choose some pages to "warm up" in the cache.

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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].