A cooking timer for the modern web
JavaScript CSS
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app Add CNAME for custom domain Jul 31, 2013
.gitattributes Initial scaffolding by yoman webapp generator Mar 20, 2013
.gitignore Update build system May 22, 2013
.jshintrc Move jshint global definitions to source file May 22, 2013
.travis.yml Add Travis CI config Apr 18, 2013
Gruntfile.js Add CNAME for custom domain Jul 31, 2013
LICENSE Add simple README and the LICENSE Mar 31, 2013
README.md README: Really fix banner sizes :/ Jul 31, 2013
package.json Update build system May 22, 2013


TimerX3 Build Status

TimerX3 is a cooking timer for the modern web.

I take no responsibility for any burned food (or worse 🔥) caused by an application failure 😒


  • Set up to three timers at the same time, from the same screen
  • Save presets of timers you use often
  • Remembers duration of last timer set
  • Fast to download and use
  • Works offline
  • Get notified on timer finish by:
    • Visual alarm with a pulsing red color
    • Alarm sound
    • Window title change
    • Desktop notification, when the app is not visible (works in Chrome, Firefox 22+ and Firefox OS)
    • Vibration (works in Firefox for Android and Firefox OS)


Does the world need another timer? Probably not. But my motivation for building this app was to learn what it would be like to not use a framework like jQuery and instead use plain JavaScript. Also to learn about some new web technologies and tools used by this app.

Web Standards

Here is a list of web standards used by the app and supported by modern web browsers:


  • Yeoman: provided the initial app scaffold
  • Grunt: used for building, previewing, deploying the app and other tasks
  • Bower: used for installing the third-party libraries
  • SASS + Compass: used for making CSS authoring easier


The following are the only libraries I used, mainly because it would be quite complicated to do it myself. You can also see what I used in the bower.json file.

  • normalize.scss: used for normalizing browser default styles
  • hammer.js: used for the tap and swipe touch gestures
  • page.js: used for implementing routing

How to get it

The usual way of the web

Just visit http://alefteris.github.io/timerx3/ in your browser. Bookmark it if you like it.

Install it as an app

To install it as an app, go to the app settings in the side panel. This is supported in desktop Chrome and Firefox.

Install it from a web app store

Install it as an app from the Firefox Marketplace or the Chrome Web Store.

Get it in the Firefox Marketplace Available in the Chrome Web Store

Browser support

The list of browsers I have tested with are:

  • Chrome
  • Firefox
  • Firefox OS
  • Firefox for Android
  • Android 4.1 browser

For the last two browsers on Android, when the app goes into the background, the timers stop. Notifications also do not work on Android. So, there is little point in running the app in this platform.

Build Instructions

You will need to have Node.js and Ruby installed in your system.

npm install -g grunt-cli bower
gem install compass
git clone git://github.com/alefteris/timerx3.git
cd timerx3
npm install
bower install
grunt server


  • Sound file (beep.ogg):
    • Apache Software License, 2.0. Copyright © Google, Inc.
  • Unless otherwise stated, all the rest:
    • MIT License. Copyright © Thanos Lefteris