Tuesday, February 24, 2015

What is a Startup Weekend Like? A view from inside my head.

This article will talk about my thoughts, feelings and decisions while building a product and pitch in 54 hours. Startup Weekend Lansing was absolutely worth the $75 entry fee.  I highly recommend participating in a Startup Weekend in your city.

TLDR: I built the technical foundation of an awesome content management system (those things that let you edit websites) If you want to learn more about the platform click here:

Learn more about the website creation / editing platform I built here.

How Startup Weekend Helped Me
I have been planning on launching a new company. However life is busy and I was worried about when I'd make the time to build out my product. Attending Startup Weekend was like rocket fuel for my company. It helped me:

  • Enabling me to focus my weekend 90% on building a minimum viable product.
  • Having a tight deadline, which drove me to make architecture choices focused on getting a working product in 54 hours.
  • Talking about the product and getting feedback from potential customers / partners / etc.
  • Understanding the competition better and how my product should be positioned against them.
I Hoped to win (PR + Marketing Asset)
I was hoping to win Startup Weekend and use that as a talking point with customers / press. There were a lot of other great presenters and Reflex won (both popular and judges vote!).

Photo Credit: Travis Stoliker

They built an electric long board over the weekend! I figure it would have taken me a year to build something like that so I was very impressed. Congratulations to them!

Full Story Warning:

Below is a verbose accounting of my weekend (thanks to Google History for the timings). I try to include key decisions, alternatives considered, and timeframes to help readers understand how I spent my 54 hours. It may help people who wonder what a startup weekend is like and how the short time frame impacts decision making. I was building a tech product which took up my Saturday. If you aren't a software developer you may want to read Friday directly below then skip to Sunday. Saturday is when I was building product and the majority of it discusses technology decisions.

My Plan - Friday Pitch

  • I hoped to get people excited about the idea of a better Content Management System and have a team of 4-6 people working on it with me over the weekend. I wanted sales and marketing assistance to start building out a sales pipeline the day after the weekend ended.
  • I did two presale calls Thursday with friends to gauge interest. Interest was very high and both committed to buying the product once it works.
  • I wanted to leverage the pre-sales success and the fact that I had a working development platform in my 60 second speech to build a team.
  • I selected a provocative name: "Death to WordPress" to quickly communicate the idea (WordPress has around 50-60% of the CMS market) and be unforgettable.
The Pitch
It was a blur. 60 seconds goes fast. I don't remember what I said, but I repeated a few times what I was asking for. I thought the audience was clear on what I was building (a Content Management System) and what I wanted help with (sales and marketing).

Pitch Aftermath
I had two people offer to join my team with marketing backgrounds. Unfortunately as I explained the idea to them they decided not to continue working on it with me. Adding to the difficulties I was having communicating with my teammates and getting started on work I had a coat issue.

Before pitching I set my coat down. Now I couldn't find it. I was trying to track it down (super cold night + t-shirt != good) but also realized I was losing momentum with my team.

During my coat search I met Brian Davis. I instantly liked him when he said "of course I've heard of bitcoin." He is a very nice guy because he helped me look for my coat.

After looking for 20-30 minutes (plus chatting) I couldn't find my coat and gave up. Unfortunately by this time I had lost my teammates.

Paul Jaques (my hero!) found it for me. This was about the time I realized I was going to be the solo member of Death to Wordpress.

I met Mike and James who were working on an awesome extreme sports video website along with Yoseph (LykeMe).

Initially I thought my teammates didn't want to work on my project because they thought I was farther along. Thinking about it more I thought I didn't do a good job of explaining it to them. I had focused on what was interesting to me (the tech) instead of the core idea - a CMS focused on results.

11:15 PM An Implementation Idea

Going into the weekend I figured I'd write my CMS in one of two programming languages: Ruby or Node. I've been wanting to try node for my next project for a long time, but the open source software underlying my idea (Jekyll) is written in Ruby. I thought using Ruby for the server components may make it easy to embed Jekyll into the server because they are in the same language (Ruby).

On the drive home though I figured out an idea (calling out to the console on saves) that would let me make the server in Node like I wanted.

One small issue with this plan: I've never written a Node app and this weekend is time constrained.

When I got home Friday it was late. I caught up on a few emails and at 12:45 AM installed Node and started working through the Node Beginner Book. I immediately fell in love with the simplicity, control, and speed Node provided me.

I cashed out about an hour later having learned that Node would let me build my product.

6:00 AM back to work
One feature that I want to have at launch is the ability to take payments via credit card and bitcoin (I am a bitcoin bull after all). Friday before pitching I had started a partial implementation of Stripe checkout. I ran into an issue with some open source software and had tweeted at the author.

Overnight a Tweet came in that quickly led me to a solution.

With payments working I went back to learning more Node.

I arrived onsite around 9:30 AM. There were a few people there and we chatted for a bit.

11:45 I got an email to fill out a team profile. I wanted to focus on shipping and didn't want to spend time coming up with a real name. I decided to go with Death to WordPress and made a quick logo in Gimp (like Photoshop but free). I had second thoughts about using the name Death to WordPress thinking the Sunday presentation could get derailed with copyright issues or naming issues. Feeling it would be nice to change, but already concerned about time / scope I decided to ship it and move on. 

That led me to lunch.

12:00 PM Lunch
Nevin Brittain (Founder Health Numerics, East Lansing innovator of the year) spoke about the importance of business plans to founders. Then he went into an interactive session where he learned about each company and talked through their ideas with them giving feedback and suggestions for consideration.

It was hard for me to focus because I had spent the whole morning learning Node and hadn't started on my CMS yet as the precious minutes ticked by I was wondering if I'd have an MVP at the end of the night so I could work on the presentation Sunday.

Nevin finished at 1:15 and I hustled back to finish my Node tutorial.

Finally at 2:30 I was done with the Node tutorial. I'd built a basic web server! I briefly considered using my server for building my CMS, but I was sure this would lead to issues down the road and decided to go with a professional framework. So I scrapped that idea and began looking for a framework.

Being new to Node I Googled and found Express, a "Fast, unopinionated, minimalist web framework for Node.js." This sounded perfect, since I loved that node gave me simplicity, speed, and control. It sounded like this framework would provide a similar experience. I felt a bit concerned about picking the wrong framework, but decided to move forward anyways.

First Feature
I knew I'd need to show CMS users a preview of the website they are working on. I decided to build that feature first. It should be the easiest and it will make testing edit and save easier. After getting through some routing issues (I hate routing code/config, it always seems too heavy to me) I was quickly able to partially serve the bitcoinbulls.net website through Node. For techies, this meant I could serve the HTML file but all the links were broken. Non-tech explanation: all the links, images, css, and JavaScrip were broken because bitcoinbulls.net was built assuming it would be the only website running.

I evaluated a few options:
  1. Serving bitcoinbulls.net content from the root of this admin site
  2. Parsing the links and adding a prefixed path
  3. Using Express sub app feature to host each site as a sub app.
  4. Adding wildcard DNS and hosting each site at a subdomain of the admin site.
  5. Changing my Jekyll config.
I immediately threw out options 1 and 2 as horrible hacks. The only benefit option #1 had was that it was a 2 minute code change and I was pressed for time (it was now 4:00PM).

Option 5 also seemed hacky, although not as bad as #1 and #2. It would put some extra work on Jekyll sites for them to work in Death to WordPress.

Option #3 seemed like the best. I spent about 45 minutes trying to get that working before giving up. It might have worked, but with my amateurish knowledge of Node, Express, and Routing I decided to go with Option #4 because I knew that would work.

I found out OSX doesn't support wildcard DNS, but no biggie I just needed to install Bind. Unfortunately the easy 'brew install bind' didn't do the trick and neither did 'sudo brew install bind' They had security issues.

After 30 minutes of this I decided to just go with modifying /etc/hosts and BOOM! At 5:48 I had my admin site serving bitcoinbulls.net from source.

At this point I'm also exhausted. I see dinner is at 6:30 and decide to take a quick nap. Unfortunately I couldn't find a good napping spot. The pressure is on too. I really need to have my CMS working before Sunday to work on the presentation Saturday. Unfortunately I couldn't fight the sandman and I took a 15 minute catnap in my chair.

Earlier in the day Don Waskiewicz (president Deep Blue Insights, Startup Weekend Coach) had stopped by to discuss my project. He dropped back in to let us know if we wanted market research he was going to his office and could help. I emailed him asking for US companies with less than 5 employees. He quickly responded back with a super helpful spreadsheet listing them all and breaking them out by State and category.

Second Feature
For my next feature I decided to implement client side real time markdown editing.

6:30 PM Dinner.

This time I take my laptop to give me the option of working while the speaker is talking. I'm concerned about time because I hadn't even started on the client side editor or saves back to the server and I was already feeling tired. Unfortunately when I get tired my brain doesn't work well and I become unproductive.

John Allison (founder Luminate Studios) shared his experience starting a company directly after graduating. He highlighted the importance of networking, contracts, and avoiding scope creep.

He also said LEAP is a networking powerhouse. I made a note to connect with LEAP once I had a product ready to show customers.

I have played a bit (tiny bit) with 3D modeling and afterwords I spoke with John about his tool chain, Blender, and 3D printing.

7:15 Back to work

I get back to my desk and continue searching for open source realtime markdown editors. To my surprise their aren't a slew of options and my favorite (StackEdit.io) isn't embeddable.

I spend a bit of time googling for work arounds.

At 8:00 PM I decide to go with PageDown. There is no demo site, but it claims to be used on StackOverflow (best programmer Q&A site on the web).

After 10 minutes I realize I don't like the Express rendering engine, Jade and I have no clue how to do anything in it.

Instead of learning Jade I decide to swap it out.

After Googling about swapping it out I decide it is going to be faster to just use it. I read a bit of the docs and it actually seems cool.

I run into some routing problems (I told you I suck at routing!) and find out PageDown isn't well documented, or I'm not seeing it.

Trawling through their sourcecode I pull out their demo code and put it into my app.

Somewhere along the line I realize Express has static directories that it serves files from and I put the demo HTML + CSS + JavaScript there.

At 9:00 I get a text about a potential health issue at home. Crap I should finish this up and get home.

At 9:15 I have the markdown editor doing realtime editing of the demo text.

Now I need to provide the editor a markdown file from my website.

I decide to expose the markdown files via http. which I had working at 10:15 (although I spent 1/3 of that time on Reddit + Twitter - oops!)

I'm exhausted at this point and really want to go home. However I know I'll be in trouble if I don't complete the CMS tonight and decide to press on.

10:30 the editor loads my markdown file!

10:45 the editor splits the markdown file into content and data (technically Jekyll's frontmatter)

Final Feature: Save
For Sunday I need save to work. I want to also show editing data, but I know I'm out of time. I decide if I get the presentation done I can work on the data editing.

11:23 PM - text from home - no more health issue (crap, I'm a jerk for not getting there.) I also got save working. Phew! This thing actually works! And it is fast! Great. Time to head home.

When I got home it was just after midnight. I decided to do some email + Facebook.

At 12:45 AM I decided to dig out the presentation format we'd been given and draft responses to it, in case anything came to me in my sleep :) I jot my notes in Sublime Text 2 (not sure why I don't use Evernote... but whatevs I'm tired)

I also decide to snag my $100 free Amazon Web Service credit (needed a bit of url hacking because of the way the link was sent in email) and spent two minutes trying to think of a different name for the company.

6:15 Awaken. I'm excited to have a working CMS so I decide to...

Email until 7:12. Oh hey an email from Startup Weekend oh yeah I should start on my presentation.

Prezi or Keynote?

One of the cool things nowadays is to use a content tool to present itself. I think about doing this. My MVP works, but it will be a lot of work for me to make a presentation experience I'd be happy with in my CMS. Presentation tools it is.

I'm a huge Prezi fan and lately I've been using PowerPoint for flyers. For some odd reason I have a feeling I should do this presentation in Keynote even though I've never used it.

Based on the feedback (teammates quitting, other negatives) I'd gotten I realized I was focusing on the aspects of the platform I liked, not what would sell.

I also debate on what to present. Should I go with the provided format or go to a VC company and use their format? I decide the judges may have a rubric which scores based on what they provided so I go with their format (although I got off it for the third component. Looking back at the email now I see it says Judging Criteria, so I probably should have followed it exactly to maximize my chance of winning.

Wow, Keynote is pretty awesome. I'm able to quickly do what I want and easily template then apply styling. Hot!

9:45 back onsite

I get back onsite and have leftover Jimmy John sandwiches for breakfast.

For showing my product I decide to include a screenshot. A picture is worth a thousand words right? I'll have 5 minutes, so quickly communicating ideas is key. Unfortunately the editing experience I built yesterday doesn't look great. Most of the work was on technical architecture. I think anyone who isn't technical will have a hard time understanding what was accomplished because the end result looks unimpressive. Actually if I include an ugly-looking screenshot, everyone will probably think the product sucks. I think maybe I should have just focused on making an amazing looking editing experience instead of eliminating the tech risk?

Hmmm..... I don't have time to pretty up the editor (design isn't my strong suite). I decide to use a screenshot of the editing experience as it will be once I get the StackEdit.io code integrated. Is that dishonest? Well I only have 5 minutes to present. I don't have time to put my editing experience up there and then spend time explaining 'yeah it is ugly now, but prettying it is the easy part.' I decide I have to show the StackEdit.io experience to quickly communicate what this will look like. The key objective for the weekend was eliminating the tech risk, which is what the MVP I built does. The look of the editor is not a huge risk factor going forward.

OK screenshot of my website being edited in StackEdit.io done.

12:12 presentation is done and tested. For testing I hooked up my computer to the projector and walked all around the room seeing how all the audience members would see my slides and testing the range of the remote clicker.

I didn't like how the last slide of my presentation. I wanted end with an ask directed at the judges. Like I will use x prize to do y. However I hadn't seen any prizes published. I checked with the organizers and found out the prizes were secret. I still didn't like how my prezo ended, but oh well maybe I'll think of something later.

I notice on the projected image one of my slides has a strange translucency issue making the text harder to read on the main projected image (there are two other monitors where it looks fine) than it should be. Often times projectors have lower contrast than monitors so it is always good to especially check light on light or dark on dark colors (or avoid them) also, sometimes mounted projectors cut off the top or bottom of slides.

I also notice there is no clock. I decide to setup Keynote to show the time so I can make sure I don't go over.

12:30 I run through my presentation with Isil Berkun, one of the mentors. On a five minute presentation I go 3 minutes over (doh!)

Isil has great feedback and another attendee Darrell overhears some of my presentation and also provides feedback.

Unfortunately the feedback involves adding slides. I become increasingly concerned about going over time (I was already 40% over before adding slides!)

I decide oh well, I'll be able to go faster the second time around.

12:52 I try to fix my contrast issue, tighten up some of the visuals, and add fade through black for slide transitions.

1:00 Couldn't finish up. Gametime! I wonder how did I spend my whole morning on a short presentation?!

I end up being selected as the fourth team to present. I show my friend Phil Threadgould my contrast issue and show him the object is set at 100% opacity. He realizes there is a translucent object in front causing the issue.

I decide to add one more slide about the executive team, me and an anonymous sales exec (he is helping out, not sure what his commitment level is, but definitely not his full time gig)

I also find the fade through color menu option and get it on the slides I want. I see I now have 27 slides! When I was over by 3 minutes I had 15. Wow, the fade effect is at 1.5 seconds. That alone is going to take almost 10% of my presentation time. I cut the transitions down to .6 seconds.

1:48 My turn to present (5 minute slot). I was feeling good about the presentation and getting nods from the audience. I feel good about time until the 3 minute 30 second mark when I realize I'm in trouble. I spend another 30 seconds or so on a key slide (customer acquisition) and then try to book through the rest of the presentation. With about 20 seconds left I start flying through slides. (fortunately many just have one word on them)

I run out of time at slide 21 (of 27) and turn it over to Q &A.

The judges have a strange look on their face. I wonder if I went too fast and they aren't sure what just happened. I also wonder what was on the slides I didn't show.

After a second of silence they start asking questions and I think things are going pretty well. There are some questions about what I'm offering when, which I thought I had spent a lot (relatively) of time covering in my presentation (key customer acquisition slide). Looks like I wasn't clear even with the extra time spent.

Other than that I thought the questions went well and no one asked about copyright or logo issues. Great!

2:00 time to relax. I'm done, time to be tired and eat some lunch while I listen to the last pitch (Reflex, soon to be announced winners)

I also can't help myself, I flip open my laptop and look at what slides I skipped. The information doesn't seem critical to me (weekend accomplishments, customer feedback, learnings, executive team, recruiting call I put in at the end for marketers, designers, and JavaScript developers)

2:10 the meeting breaks so the judges can judge.

Jeff Smith talks about community resources available to help entrepreneurs like Accelerate Michigan, Geenlight, and the Hatching.

I spend some time networking.

I notice one of the Judges call Lori Fischer, one of the organizers back for a question. I figured there was a tie and they needed a tie breaker.

2:30? The judges come back and give individual feedback to all the teams. When one of the judges is giving a team feedback I learn Lori was called back to understand if the team was a startup or an established company (they had $28K in revenue).

Feedback for me:
  • Good presentation skills
  • Death to WordPress is a provocative title. It turns some people off. (this makes me wonder if I clearly communicated this was a working title not a go to market name.)
  • Show the MVP instead of screenshots
  • Provide more customer feedback
  • The CMS space is crowded but the pain is not being solved.
After everyone got feedback it was time to announce the winners.

First there was a crowd vote (popular). Reflex won. I was surprised. I should have paid more attention to their presentation instead of stuffing my face :)

Second the judges vote was announced and Reflex won that too. I really should have paid more attention to their presentation :)

I ask for feedback from a few friends on my presentation, especially on speeding up at the end. Not much actionable feedback.

I talk with a bunch of friends and meet Erik Gillespie. It turns out Erik and I had already connected about Startup Grind. Cool to meet him in person!

One of the winning team members offers an interesting new logo design.

I introduce myself to the winners and advise them to leverage the win for public relations.

Driving Home
I'm bummed I didn't win. I think it would have been a nice PR boost to win and hopefully get some interested customers on an email list. Also I think a win is a valuable marketing asset going forward.

Thoughts: Is there something I did to lose?
  • Not cover something? Customer feedback was mentioned.
  • Was the name a death blow to my chances?
  • Did the judges think my MVP was non-existent? Maybe they knew I used a screenshot because of the lower quality product I'd built?
  • Would I have won if I'd shown more product? What would I have cut to fit that in? Do VCs expect pitches to have live demos of product?
Thoughts: What did Reflex do to win?
I wish I had paid more attention instead of eating :) I do remember they spent a good amount of time (30 seconds? a minute?) riding around  on their long board. Should I have spent a lot of time going through the product? How would that have worked in five minutes? Could I have spoken while someone created a working website in my tool?

Participating was awesome!
  • I'm thrilled to have come away with a working product that I can touch up the UI on and start demoing in customers offices about 1.5 months earlier than expected. Startup Weekend really forced me to focus on the key components needed to get there.
  • I met lots of cool people and companies.
  • Feedback improved my product positioning.
  • I learned Keynote, Node, and about some great community resources.
Want to see what I built?

Time for Sledding then sleep.

I even made it home so I could lay on the couch for 15 minutes before heading out to sled at dad & kids night