Nabo (Nabo v2.0.0) View Source

Nabo is a simple, fast blog engine written in Elixir.

Nabo is designed to be integrate-able to other components in your application like Phoenix or Plug. It does not include stuff like routing or html generating, but only focuses on one thing and does it well: manages your blog posts.


Post is the heart of Nabo and is represented as Nabo.Post struct.

You can keep your blog posts in any directories you like in the source code, but all posts should follow this format.

metadata (JSON, mandatory)
post excerpt (Markdown, optional)
post body (Markdown, mandatory)


  "title": "First Nabo post",
  "slug": "first-post",
  "published_at": "2017-01-01T00:00:00Z"
This is my first blog post created with Nabo.
### Section 1

My first blog post created with Nabo.

### Section 2


See Nabo.Post for more information.


To access your blog posts, you need to create a repo.

defmodule MyRepo do
  use Nabo.Repo, root: "priv/posts"

To get all posts.

posts = MyRepo.all()

To get a post by its slug.

{:ok, post} = MyRepo.get("first-post")

See Nabo.Repo for more information.


Compiler is where your posts being compiled.

Nabo uses Nabo.Compilers.Markdown as the default compiler but you're free to have your own options and compilers. See the documentation of Nabo.Compilers.Markdown for more options.

If you want to build your own compiler, see Nabo.Compiler for more information.