On web startups, technology, music and growth
Tadabon is a platform that enables small/medium merchants to offer printable gift vouchers online. It’s a spare time project intended as a learning experience, and I’m trying to document it as I go (with some delay though), however good/bad it turns out. Timeline of this post: nov-dec 2013. Previous part.
Allright, so I got a plan: build an online gift voucher site. Time to build it! Luckily I have lots of very relevant code lying around from my previous project, so I decide to make the most of that. Since this is about growing a site as much as it is about simply creating it, The goal is to get a ‘minimum viable product’ out there as fast as possible, and iterate from there based on what I learn from talking to my target audience.
I generally suck pretty terribly at design (both conceiving it and writing decent CSS), so I take a heavy short cut and buy this nice bootstrap-based template which has an admin backend, a corporate frontend and an e-commerce site for 10 bucks. It includes even a blog layout! Exactly what I need for my project, perfect.
For the code framework, I completely reuse the small MVC one I self-built and created and evolved over the years, including for MyShoppingTab and Barlisto. Its template engine is (a by now heavily modified version of) QuickSkin, and the framework by now has all the usual stuff with straightforward URL routing, database wrappers, controller class inheritance so that rights and stuff like that is easily shared, easy methods for storing and retrieving from a cache, utility methods for manipulating arrays, generating random strings, doing cURL requests, a complete debug log of queries and actions to view on each page what is going on, etc etc.
I’m sure it’s messier and hairier than many ‘prefab’ MVC networks, but I know my way around it really, really well. Another time saver.
Apart from the PHP code framework, other ‘app-level’ aspects already ready and easy to port were:
… All in all, that’s a lot of stuff if you add it up! None of this is overly hard or complex, but if you’d have to write it from scratch I imagine it adds up.
Many of these things are necessary, and others are a definite plus for even a moderately complex web app, and typically come out of the box many PHP frameworks (things like Zend or CodeIgniter or RubyOnRails), but again, the great advantage is that I know my way around them so well so customizing for my first version gift voucher platform can go relatively fast.
What has to be in there is pretty straightforward: something that allows a merchant to sell vouchers online, and to dynamically add and manage the elements needed for such a page. Actually, as seen above, that by itself already has quite a lot of elements just to function and be secure and usable.
A lot of fun and piece of mind is to scratch out what is not gonna be included, even though MyShoppingTab already has it, and it’s pretty natural to think how it would add value and growth potential. In this phase ‘NO, NOT ESSENTIAL’ is a great way for peace of mind, and the answer to 90% of feature ideas:
Now, just to be clear, by the time I’m writing this pretty much all of these features are in TadaBon (and others on their way), but none of them were necessary for the first version to provide its core value: a way to sell a printable gift voucher online. If I cannot get that part to work and convince somebody it’s useful, who cares about Facebook login.
Writing the first version working off this base actually happened in parallel with gathering initial user feedback (as a nice change from just coding). Things like coming up with a project name and doing the other ‘online marketing groundwork’ like building a project site and setting up the right online marketing tools, but I think that’s worthy of a blog post of its own.
The same theme as above will continue for the presentation/marketing though: the most important part is getting something out there that works, so if it’s ugly and poorly written, I can live with that. As with the app functionality, the goal is not to impress, the goal is to launch.
After all, real artists ship.