November 12, 2018 · projects

Checklisting.Club

Checklisting Club is first and foremost a learning experience. It's part of a larger goal to complete 12 projects in (roughly) 12 months. The goal of this particular project is to learn how quickly I could build a minimally viable SaaS product. And I already failed in one aspect - I'm choosing to spend a little more than one month in order to complete it to my satisfaction. But that is enough meta-talk, lets talk about how this idea came about, how I implemented it so far and where it's going.

checklist

The Checklist Manifesto

In 2009, Atul Gawande authored an insightful and well-written book called The Checklist Manifesto. I finished it a couple months ago, and it has stuck with me for quite a while. It really made me see checklists in a whole new light.

Checklists are tools for managing complexity, a key skill that professionals in numerous industries use. They are an easy tool, that enables people to avoid careless mistakes, work quickly in critical situations and collaborate more effectively. Altogether, there are great benefits - once you can convince a skilled professional that they should be using a tool that is perceved as rudimentary, simple or naive.

On software and collaboration

Let's hold this idea of checklisting in our minds and take a look at a website called Github. Github is a collaborative tool for helping people build software. It started as a UI implementation of version control tool that helps programmers avoid and correct common mistakes. Before Github, this version control tool still exisited and was used by many programmers. But what Github did was made it even simpler to collaborate, visualize and share version controlled code.

The underlying premise wasn't new, and the version control tool was in fact already built with collaborative teamwork in mind! But on top of this foundation, Github built a functional user interface and created enhancements that convinced millions of software developers to use it today.

From this idea came my inspiration for Checklisting Club. I want to build basic enhancements and create a UI that facilitates collaboration on top of the solid conceptual foundation that is checklisting.

Checklists in the wild

My next move while thinking about all this was to document all examples of checklists I could find. On one hand, these examples would serve as evidence of a need and help me populate the app with initial content. On the other hand, these examples might lead to potential customers and communities that would use a checklist app. I was primarily looking for checklists for software development, but there are all kinds out there - here is a small sample:

From this exploration, I got some good examples and learned about some of the workarounds people use to distribute their checklists. I also learned how often checklists can become very long or have multiple parts - which could be a nice feature later. I also discovered some potential competitors in this process.

Back to business

So at this point I began asking myself, "Honestly, is this a viable business"? And from what I understand at this point in time is that is probably is not. I haven't actually spoken to anyone who said "I will pay money once this is a real thing". Nor am I sure that modest improvements and collaboration tools on top of checklists justify anyone spending their money for what is essentially a checklist tool.

Some core questions that give me doubts also include: Will people print out checklists and use them? Are there any valid improvements to checklists that could make it better than pencil and paper, or tools like Trello or Asana? How wrong am I about the UI/UX?

However, I am still determined to see this project through, since my goal from the outset was not to make money, but to make a viable SaaS platform. So I'm going to continue building my prototype and will do some minimal marketing to guage real interest. Who knows what happens when we share what we make?

Prototyping while learning

Let's go over how I'm building this briefly. Right now, the landing page of checklisting.club is a basic landing page template from Pure CSS, hosted on Netlify via Github. It's literally one html page and one css page. No javascript! I chose Netlify because they have a nifty feature that allows you to collect form responses without implementing any javascript, plus it runs straight from a Github repo, so iterating is quick and visible.

Now behind the landing page, there are two apps running on Digital Ocean: the webapp and the API. The webapp is built using VueJS (since I'm trying not to get to attached to any particular JS framework). It will (soon) live on app.checklisting.club and it will handle all the clicking and moving around and anything the user might see. Behind the webapp is the API. The API is built using NodeJS with ExpressJS (since I'm super framiliar/comfortable with deploying with it) and will live at api.checklisting.com. The API will do all of the heavy lifting (storing data, saving sessions, converting tex to pdf, etc).

So in tandem, these three components will form checklisting club - the SaaS. I think I can make the development process even quicker by trying something else for the webapp side of things. I feel as though getting used to Vue, and all the setup (webpack, etc) required for it, slowed me down at times. Really enjoyed my experience with Netlify, and Node+Express is my tried and true, that combo isn't going anywhere.

Status update

As of posting this, I have a landing page, a domain name, and a wireframe version of the webapp and a decent version of the API. My next steps are roughly as follows:

  • Finalize and implement webapp/UI designs.
  • Create API routes for user accounts.
  • Integrate Strip payments.
  • Create virtualhosts for webapp and API.
  • Populate app with test users/checklists.
  • Create and share post about launch.

Conclusion

I've really enjoyed working on this project so far, and I think it will set me up nicely to work on similar sized projects in the future. It's taken a few years to get to this level of confidence, but I'm still struggling with managing my timeline/expectations/scope and with finding the right tools for the job.

If you'd like to check out the landing page, visit this link. To get updates, add your email at the bottom of that page.