One of the management-speak fads of the last decade has been the minimum viable product which, instinctively, we probably all know is wrong. It leaves us with scaffolding and dodgy wiring. Made things that are difficult to use, fail easily, and add to the noise and clutter of the world.
They can be important early steps, but they're difficult to "love". And, if what we want is people to switch to wanting to use what we make, we need to offer at least a modicum of enjoyment to these fledgling efforts.
This approach is the minimum lovable product. Unlike MVP, MLP doesn't seem to have an established parent, but the earliest visual representation of this I can find is from Jussi Pasanen:
Henrik Kniberg, writing in 2016, presented a more visual way or representing this:
Problem is, this implies you know what all of these intermediate things are when all you've got is this wheel you invented. Except ... none of us invented a wheel in a world of pedestrians. We're iterating on what exists.
In the case of Qwyre, that means there are already many ways to convert a document to an epub, and multiple ways to publish them. I know what my iteration looks like at the end, but I want an interim release, and that release needs to be useful.
Useful to me so I can get feedback and test how webmonetization works in production, but definitely useful to people so that they want to give me that feedback in the first place.
Originally, I thought I'd go as far as releasing an epub converter and call that interim.
The more I sat with that, though, the less enjoyable that became. The process of conversion is easy-enough, and the design - while interim - is inoffensive. I'm a professional writer, and this is also a tool I'd like to use.
But ... my workflow, using my own app, was:
- Generate the epub,
- Download it,
- Import it into Calibre,
- Check that it looks ok.
That's a lot of effort, and distinctly displeasing. I can't ask anyone else to struggle that way.
I decided that the interim app needs to have a functioning ereader. But you can't have a MVP ereader in this here 2021. It has to be an ereader. Which led me to the rabbit-hole of Epub.js, still the only mostly-functioning open-source browser-based ereader library:
There is documentation, but no actual developer manual, and definitely no tutorials. The API appears to have changed without notice, so what works in other packages doesn't work anymore. It's a bit tedious. I'm also a little nervous as to how large it is, but I'll see how that goes once I get to the build point.
A large-scale digression over the last five weeks means this is possible:
The app is a Progressive Web App, and I'm using IndexedDB to store data in the browser to make the user-experience truly offline. You can store all your epubs in the app, just like a real reader, and it is fully mobile responsive, meaning swipes and taps work as well.
My workflow now is:
- Upload and convert a doc to epub,
- Read my epub...
- Get lost importing and reading other ebooks.
Which is the way it's supposed to be.
The app itself works fine for release, but I still want to get basic webmonetization implemented, and then it should be ready to deploy for interim release. I've just picked up another project, so I'm going to be delayed for a few weeks, but hopefully by early September.
One thing I'd like to know, though (for those who read this far) ... what is your favourite ereader app (not device), and what features makes it special for you?