Skip to content
👨 A (mostly) headless blogging platform built atop Nuxt & Gist.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets fixes SEO & meta issues (#19); fixes syntax highlighting (issue #14) Oct 13, 2017
components fixes SEO & meta issues (#19); fixes syntax highlighting (issue #14) Oct 13, 2017
dummy fixed dockerfile Jun 10, 2017
layouts v2.0.0 (#18) Oct 9, 2017
middleware Major refactor Jun 10, 2017
pages fixes SEO & meta issues (#19); fixes syntax highlighting (issue #14) Oct 13, 2017
plugins
server drafts Oct 11, 2017
static v2.0.0 (#18) Oct 9, 2017
store fixes SEO & meta issues (#19); fixes syntax highlighting (issue #14) Oct 13, 2017
.babelrc Fixes #12 - adding in configurable caching May 29, 2017
.dockerignore fixed dockerfile Jun 10, 2017
.eslintrc.js more lint fixes May 22, 2017
.gitignore v2.0.0 (#18) Oct 9, 2017
.nvmrc Major refactor Jun 10, 2017
.travis.yml .travis.yml May 22, 2017
Dockerfile v2.0.0 (#18) Oct 9, 2017
README.md readme Oct 9, 2017
nuxt.config.js fixes SEO & meta issues (#19); fixes syntax highlighting (issue #14) Oct 13, 2017
package-lock.json fixes SEO & meta issues (#19); fixes syntax highlighting (issue #14) Oct 13, 2017
package.json

README.md

A (mostly) headless blogging platform built atop Nuxt & Gist.

Demo

Contents

Overview

Gustavo is an opinionated, (mostly) headless blogging platform built to use:

  • Github Gist
  • Nuxt (Vue 2.x)
  • Docker

Using a simple naming schema, Gustavo can create a whole blog for you in seconds. Don't believe me? Check out the gist that is my blog.

Creating content

You can create content for your blog by simply creating files in a gist that follow this schema:

Type Naming Example
post {name}.post.md link
page {name}.page.md link
navigation links.md link
navigation links.txt (deprecated) link
image clone gist and upload link
draft {name}.post.draft.md

Here is the gist that powers this blog.

Getting started

To create a blog, follow these steps:

  1. Create your gist and add some content.

  2. Create gustavo.config.js with the following:

module.exports = {
  title: 'My gustavo blog',
  gistId: '<< gist id >>',
  githubToken: '<< token >>', /* optional, recommended */
  googleAnalyticsId: 'UA-X-XXXXX'
}

Note: you'll want to create a personal access token on Github because Gustavo uses the Gist API, and without the token and although it will still work, your blog will be rate limited.

  1. Create a Dockerfile with the following:
FROM eggplanet/gustavo:latest
  1. Let's start it up:
$ docker build -t my-gustavo-blog .
$ docker run -p 3000:3000 my-gustavo-blog

Your blog will be running at http://localhost:3000

Deployment

Deploying gustavo is simple. The recommended method is Now by Zeit.

$ now secrets add gustavo-github-token <TOKEN>
$ now secrets add gustavo-gist-id <ID>
$ now -e GITHUB_TOKEN=@gustavo-github-token -e GIST_ID=@gustavo-gist-id --docker
$ now alias my-gustavo-blog-wjdihnxorf.now.sh my-gustavo.blog

License

  • MIT

Credits

Releasing a new image

$ docker build -t eggplanet/gustavo:latest .
$ docker push eggplanet/gustavo:latest

Changelog

2.0.0

  • Better caching using apicache
  • Cleaned up a bunch of dead code
  • nuxt@^1.0.0-rc11

1.0.0

  • Initial release
You can’t perform that action at this time.