Need help with gist-reveal?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

140 Stars 42 Forks MIT License 1.3K Commits 42 Opened issues


Gist-powered Revealjs slides

Services available


Need anything else?

Contributors list


Greenkeeper badge Build Status Build Status Dependency Check Gitter Chat

Gist-powered Revealjs presentations is an open source slideshow templating service that makes it easy to create, edit, present, and share Reveal.js slides on the web by using github's gist service as a datastore.

Store any Revealjs-compatible HTML or Markdown content in a gist, then append your resulting gist id to the end of any gist-reveal site url to view the resulting presentation:


Use bitly or another url shortener to make these long urls easier to share, and to make enagement rates easier to count.

Creating a shortname for your longer

deck urls will also make your presentations available at an alternate presentation path:


Much nicer! Make sure to continue sending traffic to the shorter
url for metrics collection purposes.

Gist-powered Slideshow Themes

Available CSS themes include the default reveal.js list of themes, but can be easily extended by storing new themes in a gist:

Conference organizers can host their own modified gist-reveal templating service (with its own default theme), to provide a consistent look for all presentations at an event.

Application Config

The following environment variables can be used to autoconfigure the application:

Variable Name

Contents Default Value
DEFAULTGIST The default gist id slideshow content for the site af84d40e58c5c2a908dd
REVEALTHEME The site's default theme. Should be a locally bundled theme name, or a remote gistid. 450836bbaebcf4c4ae08b331343a7886
GHCLIENTSECRET GitHub client secret unset
GHCLIENTID GitHub client ID unset
GATRACKER Google Analytics tracker token unset
PORT The server port number 8080
IPADDR The server IP address
GISTTHEMES Allow reveal.js CSS themes to be installed dynamically "url/?theme=gistid". Disable this feature by setting this config to the string "false". "true"
REVEALSOCKET_SECRET the site's broadcast token (alphanumeric) randomly generated


for more information about the site's configuration options.

Broadcasting Slide Transitions

Administrators can configure the application's

to broadcast slide transitions using Reveal's socket Multiplexing support.

Presenters who know the site's

value can configure their browser as a presentation device using the
querystring param:

This token will be stored in the browser's

area (per host url) as
. To reconfigure your browser as a client device (as a listener), use the
querystring param:


Gist-reveal makes it easy to run your own Gist-powered RevealJS slideshow service

Local Development

The simplest way to get started with this project, is to clone a copy of the source from github (

git clone && cd gist-reveal
), then run the app locally with
npm install
followed by
npm start


To create a kubernetes

, both named
kubectl run gist-reveal --image=ryanj/gist-reveal --expose --port=8080 --service-overrides='{ "spec": { "type": "NodePort" } }' \

Minikube users should be able to open the new service in their browser by running:

minikube service gist-reveal


To run the docker image locally on port

docker pull ryanj/gist-reveal
docker run -d -p 8080:8080 ryanj/gist-reveal

Environment variables can be passed into the Docker container in order to configure the websocket relay, or to change the default slideshow content:

docker run -e "REVEAL_SOCKET_SECRET=0P3N-S0URC3" -e "DEFAULT_GIST=YOUR_DEFAULT_GIST_ID" ryanj/gist-reveal


Build from GitHub sources, using a "nodejs" base image, and Source2Image:

oc new-app nodejs~ -e REVEAL_SOCKET_SECRET=1234

License was created at the first DockerCon Hackathon by @ryanj and @fkautz.

Reveal.js is MIT licensed Copyright (C) 2014 Hakim El Hattab,

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.