Skip to content
ccclock — cord cutters clock — is a clock for "cord cutters" who miss the always correct clock on their cable tv box.
Clojure HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


ccclock — cord cutters clock — is a clock for "cord cutters" who miss the always correct clock on their cable tv box.

ccclock is built with re-frame and intended to run locally on a raspberry pi with attached lcd; but can run in any browser anywhere.

This current iteration as powered by and requires a free account and api key.

ccclock demo

Development Mode

Note: When doing full stack development, start the ring server first and start figwheel last (via emacs or terminal).

Set Environment Variables & Secrets

Copy the example file, and update the values. A free account and api key is required for the weather-apikey value. This file is ignored by git for safety.

cp profiles-example.clj profiles.clj

Start Cider + Figwheel from Emacs

Put this in your Emacs config file:

(setq cider-cljs-lein-repl
	"(do (require 'figwheel-sidecar.repl-api)

Navigate to a clojurescript file and start a figwheel REPL with cider-jack-in-clojurescript or (C-c M-J)

Start Fighweel from Terminal:

lein do clean, garden once, figwheel dev

Start Ring Backend from Terminal

lein ring server

Automatically Recompile CSS File on Changes

lein garden auto

See Changes Live in Your Browser

Figwheel will automatically push cljs changes to the browser.

Wait a bit, then browse to http://localhost:3449.

Production Build

To compile clojurescript to javascript, compile css, and build jar file which serves the api-proxy and index.html:

lein with-profile prod uberjar

To run in production set the WEATHER_APIKEY environment variable and then run

java -jar target/ccclock.jar


To deploy to a raspberry pi, I recommend the following:

Your browser may sit with a "cannot load page" or other such error for a couple minutes if it opens before the jvm launches your jar.

You can’t perform that action at this time.