Browser-based port of a subset of ELAN
Switch branches/tags
Nothing to show
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.


This is an experimental port of a minimal feature-subset of ELAN into the browser. Playback seems to work, and editing (but not creating) annotation values works. I used a variety of tools I'm excited about, including ClojureScript, re-frame, PouchDB, and Material-UI.

You can try the demo here.

I have stopped working on this project and don't expect it to ever be finished.


☑️ Translate EAF XSD into a Clojure spec

☑️ Import of ELAN files

☑️ Read-only display and playback of ELAN files

☑️ Offline operation

☑️ Export to ELAN files

☐ Support for most basic ELAN workflows

☐ Remote syncing of projects

☐ Live collaborative editing à la Google Docs

☐ Plugin API letting users write custom scripts in plain JavaScript

☐ Full ELAN functionality coverage


Install Clojure and Leiningen

Clojure, Leiningen

Compile css:

lein less once 
lein less auto

Run application:

lein clean
lein figwheel dev

Wait a bit, then browse to http://localhost:3449. Code will automatically reload when there have been changes made, but application state will remain the same, which can sometimes create unrealistic results. Refresh the page if you have made very major code changes.

Run tests:

lein clean
lein doo phantom test once

The above command assumes that you have phantomjs installed. However, note that doo can be configured to run cljs.test in many other JS environments.

Production Build

To compile CLJS to JS:

lein clean
lein cljsbuild once min