Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


The code in this repository has powered since Apr 2012.

Writing this application was a learning experience and as such the code in this repository might not be the best example of idiomatic go, but I try:

  • the package is go get able
  • all code follows go fmt default conventions


monet runs a website with:

  • a clean blog with search, archive, admin w/ ajax preview
  • a simple flatpage system for one-off URLs (ie. /about/)
  • a front-end for twitter and github statuses (updater is currently in python).

The blog and flatpages are written in markdown and stored in mongodb. The site itself is rendered via mandira templates, which when the Debug configuration option is false get cached.

How do I run this?

First, go get this repos:

go get

This will install the monet command, which is a webserver that takes a config file as an argument (defaults to ./config.json) and runs a webserver on the configured port. Here is a sample config.json:

    "SessionSecret": "(long random string here)",
    "WebPort": 8000,
    "TemplatePreCompile": true,
    "TemplatePaths": ["(path to templates)"],
    "Debug": false,
    "GoogleAnalyticsTrackingID": "UA-(your GA id)",
    "Streams": [{
            "type": "twitter",
            "user_id": "(your twitter user_id)"
        }, {
            "type": "github",
            "username": "jmoiron",
            "token": "(your github user token)"

    "Gallery": {
        "Type": "picasa",
        "UserID": "(your picasa user id)"

If you have mongodb running on the default port and the localhost, you should now be able to run monet and hit your site on port 8000.


  • document in a way that go pkgdoc will work
  • make styles less monolithic, separate structure from character
  • load templates from monet's install path if no template paths are provided in config, which makes it easier to run monet from anywhere
  • take some things like port, config path, etc on command line
  • move things like the title & subtitle into the config
  • most of the gallery app