An SLC-Approach to Designing a Book Tracking App

A glimpse into the challenges of self-funding an app and how developing a strictly constrained strategy helped get it to market.

The idea itself is super simple. Scan a book barcode and then organize that book in your library using different lists (stacks) — want to read, have already read, currently reading, and any number of possible custom stacks a user can dream up. The idea is, you organize your books  in a way that makes to you.

Layering on top of that basic premise are other features like saving notes and quotes, following and sharing with friends, ratings & reviews, and some fun gamification concepts.

And to top it all off - do all of this in an app that is visually pleasing and easy to use.

History of the idea

I first had the idea for a book tracking app in 2006. This was pre-iPhone and iPad so my only paradigm for something like this up to that period of time was native, installable software that runs on the computer's operating system. But at the time, web applications were beginning to become more popular and had begun to transform our idea about the nature of software. So my first idea for Bookstack was to be web-based. It was an exciting time on the web with companies like 37signals popularizing new technologies like Ruby on Rails and Ajax, making an app like this very doable in a web browser.

Without possessing programming and software development skills myself, I knew this would be a tall task and most of the time I spent on Bookstack over the next several years were not in code. I tried to envision how the app would work, how it would be organized, and what it would look like. Over the years, I went through many iterations of screens (desktop, tablet, and mobile), logo designs, and development partners.

A collage of early ideas for Bookstack.A collage of early ideas for Bookstack.

The MVP SLC Challenge

The biggest challenge for me was not having a way to actually build the app. I was also super busy at my day job, building a career as a product designer and raising a family. It left very little extra time to devote to side projects like this. As a result, progress on this idea was full of starts and stops for many years.

Finally, I realized that trying to build a fully-featured app with all the bells and whistles was like trying to boil the ocean. Most people are familiar with the term MVP — Minimum Viable Product — and while it can be expressed in many forms the concept is pretty straightforward: what is the smallest, easiest product you can deliver that will offer value to the user? But what if I could build something closer to an SLC (Simple, Lovable, Complete) app? Read what Jason Cohen says about the benefits of SLC vs MVP.

A Path Forward: Simple, Lovable, Complete
So I decided to strip the feature set down to the bare necessities. What can we do without? This was more of an intellectual exercise at first but it quickly began to turn into a product vision. The first thing to think "SLC" about was screen size. A smaller screen presents more constraints and forces you to do less visually. So I knew this had to be a mobile app. Other aspects of the app that were removed in this drastic feature editing exercise:

  • Adding notes and quotes
  • Reviews and ratings
  • Any notion of following, sharing, or commenting
  • Custom stacks - only those necessary for basic organization
  • Account management - no logging in, which also means no ability to save your library - a definite problem, but a problem for the non-MVP version of the future
  • No gamification, like badges and reading challenges
  • Customizing book covers
  • Adding books not found in the public repo
  • Recording dates

I also decided to use Google Books API to fetch all the book information, but limited it to just Title, Author, Description, and Cover Image.

This was all very difficult, because it felt like I was removing the soul of the app I had been dreaming out for so many years. But I believed that doing this was the only way to have a chance of this ever being built. Bootstrapping this with my personal finances meant I didn't have endless resources to throw and a developer to build all sorts of fancy features. I literally could only afford the bare minimum, so that's what I designed.

Defining the Goals of the Project

  • Publish an SLC version of Bookstack to the App Store.
  • Enable a user to search for or scan to find the book in the Google Books database.
  • Allow the user to add books to (and move books between) one of three stacks: Reading, Planning to Read, and Finished.
  • Gather user feedback and usage data to inform future versions of Bookstack.
A set of screens depicting the MVP version of Bookstack.

I am pleased with the outcome of this project because I was able to hit all of the goals I set out to achieve.

Research & Exploration

Obviously, research on this project took place over many years. Most of the research was gleaned from using apps built in a similar way to how I envisioned Bookstack. Apps like Basecamp, Blinksale, Rdio, and Cork'd. Those apps were all very inspiration in the early days. Using those apps layed the foundation for how I expected users to perform on a similar app. There were also competitors that I learned from - good, bad, and otherwise. Apps like Shelfari, Readernaut, and Goodreads are/were book tracking and organization apps that I analyzed competitively and used as a consumer.

The majority of research was via conversation with friends and family. Any time I brought up the topic of a book tracking app, they were free with their ideas and advice. This is how I developed the full set of features for Bookstack - most of which I ended up cutting for purposes of this version.

The information model of Bookstack is something that hasn't changed much since the beginning. Below is a diagram I used to communicate how Bookstack works to developers.

A diagram displaying the information model for how Bookstack works.A whiteboard drawing show some sketches of the Bookstack UI

Designing within Constraints

Employing an this SLC approach allowed me to vastly simplify the data displayed on any one screen and resulted in a very simple and intuitive UI. Thoughtful empty states and the magic of drag-n-drop and swiping conventions in iOS make the interactions feel very familiar and intuitive.

The app is simple and only does a couple of things. But it does them extremely well and it requires virtually zero training or help documentation in order to learn how to get started and use the app.

A set of screens showing the best of Bookstack's user interface.

Outcomes

Measuring the Results

Quantitative
The app has been live on the App Store for 5 years. During that time, it has recorded over 8,400 downloads. The app has a rating of 4.7 stars (out of 5) on the App Store. I've been able to compile a mailing list containing over 200 users.

Qualitative
I receive a lot of feedback about Bookstack. It is virtually all positive and usually centers around requests for future features that could make it more useful - all of which I have already thought of and purposely did not include in this initial version.

Conclusion

I learned so much going through this process. I hear from so many people how much they love the app and that validates the UI decisions I've made in terms of how Bookstack works. The next challenge is to release a Version 2.0 that expands the feature set that so many users have been asking for.

If I had not taken this SLC approach, Bookstack would still just be a digital artifact stuck in file directory of my computer and lost in the pages of my sketchbook.

The biggest lesson I learned as a product designer is this: when you're stuck trying to figure out how to deliver a great product to your users, try doing less and ask yourself: "How can I make this experience Simple, Lovable, yet Complete?"

Several screenshots of the Bookstack app.
Summary
My Role
Tools