Spotting an opportunity, exploring ideas & choosing what to create
This is documenting the journey of creating a “micro startup” software business from inception to realization. It will cover the initial design decisions, the technology choices, implementation challenges through to launch and operation. Along the way I’ll cover some specific technologies and how we used them (e.g. how to do authentication in a Single Page App).
First of all though, what do I mean by “micro startup”? Well, I’m under no illusion that I’ll be building the next Google or creating a whole new market genre. It’s simply a small software-based product or service that isn’t in any huge multi $billion segment but should at least be self-sustaining (i.e. self-funded bootstrapped & covering its costs) but has the potential to bring in some revenue if everything works out and it takes off. It’s really a hobby / side-project done for fun and learning but professionally so that it can be a viable business.
We’re just over a week into the project but have made good progress and already have lots of interesting things to show off and explain which I hope will make interesting reading in the weeks to come.
I’m a firm believer that good ideas come from passion about a subject and a desire to do things better or scratch some itch (compared to some of those “As Seen on TV” products which look like someone has been locked in a room and only released once they have invented something).
In this case, the passion came from my wife and the subject was cross-stitching which is a traditional hobby where you create a picture by stitching different colored strands of cotton onto a fabric. It might sound boring, I certainly don’t have the patience for it (or probably the hand-eye coordination) but the end results look great and produce a “wow, you made that!” response from everyone who see’s them.
Here’s a piece she’s currently working on:
You might have picked up that I built my own cloud-based blog-engine that this site runs on and part of that was because she wanted to start blogging about her hobby and I didn’t want to pay for (or manage) any WordPress hosting and I’d learnt that trying to teach non-techies how to use a static site generator simply doesn’t work. It also helps to have other people using the software than just myself to drive features.
So her Thread-Bare blog was born and she’s had some great positive feedback from the first few articles she’s posted. One thing that seemed to come up a lot in the facebook groups she joined was where to get patterns (or charts) which are the designs people work off - literally, a grid of symbols telling you which colors to stitch where to create the picture.
Some people buy ready-made kits which include a printed pattern, material and all the threads, some buy just the pattern (either as a Pdf download or printed and mailed to them) and others create a pattern, usually from a photo or other image, using specialist software. Companies also offer it as a service - send a photo together with a surprisingly large amount of money and get the custom pattern in return.
My wife decided that she wanted to create a pattern that she could give away for free on her blog to help drive traffic and also because she wanted to stitch a picture of our dog so she purchased one of the apps which many people recommended as one of the best to use.
I hate to be critical of other people’s work but it felt like going back in time. The app was old fashioned and obviously built with older Windows technology judging by the UI elements used in it (like VB-style old) and it was slow, even on a quad-core Windows PC with lots of RAM. This was compounded by the UI design which meant that making a minor change (e.g. the pattern size or number of colors) required re-starting from the beginning of selecting and importing the image. The patterns that it did create were OK but it didn’t really do a great job reducing the colors or anti-aliasing edges after the image size reduction. It was typical software of the era (maybe a decade ago) where adding as many features as possible was the norm but without paying enough attention to flow and function.
This is when I make the mistake of saying “Wow, really? I could build something better than that!”
She either didn’t believe that I actually could or thought it would take me an inordinate length of time (what she now goes with) but there was no “yes, built it !” moment which was probably a good thing - sometimes you can get too enthusiastic for an idea and miss out on doing some market research.
I put my “business analyst” hat on and got her to walk me through the process she followed and drill down into what the ideal way of working would be, not just what the current apps provided. We looked at the other software available and it all seemed to be similar - old-style offline Windows-only apps that worked but didn’t work great, used proprietary image formats (so lock-in) and were rather expensive for what they did (probably because of their niche nature) which was fundamentally just some image processing - resizing an image, limiting it to colors from a predefined palette (the threads that companies made) and printing a PDF with symbols mapped to them.
Looking at the community comments revealed more about the state of the market:
Overall, it was sad to see so many people passionate about a creative hobby that they put a lot of time and effort into (some of the pieces can take years to complete) but paying too much money for products and services that were often lacking. The pattern should really be the least-expensive part of the hobby - you still have to pay for the physical material and threads to make the piece.
It seemed to me like there was a real opportunity - a market in need of some updated technology and the kind of features that are now not just possible but expected. We put together the following list of functional and non-functional requirements of what the “perfect” system might have:
Of course no one ever says “make it more complicated” but the expected user-base may typically be non-technical so the software should be as simple and easy to use as possible and fewer, simpler options should be considered a feature.
The primary goal should be to produce high quality results whatever criteria you set. Whether people want to create a large, complex pattern or something quick and easier to work on, the output should look as good as possible based on the source image provided.
It needs to provide immediate feedback so people can experiment with the settings in order to find the best results.
It should run on any platform, not just Windows - many people use tablets or phones as their only computing device (or have a Mac) and you shouldn’t need to download or install any app binary.
Changing from an installable app to a web-hosted service changes how you charge for things. Instead of buying a software license, people should expect to pay to produce an individual pattern (but pay much less as a result). Purchased patterns are automatically kept secure online for repeat access (so they can’t lose them).
Creating a design should be free. We want people to be 100% happy with what they are buying so we let them use the designer for free and only charge for the pattern they create when they are happy with it.
Many people will want to work off a printed pattern but we can generate it dynamically and let them chose what print size they want (and not charge extra for it).
For people who don’t want to work off a printed PDF, we should provide a pattern viewer that will allow them to zoom & pan, highlight thread colors and track their progress as they work on a piece. This could generate cool looking animated images of progress and also estimate a completion date (some people create patterns for events such as a wedding or birth).
It should run on a cloud platform so there is no server management or ops work or capacity issues (in case it becomes wildly popular). Ideally, it won’t cost anything if it’s not being used and sat idle.
Use HTTPS throughout and secure payment processing with no card information stored. We don’t want to risk anyone’s payment information or be responsible for any breach.
Allow people to sign-in with existing social accounts (Google, Facebook, Twitter) and also to share their patterns and progress online with others. Uploading photos of completed pieces associated with the pattern it was based on.
We can use the progress-tracking to add some fun achievements such as patterns completed, continuous stitching-day streak, stitch count records, challenges & leaderboards.
There’s no reason the underlying system couldn’t be used to provide pattern stores for others. Ready-made patterns or images by artists that people can create their own custom patterns from, with the owner getting a percentage of the sales.
Definitely low on the list but I could see some people wanting them down the line to create personalized pieces, especially to commemorate weddings, births and other family events.
Definitely more than enough to be getting on with and scope for future development if things take off. I sketched out the major sub-systems that I thought were going to be needed:
I’ll describe the design of those pieces in future articles together with some implementation details and challenges I ran into plus other interesting things I’ve learned along the way.