Review Cadence MVP Release

Three weeks ago, I announced on Twitter that I had purchased a domain and initialized a new GitHub repository to begin working on a new side project.

The idea for the project stemmed from a book I wrote in which I discussed the process of conducting self-assessments throughout the year (annually, quarterly, monthly, weekly) in order to monitor your life and ensure that you were making progress toward your goals. This was all in an effort to help people become better versions of themselves.

As I was writing the book, I kept thinking - it would be nice if there were an app that guided me through the process. A one-stop shop or central hub for conducting my reviews. Something that would archive all my sessions, allow me to revisit my goals, print them off, send me reminders when it’s time to conduct my next review, send my review to an accountability partner, give me stats on how often I’m reaching my goals, and a whole bunch of other functionality to keep me on track.

And thus, the idea for Review Cadence was born.

Over the last three weeks, I’ve slowly and methodically built a Minimum Viable Product (MVP). It’s a bare-bones set of functionality that performs the core of what I had hoped the Review Cadence application would be. As such, it’s nowhere near the final product that I have envisioned, but it’s a proof-of-concept that will allow me to start getting feedback from users so that I can begin to iterate and build other features into the system based on what other would like to see built into the application.

After purchasing the domain and setting up the repo, I spent the next few days putting together a quick landing page. Since the page was essentially a static page, I was able to deploy the site to Netlify and have it up and running for virtually nothing.

With the temporary landing page in place, I took another few days and wrote up a summary of what the MVP functionality would look like.

The MVP Notes are published here.

From there, I started building the scaffolding for the project. The first step was to build out some basic HTML wireframes. To do this, I leveraged the Bootstrap CSS framework for rapid prototyping. I’ve used Bootstrap in the past and am always amazed at how fast I am able to mock up pages with the framework. It is one of the more critical tools in my toolbox when prototyping applications. Within a few days, I had some initial wireframes built.

Once wireframes were built, I began building out the backend. I made two major architectual decisions for the MVP:

No Authentication

I wanted the MVP to have zero resistance in terms of user risk. The most important part of this decision was to ensure that someone could come to the site, walk through a session, and never have to sign up or go through any type of onboarding process. I wanted them to go straight to the core functionality. Why? Because feedback on the app is more important than getting users to sign up at this point.

This was primarily a result of not having an initial audience to launch to. I am starting from scratch, I don’t have any traction and have not built an audience. So, I’m essentially shooting in the dark here. I know that, at a minimum, I’m scratching my own itch with the application, but I really want to ensure that there is the least amount of inertia for anyone who takes the time to visit the site.

Secondly, MVP is exactly that - minimally viable. The core functions could be implemented and tested without taking the extra time to build out authentication. I probably saved a week’s worth of development time by not including it in the MVP release. This alone allowed me to launch much faster.

No Backend Database

The second decision I made was to launch with the mock database I had put in place using the Entity Framework’s InMemoryDB funcitonality.

Now, before all the developers in the room start yelling…I fully realize that the InMemoryDB is NOT designed to be used for production systems. That’s not its purpose. However, it works good enough for an MVP release in which the user is expected to conduct a session all in one sitting. It is by design that the system does not save a user’s data beyond the live/active session.

Again, this is an MVP. I am trying to release the smallest amount of functionality that I can to prove out the concept.

I fully expect that one of the first iterations of the site will include either a full-blown authorization system and/or a full database to store and persist data.

But, for now…minimum…viable…product.

After a few days of working on the backend, my UI had drifted quite a bit and I had a new set of pages in place and a rough prototype built out.

Then, while doing some final testing before I started the deployment setup…I hit a snag…

It was a show-stopping bug that bubbled up in the way I was using the InMemoryDB. It wasn’t the InMemoryDB itself that was the problem, it was the way I was using it.

I walked away from the keyboard and went outside to mow for a few hours. After clearing my head, I had a spark of an idea on how to fix the problem.

The proof-of-concept was a success, so I started rebuilding parts of the backend to implement the fix. After another day or two of polishing, adding in graphics to the UI, and testing various browsers, I was nearing launch.

After three weeks of getting up at 5:00am, working late into the evening, and putting in a few hours on the weekends, I was excited to announce that the MVP release of Review Cadence was here.

As I mentioned in the Twitter announcement - “It’s not perfect, but it’s shipped.” And that’s one of the most important things you can do as someone who makes things…SHIP.

I’ve become more comfortable with imperfection. Whether it’s writing books or building software, you can’t be a perfectionist. That’s not to say that you ship products that aren’t ready, but learning to be okay with good enough is almost a superpower in the creative life.

People can still find value in an imperfect product. Your job is to give them that opportunity by shipping and putting it in their hands.

Give Review Cadence a Try!

So, if you are someone who likes to conduct annual, quarterly, monthly, or weekly reviews…or you have always wanted to institute some sort of routine review process in your life but don’t know where to start…I invite you to give Review Cadence a try!

It’s FREE and no sign up is required.

Give it a spin. Push around on it. Sure, you might break it or run into something that may not work as expected, but that’s ok. The important part is that something is now in the world that might make it a better place.

I will continue to iterate. I’ll clean up the bugs as people find them. I’ll diligently work on new features as fast as I can.

But most importantly, I’ll quietly listen and observe how others use the system and try my best to build features that enhance the process of personal growth.

If you come across a bug, have a suggestion for a new feature, or would like to share your experience (good or bad) of using the product, you can message me on Twitter at either @ReviewCadence or @stevekgriffin. If Twitter isn’t your jam, I’ve setup a feedback form here, or feel free to drop me an email with your thoughts.

It feels good to get another project out the door. I’m gonna take some time to celebrate the milestone and then I’ll be back behind the keyboard doing what I can to make the product better.