Hi, I'm @freekrai. I'm the founder of Flybase, WorkerPod and other sites. I write, travel to conferences and work from anywhere, bootstrap companies and tell it exactly like it is. Follow this blog to learn how to use modern design theories to build rapid MVPs in 30 days or less.

Growth Hacking - A Startup’s Military Approach

There are two kinds of people in the world, those who believe there are two kinds of people and those who don’t. - Robert Benchley

This statement perfectly describes marketing strategies as well as types of people. There are two.

One can be defined as a traditional, comfort zone marketing, when a common enterprise uses traditional channels in order to find the product/market fit and continuously allocates a budget to keep it going.

Another one is used by budget constrained players who don’t follow the traditional approach and try to change the rules of marketing a product. Hence the initial investment allows to scale the marketing efforts and to reduce the cost of acquisition of new customers till $0. Those players are growth hackers.


Rapid MVP splashpage

One tool we use when building rapid MVPs is a splash page, splash pages are handy to capture email signups and drive traffic to your site while focusing on building your startup app.

“Launching” a startup this way,we can partly validate our idea and value proposition.

To make this quick to set up, we’ve got our splashpage repo which all you have to do is clone the repo, edit some files and upload it.

  1. git clone https://github.com/DataMcFly/splashpage.git
  2. Edit index.html with your site info and your mailchimp URL.
  3. Create a github repo and a branch called gh-pages
  4. Upload the files to the gh-pages branch of your site
  5. Point the DNS of your site to your Github Pages site.

Now when you send visitors to your site, they can read about your project and sign up for more info from the mailing list.



A rapid MVP we’ve built this month is SideGig.me, which is our latest MVPin30, it’s built using the client-side only version of The FIT Stack, so it runs fast and beautiful.

This particular MVPin30 was actually an extreme 30, it was built in less than 30 hours.

This is built as a skeleton that can be built upon, currently it’s similar to taskrabbit and other related services but can be easily expanded to let you set it up in different ways.

Hosting is handled on the ever handy GitHub Pages, and anything in the backend, that’s not handled by Flybase, such as email sending is handled with the Flybase zapier channel, which is currently invite only but will soon be made globally available.

If you want to use the Flybase zapier channel, please send me a request and I’ll send you an invite. :)

Building this site has been interesting, I love setting up sites to use the FIT stack, where Flybase handles the backend, Angular.js acts as the interface and then in this case, we use Zapier for the Thin services that are not handled by Flybase.

Everything worked smoothly for this project, from registering / logging in, posting / editing tasks, bidding on tasks and comments.

Users can sign up, post things to be done, comment on tasks, place offers to do tasks, and just get stuff done.

You can find the repo here. You just have to download, add your Flybase account settings and upload it.

I’m already planning the next iteration for this MVP which will include:

  1. a small blog section
  2. letting people post services for sale
  3. payment handling

Play with the side, expand the code, and build your own MVP pretty easily.


Meet The FIT Stack

Our secret to building MVPs rapidly is what we like to call the FIT Stack.

This stands for:

  • Flybase (for the backend)
  • Interface (usually angular.js)
  • Thin servers (reactors, usually built in node.js, when or if needed)

This lets us rapidly build MVPs, and since we’ve got a skeleton framework in place, we can build our MVPs with minimal coding or development time.

If you aren’t familiar with Flybase, it’s a powerful hosted real-time database. Basically it allows you to connect to a datastore using super-simple SDKs and synchronize your data as it changes, no matter how many clients are connected. Don’t be fooled: while Flybase can be used as a simple “Backend-as-a-Service” (with impressive results!), its strengths with real-time should make it a serious consideration even for complex applications.

Having a fully real-time data source means thinking differently about how your application works. Instead of using requests and responses to populate a local representation of data, you just work with the data directly and expect that other clients will react accordingly. When you first start building an app, you can accomplish this almost entirely through your front-end interface. I add a message to a chat room and other people connected to the chat room see it populate instantly. Using Flybase, you can build a surprisingly robust app without needing any back-end processing at all.

What happens, though, when you need that back-end processing? To send out emails, charge credit cards, or pull data from external sources? That’s where the reactor part comes into play.

Reactors are simple worker process (I’m writing them with Node.js, though you don’t have to) that act as a kind of microservice layer on top of your Flybase. By listening for internal and external events and updating the Flybase to reflect those events appropriately you can do powerful behind-the-scenes processing that “just works” like any other data in your database.

So now we have Flybase to store and coordinate data, a front-end web Interface for users to access the data, and Reactor processes to do out-of-band work.

Why it Rocks

This pattern is relatively simple, but it comes with some powerful advantages:

  1. Simple. Your front-ends (whether they’re web or native mobile) need to only know how to connect to and use Flybase. Everything else happens behind the scenes.
  2. Scalable. It’s usually your application servers that suffer the most as you start to scale up. With the FIT stack, you can deploy your web front-end to a CDN-backed hosting provider (like Github Pages, or Amazon S3) and your reactors don’t directly handle traffic and can process asynchronously.
  3. Composable. Because everything just talks to Flybase, it’s very easy to break your reactors down into tiny chunks. You can start with several reactors running in the same Node.js process, but if it makes sense to split some off or write others in other languages, no sweat.
  4. Real-Time. It’s no longer acceptable for modern applications to require a refresh, but building a real-time system from scratch is massively painful. By putting Flybase at the center of your app, all that pain disappears.
  5. Friendly. Because much of the standard CRUD functionality for an app can be managed using Flybase alone, the FIT stack is extremely accessible to developers. Front-end developers can often implement new functionality themselves without having to bottleneck on a back-end API being complete.

Using the FIT Stack, we can knock out MVPs quickly and easily and we’ll be using the FIT stack to build most of our MVPs in here.


Building UberTok

Our first MVP is UberTok, UberTok was built for easy video chatting between small groups of people.

UberTok.com uses a mixture of node.js and javascript along with socket.io to establish real-time communications between client and server.

You can play with UberTok here, and you can play with the code here.

UberTok is a little different than our usual MVPs, where we usually use Flybase and Angular.js, simply because we wanted to try it stand alone.

Instead of using Flybase as the backend, and Angular.js as the frontend, the entire system was coded using Node.js and EJS templates. This allowed for rapid development and we were hosting video conferences in a matter of hours.

The total build time for this MVP was 12 hours from idea to finish.

The end goal of UberTok was to provide a simple way for small teams to host video conferences, this was done by hacking a small node.js server to host files and socket.io instructions, and then we built the font end.

In the simplest steps, to start a room, you first create it, which assigns a unique random haiku based name as the room name, you can then use the forms on the page to schedule the conference, or invite friends and coworkers to it via email.

When it’s time to start the conference, you just click the link and it begins. One thing we did was let people actually enter any name they like, which helps for branding, etc.

Tools we used were Node.js for the backend, socket.io to enable communication between client and server, webrtc for the video conferencing, mandrill for the emailing, and assorted other tools for the rest of the site.

Since this is an MVP, there are already plans for version 2, which will see us convert the site fully over to Flybase and Angular.js to truly fit into the Fit Stack that we use, as well as the ability to lock and claim rooms so others can’t use your room for example, but you can see the first MVP of UberTok working nicely right now.