A (mostly) headless blogging platform built atop Nuxt & Gist.
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.
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.
To create a blog, follow these steps:
-
Create your gist and add some content.
-
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.
- Create a
Dockerfile
with the following:
FROM eggplanet/gustavo:latest
- 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
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
- MIT
$ docker build -t eggplanet/gustavo:latest .
$ docker push eggplanet/gustavo:latest
2.0.0
- Better caching using apicache
- Cleaned up a bunch of dead code
- nuxt@^1.0.0-rc11
1.0.0
- Initial release