1 Month Prototypes, a bootstrapping pledge

I’ve become increasingly frustrated with myself for being a bit of an extreme perfectionist “if its not 100% I don’t want it to be seen, but there’s this roadblock I don’t want to spend my free time doing or avoiding, but I’m going to tell everyone about this amazing new project I’m going to launch anyway” type un-finisher when it comes to personal projects. My former business partner loves to goad me for this very reason. I have a mountain of crappy, mediocre and reasonable ideas and concepts spread across Figma, Drive, Google Keep, bitbucket, my staircase and various notebooks but I repeatedly fail to get any of them done.

I often see other people launch app’s with less of a clue than me about what they are doing. One might say I’m in a privileged position to deliver, given that I can rapidly design, develop, deploy and see problems I can solve in a better way than whats on the market. That advantageous position has lead me to feel like I squander my opportunity. I have started many ideas over the last 10 years like Sobuy, which was a concept I thought up whilst looking for things in packed home-ware shops in Hong Kong, with the lack of a functional eBay and closure of Gumtree, archaic Geoxpat and Asia Expat forums there was a gap. That gap has since been filled with an app and site brought into the real world by someone else as Carousell, a successful venture. On the tail end of having failed to gain traction on my radio station having got to market literally years before anyone else, I feel I need to up my game and deliver something. So to move on in a new direction I need to change. Bring on pushing out a prototype in one month. It’s a slight adaptation of what levels.io did with the 12 months 12 startups project, reshaped into a more realistic objective for my work life situation.

A different approach… with some ground rules and principals

Build now, scale later

Rapid prototyping with Drupal 8 and Laravel doing the heavy lifting for say login and registration and routing seems like a good choice for this without any care initially for how to scale the file storage or server memory. It’s not a problem now, so don’t address it. When scale becomes a problem there will be money, money (for someone else’s time) makes problems go away.

Test with users and rapidly update

Friends, please use and feed my back. The feature set should be user lead, not “this cool feature needs to be added because Youtube has it (with their 100s of developers), so I need to slave over a hot keyboard baking these delicious features” that aren’t actually needed and could derail the project.

Roadblocks, just move on

If there is some blocking feature or tech thats not essential or fun to hack away at the weekend with short-term rewards, leave it out. Pay someone else to do it when there are users.

Use tech you know

Unless you are doing a project to learn something, the objective is to deliver the bootstrapped product. Get there as fast as possible. Sure Node is sexy and end-to-end JS will be the future, but you know PHP and PHP frameworks that are robust. So use PHP. The end user doesn’t care if the back-end is running on a LAMP stack or not. This concept was cemented in my head whilst overhearing my colleague watching a video by Teach Lead. It’s now shaped my approach to delivering the product in my day job.

UI should be functional not gorgeous, yet

If something can be done by an end user, and it’s intuitive, its fine. Think about flashy interfaces and custom stuff when there are actual users and you want to increase the user base.

Don’t tell anyone

Don’t get anyone else involved, or reach out to potential users and testers until you have the MVP ready. Otherwise you look like a bullshitter if the MVP fails.

Don’t buy the domain

So many times, I have got excited and bought a domain to “secure it”, a year passes and these come up for renewal and the project is still in a state of disrepair and I’ve forgotten everything about it. This comes with a feeling of shame and resentment and “why am i wasting money on this domain again?”. So save that 15USD and buy a friend a drink instead.

If you are being fickle, copy someone else

Don’t get caught in the trap of changing the colour scheme, header image, logo fonts over and over until its perfect. If you can’t make a decision, just copy.
Eg. pipette the colour of the text from Klook’s logo and Airbnb’s A and change only the hue to something that isn’t bad. Colourscheme done. Move on.

Reuse what other people have done.

If there is a theme that’s 90% there or a library that works. Use it. Don’t spend hours coding up the most divine Bourbon template only to find it’s riddled with bugs that you have to begrudgingly drag yourself to your desk to eradicate at the weekend.

Fix the tools rather than avoiding problems, unless it’s getting you down

Got a bootstrap error in drush? Don’t work around it getting increasingly annoyed by it. This will slow down debugging and problem solving other issues. Spend the painful hour fixing it. When it gets too painful and frustrating and you want to go out in the sun to the beach, go to the beach you will probably fix it in 20 minutes tomorrow anyway. Don’t build up resentment.

MVP MVP MVP

Using the example of Gofolio my first Drupal 8, 1 month bootstrap project, a user can create canvases, which represent an experience or a single event. That is the MVP, CRUD Canvases. Naturally I thought, it would be cool if users could put those together in a catalog or collection. That means researching Drupal Book, reading Drupal’s God Awful Documentation™, rebuilding everything only to realise Book has too many caveats or D8’s Dev release of the D7 module is infested with bugs, getting demoralised, setting up a taxonomy, new views, fields on the taxonomy and the soul-grinding relearning of how to do all that in Drupal 8 from a position having learned this in D7.

The typical Drupal experience

I have been down that path before. So no. No categorisation for now. These ideas can go into a trello board, but then they become a cancerous overwhelming backlog of “work”, I think its better to leave them to evaporate. If they are good features, the next time I come to work on some new stuff (having finished the MVP) they should come back to me.

And finally, You can take a horse to water but you cant make it drink.

Even if the clock is ticking, if you don’t feel the motivation to make a feature, or squash a bug, don’t force yourself to sit at the computer squirming and Googling “Fitting Owl anklets” because you will end up watching Meanwhile in Russia videos, or watchmojo.com’s Top Ten Movie Shootouts within 20 minutes, guaranteed. That only leads to misery. If you find yourself refreshing your Gmail inbox waiting for spam to come in so you can unsubscribe from it, you are procrastinating. It’s time to do something else.

Lock yourself in a chamber filled with bugs and you will end up like Beni

Conclusion

This is probably badly written because I literally just sat down and typed out things as i thought of them. But whatever, i finished a blog post, and published it on the same day rather than piling it up with all the other drafts that don’t read well but have good content, never to be seen again. If i feel like it, i will add more content when I have some inspiration on the ferry home one evening. In case you didn’t get it, this is supposed to be a metaphor for what I just wrote. Get shit done and out the door, even if its not great.

First project: Gofolio – Turn “Goat Tails” webflow concept mockup into an MVP immersive storytelling platform with Drupal8 Paragraph module in 1 month.

Why Gofolio? I was originally itching to buy the domain “add.ink” which is 120USD+ as a tiered domain name on Hover, I was mulling a name over for a year, getting stressed by it. Applying the rules above, I thought…

  1. who do i want to use the site? Travellers and reporters.
  2. What do they use in real life that they can relate to? Cameras, Notebooks, journals.
  3. Whats a synonym or something similar to a journal? Don’t know, but I already have the concept of a blank canvas from “add.ink”
  4. What would you collect canvases in thats related to journals? *hit up google images*,… A portfolio.
  5. What word can go with portfolio so it doesn’t sound like a portfolio of work, because thats not the focus? Errr,… Hmmm… Don’t know 
  6. Then Copy  Levels.io has some successful nomad/travel related sites, what are they called. Remote|OK, hmmm, remote work + OK?
  7. Whats a travelly 2 letter word? “Go”
  8. PortfolioGo. No.
  9. Why not portmanteau Go+Folio. Gofolio Done.
  10. Logo time, Copy… Hit up Noun Project search “portfolio” find an icon, its got some lines on it. These look like motion blur lines, tweak a little bit until it looks reasonable, a subtle moving journal concept, it works, job done.
  11. Font, I need a nice flat, geometric sans-serif heavy font, thats en vogue like Google’s Hit up LandingFolio, go to the first site, inspect the H1, copy the font name, download “Eina.ttf”, make a Figma mockup with two colour’s and move on.
A brand is born

Time to solve: 30 minutes. Time spent previously deliberating: 1 year.

Something I would like to work on afterwards..

Life on the Streets after the first draft and raw footage has been sat on a hard drive for 10 years.
Step 1 – fixed the tools. I downloaded an old version of CS3 Premier and recovered all of the project files and set up a nice work environment on my 55″ TV at home, so I can sit on the sofa and casually edit video on the TV making it less work, and fun again.

Back to Top