Vudo, a open source todo app or how I learn react, serverless and graphql

Introducing my newest project an open source todo app called vudo written in Javascript running on AWS lambda. Obligatory keywords for recruiter. It also uses graphql, dynamodb, react and redux

A little background

One of my goals for this year is to get serious about my productivity. Over the years, I have read enough books on productivity to learn that being productive is to figure out what the most important thing to work on and work on it effectively. It’s very easy to work hard on the wrong things, for example, checking and replying to email can seem like real work but you are much more productive working on your core competency.

Another goal is to launch something and learn some new technologies during the process. I’ve wanted to (re)learn react, graphql, serverless and css. Yes, I’m one of the full stack developer that are more 90% stack because I don’t understand CSS. This would be the year that I learn CSS. Throw in react native to the mix to get some mobile development exposure and the list seems really daunting. Surely, I need something to track my to do, project, goals, etc.. in order to accomplish this, right?

Then it dawns on me. I will create a to do app.

I get productivity, but why not use an existing todo app?

Hear me out before you close the browser concluding I’m out of my mind. I’ve been zeroing on a productivity workflow that in my opinion is fairly minimal yet effective. However, none of the to do app that I found can do what I want. Here is what I want. A to do app, scratch that, a life organizer app that let me manage day to day tasks as well as quarterly goals & yearly resolutions. It allows me to take a step back from my work to have a 10,000 foot view on my life and its priority. Also, it should incorporate daily or weekly reminder to review the list, cross off non-relevant goals and capture any new ideas.

Most importantly, it should be opinionated about productivity. Allow me to elaborate. There are a few productivity techniques that are universally agreed to be simple yet effective. For example, Getting things done (or subset of it) and the Eisenhower matrix, aka focus on important but non-urgent tasks. These techniques keep propping up on many self help books from 7 habits of highly effective people to productivity project. Yet, none of the todo app I found support these techniques by default. Users would have to come up with a way to do so themselves with less than satisfactory result.

The reasons I’m creating a new todo app

The first reason for me to pick a to do app as my project despite a literal crowded forest of options out there is I want to build something for myself that fit my workflow. May be it’d be generic enough to be useful for someone else, but that’s a nice to have.

The second reason is this is a learning project, hence I would not care if it’s successful or not. I would blog about my learning process. If it can be useful for someone to follow it and learn something new, I consider it a success.

For the same reason, I would open source vudo. I’ll go to more detail about the technologies in the later section but it would be very easy to host a copy of the app on your own and if I work things out correctly, it would cost next to nothing for you to do so.

The third and final reason is literally every javascript framework getting started out there begins with a to do app. Who am I to say otherwise?

What’s up with the name vudo?

My coworker Peter James gave me the idea. Vudo is a play on my last name and todo. Plus it also sounds like voodoo.

In the next article, I will go into the detail about the technologies & architecture of the project.  Can’t wait to share more detail with you guys

 

1 reply

Trackbacks & Pingbacks

  1. […] is the first tutorial as a result of me developing Vudo. This article will go through setting up the most production-ready react app that simply says Hello […]

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *