blogatto
Blogatto is a Gleam framework for building static blogs.
Given a Config, a single call to build() generates your entire site:
blog posts from markdown with frontmatter, static pages from Lustre views,
RSS feeds, sitemaps, and robots.txt — all rendered via Maud components
and written to the configured output directory.
Quick start
import blogatto
import blogatto/config
import blogatto/config/markdown
pub fn main() {
let md =
markdown.default()
|> markdown.markdown_path("./blog")
let cfg =
config.new("https://example.com")
|> config.output_dir("./dist")
|> config.static_dir("./static")
|> config.markdown(md)
let assert Ok(Nil) = blogatto.build(cfg)
}
Values
pub fn build(
config: config.Config(msg),
) -> Result(Nil, error.BlogattoError)
Build the static site based on the provided configuration.
Build steps
- Clean output directory and recreate it.
- Copy static assets from
static_dirtooutput_dir. - Generate
robots.txtvia webls. - Build blog pages — walk markdown paths, parse frontmatter, render
via Maud components, write HTML, copy assets. Produces
List(Post(msg)). - Render static pages from configured routes.
- Generate RSS feeds via webls.
- Generate sitemap XML via webls.