Shard Detail

kamber v0.2.1

Static site server (basically blogs) with Crystal Language

Install & Use

Add the following code to your project's shard.yml under:

dependencies to use in production
- OR -
development_dependencies to use in development

  github: f/kamber




Kamber is a blog server based on Kemal.

Join the chat at

This is not a static blog generator, it's a static blog server. It doesn't require any other HTTP servers. It uses Crystal and Kemal to generate HTML and also serve it.


Deploy on Heroku and start blogging in a minute!


View an Heroku example


  • Supports many post types:
    • Markdown Posts
    • GitHub Gist
    • Tweet Embeds
    • Video Embeds
    • Disqus Comments
  • Very fast, ~15x faster than other static site generators/servers, since it's based on Kemal. See Benchmarks
  • Easy to develop. Just add contents to posts.yml file.
  • Custom themes.

Getting Started

1. Install Crystal and Kamber

brew install crystal-lang
git clone myblog
cd myblog
shards install

2. Add Contents

  • Edit kamber/ and set your title.
  • Edit posts/posts.yml file and add some content.

3. Build and Run

crystal build --release src/

To run in production, add -e production flag.

./kamber -e production


Kamber has theme support.

Theme GitHub
Kamber Default Theme f/kamber-theme-default
Kamber Dark Theme f/kamber-theme-dark

How to install themes

Writing Custom Themes

Kamber has a simple API to build your own themes. To start quickly, just fork the kamber-theme-default and start hacking it.

We are waiting for your themes!


You can set your blog title from

$BLOG_TITLE = "My Awesome Blog"
$BLOG_DESC = "programming journal"

# Activate Theme
require "kamber-theme-default"

Post Types

posts/posts.yml has multiple YAML documents, each represents a blog item (aka post type).

Post (Markdown)

type: post
title: Example Post
abstract: Lorem ipsum dolor sit amet, consectetur adipisicing elit
file: posts/
disqus: true


type: link
title: Example Link
url: ""


Kamber supports Youtube and Vimeo videos. The main pattern of video is [video provider]/[video id]

type: video
title: Example Video
video: youtube/YE3GkCB3t_0

If you will use Vimeo, change video key to

video: vimeo/147842467


This type embeds Tweets to the index. The pattern is [username]/[tweet id]

type: tweet
title: Example Tweet
tweet: fkadev/673506301415194625


This type embeds GitHub Gists to the index. The pattern is [username]/[gist id]

type: gist
title: Example Gist
gist: f/c12af6b9e7d53bd9224d

Deploy to Heroku

Kamber uses custom buildpack to run in Heroku.

heroku create myblog --buildpack
git push heroku master


Screen 1

Screen 2


  1. Fork it ( )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request


  • Add base post types and make it run
  • Add page support


  • f Fatih Kadir Akın - creator, maintainer

Kambersiz düğün olmaz.