I Love Ramen Noodles 🍜

Presentation Timer — countdown timer for conferences

I’ve completed the first stage of my first 12 projects in 12 months mini project: Presentation Timer, a countdown timer for conferences and presentations. It’s designed to provide a visual countdown for use at conferences, to help presenters stick to their allocated time when speaking.

It’s quick and easy to use. Type in a time, hit start, and it counts down. When it gets to three minutes, the screen turns amber and starts flashing. Then, when the time’s up, it turns red.

It’s quick because you can use your mouse or drive the whole timer from keyboard shortcuts. It’ll run full-screen in one click.

And, of course, it all runs in a web browser; there’s nothing to install.

I spent about three or four days writing this. As I write, it’s still only mid-January so if I get the chance there’s a couple more bits I might add before the end of the month, but they are not essential. This is a basic, working, minimal viable product, that people can use today.

I didn’t want to use jQuery in this project. It’s all vanilla JavaScript. I’ve tested in Chrome, Safari and Edge and it works fine. The JavaScript is very simple in this case. There’s no point loading a huge library like jQuery if the only part of it I’d use are query selectors. You can do that directly in Javascript with document.getElementById and document.querySelector.

I also used the excellent CodeKit which is setup to check my JavaScript syntax for errors with JSHint, minify the output, and also compress, run Bless and AutoPrefixer, and compile my Stylus stylesheets to CSS.

Keeping it simple is key, and something I must remember for my other projects!

Things I learnt while making Presentation Timer

There are no productivity tricks or magic shortcuts to getting a project completed. You just have to sit down and put the hours into the work. Even getting a little bit done every day keeps building momentum and gets you to the finishing point.

At some point you have to call it done. I could literally go on forever making tweaks, improvements, changes, some of which would be nice, others probably wouldn’t make a difference. But that means it’d never ship. That’s a habit I’m trying to build on in my 12-projects-in-12-months quest this year, so my ethos is very much: plan it, build it, ship it, iterate and improve it — but keep it simple.

There are, I’m sure, bugs. But there is nothing that stops it working completely. As I use the software myself and find bugs, I can fix them while I go. No software is without bugs!

It’s not fun to sit down and work. I love programming. I could happily loose hours and hours of my life just sat in-front of my laptop writing code. But getting that last 10% done so I can ship a finished version of the project is always a chore. It’s boring. It’s not fun. It’s work. I never want to do it. But the only way to get my projects shipped is to just sit down and do the work. It’s focusing on my longer-term goal of successfully shipping 12 projects this year, instead of my short-term impulse seeking desire to watch TV, listen to podcasts, and nap all afternoon instead.

What’s bad about this side project?

It has no source of revenue! Pure and simple, this won’t make money. It doesn’t really matter as my focus at the moment is just on building the habit of shipping and getting stuff done, but it’s something I will address later in the year. I’d love for my software to sustain my lifestyle.

Is it finished yet? Or is there more to do?

No, it’s not finished. Nothing is ever finished, just abandoned at some point!

For example, I’d really like to add some kind of on-boarding or tutorial system like you see when you first play a game. To change the time you click on the number, and type. It’s really simple to use, but it’s not obvious. I’d like to make it easier for new people to understand this when they first see the software.

I want to add a kind of pop-up message to the numbers when you first visit the website that points this out, so new users see this time saving technique instantly. But I’m shipping it without that as that is a few days work, and I want this to be up and running.

It’s something I might come back to before the end of the month, but I have one other priority that is going to be my main focus for the next few weeks.

Marketing… I need people to use it!

There are two other parts to the 12-projects-in-12-months challenge that I want to learn from and grow: improving my marketing and writing skills.

Now I’ve shipped a working version of Presentation Timer, I really want people to get on and start using it rather than immediately spending my time updating it and adding new features. I want to learn from people’s experiences, and add things that they’d use.

Right now… I’m not quite sure what to do. I want people to use it, but I don’t want to start spamming everywhere with the URL. Any suggestions are welcome. I’ve got two weeks left of this month and I intend to spend most of them learning how to market a website effectively, to put those ideas into practice, and to build a check list I can use again and again with my other projects.

I read about how Jack Canfield initially marketed Chicken Soup for the Soul once, which went on to make him bazillions of dollars. He’d try five different marketing techniques per day. I’m going to do something similar for this project; not five per day, but at least one.

Give it a try, and let me know what you think.

You can't leave comments (yet!), but you can still contact me!
Tweet or email me, or fill out my contact form.