I spend a lot of money on “micro transactions” every month. iTunes, Amazon, Playstation, etc. Each one is usually less than $20 a piece, so it never seems like I’m spending much money, but collectively it adds up quickly as you might expect if you’ve ever done math.

I was challenged by my lovely wife, Emily, to curb that trend of micro spending, and try to spend less than $1000 over the next 3 months left in the year. “Easy!” I thought, “I’ll just whip up a Google Spreadsheet and track my spending!” A few problems quickly arose:

  • It’s ugly
  • It’s possible to track on the go via their mobile app, but it’s clumsy
  • I’m an engineer, why not reinvent the wheel?

It was that last point that really stuck with me. I am an engineer! Why not just build something?! As I sat down, and fired up Xcode I asked myself, “Shouldn’t you at least look to see if there is an app that already does what you need? Also, you don’t know how to use Xcode.” I was right again.

I opened up the App Store and went looking. I downloaded five apps or so, and tried them all out over the next few hours, but none of them were simple. None of them did one thing well. So I went and grabbed a piece of paper, and drew this:

It was simple:

  • current balance at the top
  • grouped list of all purchases
  • a way to create new purchases

I fired up Xcode again, and was quickly reminded that I still don’t know what I’m doing there, and I wanted to get my idea coded fast, so I went with what I know. Even though it was a lot of overhead, I created a new Rails 4 app and figured I could iterate over it as I went on. Rails is a great fast-prototyping tool with all of it’s magic and conventions.

Within an hour I had this:

It had all the pieces I needed for a v1.0. So I shipped it off to Heroku.

Since then I’ve spent more time on it and have added more features and refinements:

  • Twitter Bootstrap (responsive design, what?)
  • Facebook Auth (via devise/omniauth)
  • jQuery Datepicker
  • Colorized debits/credits (with monthly grouping)

All in all I’m pretty happy with where I’ve gotten in the amount of time I’d put into it. There are more refinements that I have planned: Backbone or Angular front-end, in-line editing/creating, tagging purchases, but they can wait now that the app actually works well, and I can use it at a desktop or on my phone.

 Want to get updates in your inbox? Sign up to receive the newsletter!