:::: MENU ::::

Go Through This Checklist If You Want To Build A New Twitter

There is a lot of ire about what Twitter is doing to its developer ecosystem and its users these days. An often-mentioned suggestion that comes out of it is to build another Twitter, this time one that will set right all the wrongs. Even before we get around to the question whether any product developed thus will eventually wind up facing the same problems as Twitter, we have to first figure out what exactly is Twitter before we attempt to outdo it.

Most of the current ire with Twitter are the recent changes to the usage of the API and changes to how tweets and timelines can be displayed in third-party clients, but Twitter itself is a lot beyond just an API and a bunch of clients. To compete effectively with it does not mean that it will be good enough to create an awesome API which the developers will love. Twitter is a lot more than that.

Messaging Network: At its heart, Twitter is a massive messaging framework. It does nothing more than pick up a message, check with a set of rules who all gets to see it and dumps it with the bunch of people who are authorized to view that message. Clients can look up a user’s dump and render it. By the latest count, the platform handles 340 million tweets a day, which is replicated into numerous timelines (mentioned as dumps earlier). It is not trivial to engineer even just this part of Twitter.

API: Every client (including the official web frontend) displays data consumed from the API endpoints provided by Twitter. Almost all of the user-facing applications that are built atop Twitter leverage this API as web clients, standalone apps and mobile apps. Thankfully, Twitter seems to have so far stayed clear of having a restrictive license on the API specification itself. So replicating the API to allow existing clients to reuse their code should not be a problem. There is, though, no certainty that Twitter won’t change its mind regarding this, irrespective of the very problematic question whether APIs can be copyrighted or not.

Social Graph: Twitter, like any other large-sized network, is as much about the finesse of the product as it is about the number of people using it. For most users the restrictions of the API and the changes to it are inconsequential. For every developer adversely affected by the changes, there are probably a million users who could not care less about it. Without the users, no Twitter replacement will work, no matter how good/open/flexible it may be. If the reason why you are building a new Twitter is to address the griefs of the developers than the consumers it just will not work. Developers augment the network, but they are not the network by themselves.

Brand Partnerships: One of the reason why Twitter has done well is also the partnerships the company has built over time. The first iteration of this was seen in the ‘verified’ badge. We often underestimate the importance of that little badge in quickly it has been adopted, often by people who have struggled to even maintain a basic website. Historically, there is no parallel to the variety of users/brands who have come forward to claim their digital presence as it has happened on Twitter. Same is the case with non-verified official handles. We have never seen before a situation where television channels have voluntarily carried the branding of a communication platform that does not belong to them (by their usual standards, they would build a Twitter of their own and promote it. Example: NDTV Social which now augments than to aggregate). Twitter is gradually building and solidifying these partnerships to things that extend beyond the ‘verified’ badge with initiatives like cards. Over time, due to the authenticity (of the brand’s presence) and the reach (of Twitter) it will be really tough for a competitor to sell itself.

Mobile: This one is simple. Twitter has partnerships with 175 carriers around the world. This provides them with various degrees of advantages including discounted rates for access over SMS compared to other numbers. In an environment where voice revenue is falling or stagnating around the world non-voice and data revenue is a main focus area for telcos across the world. Anyone looking to take on Twitter will have to take this into account. Another aspect to keep in mind on mobile is the money spent on support SMS messages – it is not cheap.

Funding: As an indirect fallout of the Facebook IPO debacle, the valuation bubble in pre-IPO companies are now taking a bit of a beating. When hypergrowth itself does not perk up a company’s potential valuation it will limit the  ability of companies to raise money and stay true to the core ideals.

Revenue: For ads to work on services like Twitter you need scale. For scale you need to have massive number of users using the service regularly. At $5 per month per user, you won’t get anywhere with user acquisition. How do you eventually scale this business?

Conclusion: If you can address at least some of the above points you could probably wind up successfully building a new Twitter. The odds are that nobody is going to be able to do that.


Review Of Prismatic

Wavii and Prismatic are two of the latest warriors in the perilous battlefield of automated social content discovery and recommendations and over the past few weeks I have grown quite fond of using Prismatic. The domain of automated content discovery has seen much money and effort invested into it with companies like Evri/Twine, SocialMedian, Summify either shutting down or being acquired into larger products to be integrated as smaller features or as talent acquisitions. So it is surprising to see even more resources being plonked into a domain that has repeatedly proven to be either plumbing with no real scope as a consumer-facing business.

One reason why this is happening is because nobody has successfully cracked this space, exposing the underlying technology in the form of a useful, simple service than as something which is inherently nerdy in nature. Recommendation engines that work on unstructured text requires a mixture of content crawling, classification and content clustering to make it work right. Each of those three aspects are hard to crack by themselves, requiring a lot more than just your average web development chops. Together, they are an unattainable holy trinity. There is a good reason why so many companies and smart people have failed at it. That is also one of the best reason to have a go at it again.

Then there is the aspect of the RSS readers — another domain that has seen many a brave product, person and purse eventually call it quits, with not a single big product from five-years-ago being alive in 2013. You can, justifiably, argue Google Reader is still alive in somewhat a whittled down form, but even in its heyday the product could not grow into the mainstream. RSS is inherently plumbing for the connected web. It is not meant to be consumed by humans. Yet, the entire workflow around using RSS was built around human intervention. There is a good reason why it never took off.

Why I like Prismatic a lot is because it excels at executing the holy trinity really well. The on-boarding is ridiculously simple – you hook up your Twitter account (in my case, since I am not on Facebook) and it figures out a list of things you like based on your profile. It presents you with a list of links to read right when you log in. There is no “hey, check in 10-hours later when we’d have crawled content for you” in their case. For a non-technical audience this is crucial. Even more crucial is the fact that you need to curate anything at all, it figures out what you like by tracking what you clicked/opened.

Comparatively, Wavii is a more nerdy experience. The on-boarding is nowhere close to being as polished as Prismatic and even after a while on the service it leaves me quite confused. Consumer-facing applications cannot afford to appear convoluted and complicated, especially in the iOS era. Wavii is much more an alpha/beta a product than Prismatic, but that is understandable as Prismatic is better capitalized and has been around for quite a while with some top-notch talent trying to solve the hard problems associated with getting their product right.

In my opinion Prismatic is the next step from Google Reader. Underneath the shiny bits Prismatic polls RSS feeds, crawls updated pages, classifies the information, generates content summaries, titles and images and presents the story to you as a simple news/content item. But, as a regular user, you are not exposed to any of those shenanigans. Instead, all you get is an endless stream of news/information with an exceptionally high degree of relevance with zero active input from you.

If I had money to invest, I would certainly invest a fair chunk with Prismatic. I am still not sold on the idea that niche products like these can stand on their own two legs and scale into the hyper growth phase. But I am pretty certain that should the team choose to sell in the future, the exit would be fairly large for everyone involved and deservedly so too.

Disclosure: I have no connections with either product directly (other than a two bug reports) or through my clients.

Samsung Galaxy S, GT-19000: Two-Year Review

My trusted Android road-warrior — the Galaxy S — completed 2-years sometime late last year. I had picked up the phone as a replacement for my tough-as-nails Nokia E71, long  before the platforms were burning and tablets and mini-tablets had become the rage. To say that the phone has exceeded my expectations would be an accurate statement. As my first touchscreen phone and as my first Andorid phone, I had expected the experience to be ghastly and that the phone would not last for more than a year. I could not have been any more wrong about all that.

The phone is currently running a stock build of Jelly Bean (Android 4.2.1) and other than a deadboot (completely my fault, fixed at a local mobile phone repair shop with a JTAG flash), the device has been flawless. OK, not entirely, I also managed to make the camera unusable after scratching the lens cover pretty badly. In spite of Samsung trying its best to shaft its customers with all the Touchwiz madness and glacially slow firmware updates, this phone will easily continue to go into the pages of history for reasons other than being the phone that started the thermonuclear war with Apple.

Other than being one of the best developer-supported Android handsets, what I love about the phone is how sturdily it is built. It has been dunked in water multiple times, keeps surviving regular falls with unfailing regularity (to the extent that I often ‘demo’ it to friends, eliciting their unparalleled shock) and has withstood my general grubby and clumsy usage. These were the qualities that endeared the Nokias to me a long long time ago and I still retain the E71 (which is fully functional) as one of my backup phones.

I can say with reasonable certainty that come August 2013, I will still be using the phone as long as it keeps going and if it does not get stolen or gets lost. The strange part is that even though the Android ecosystem has changed drastically in the two-years I have had this phone, my desire to switch to a different handset has always been fairly low. It needs to be kept in mind that my smartphone requirements have only regressed over that period. I don’t game at all on the device, there are a few productivity apps and it is used to play music in the car when I drive.

If you take out two important factors — a superb camera and games — Android phones can perform 90% of the functionality (forget NFC for the time being), of the other functions across the board all the way down to Gingerbread. I know this for a fact due to my second phone – Micromax A73. I prefer shooting photos with a proper camera now and don’t use mobile phones for that purpose and I can say that my gaming days are now pretty much behind me. For a while I kept evaluating the Nexus 4, but I just could not convince myself that it was worth the premium I’d have to pay for it.

On the other hand, my regular run-ins with iOS only serves to reaffirm my belief that it is a fine, polished OS and an ecosystem, but it is simply not the right option for me. Having ruled that option out, I am not sure what will be my next smartphone at the higher end of the market.

The Price Is Right: YouTube Versus Labels

The Guardian has an interesting story on how record labels are learning how to make money from YouTube.

Five years ago, this is what I had written in ‘Youtube: The future of music distribution?

Now, if Youtube were to give the record companies a fixed amount of money (they had set apart $500 million for copyright litigation-related costs in escrow), for legally playing out music/music videos and if that fixed amount of money is higher by even a cent, compared to what the industry might make legally a few years down the line, who can honestly complain about it?

Since I wrote that many moons ago, I have been quite convinced that the fight with YouTube for the record labels was less about copyright/licenses and more about the right price. Internet has not changed much the manner in which music is created; what it has ripped to bits is how discovery and distribution works for music. The stark truth for labels is that in trying to keep the old model going for as long as possible they have lost on being on top of the game as far as distributing music goes.

Another way to ask the question is: where is the Hulu for music for record labels?

With iTunes and YouTube they have given up a key point of leverage and that horse has long bolted. The situation is largely beyond repair with the limited imagination the industry has. So the only option left is to cut overheads, haggle over the price and ride the wave.

If the price is right they would not care less whether the clip or stream with the largest number of eyeballs is the official one or not, as long as they are getting paid for any stream (official or user-generated) or clip with their artist in it. In fact, it is more of a headache for YouTube as official channels can get them better revenue on the ads, compared to the clip being played on an unofficial channel.

To a great extent, this change is already visible on YouTube through two developments: YouTube’s fingerprinting service has of late improved dramatically. It now develops artist pages and playlists from official and unofficial channels. Secondly, they are aggressively pruning non-official versions of various clips, leaving only what the copyright holder wants to show available to the viewers.

For the users this has one major downside. In a manner of speaking, YouTube was the true successor to Napster in the width of content it used to host. You could find some really obscure clips on it earlier. As the cleanup continues, that feature will slowly fade away. On the other hand, products like Grooveshark, Spotify, Gaana and Saavan are making it increasingly easier to find and consume legal content, thus reducing one of the major cases for piracy – which is convenience.

For the labels, eventually, it is not that bad a deal. It is incredibly complicated to run a digital operation that manages both geo-restriction and monetization effectively. Given enough time, a new product is eventually bound to emerge that will do that better than a YouTube or an iTunes store. Till that happens, they can cut costs, make more money and let others do all the hard work.

Avoiding Entrepreneurial Meltdowns

One of the inevitable side effects of being an entrepreneur is that the first few years of trying to be one finds you never tuned out from a state of being always tuned in. It starts with the extremely long working hours when you toil mostly on your own and it later switches to managing people, business relationships and firefighting.

The lucky few get to take a break from this state of affairs maybe once a year and disappear into a zone of no phones or email, but most don’t get/take that opportunity for years to come. For most of us it is hard to get the mind to shut down even on a break. It is hard to not think about cashflow, growth opportunities, potential leads and product lines all the time.

The problem is worse for those who are responsible for keeping services running 24/7. Being at work actively and passively maybe a glorified way of working, but it has a detrimental effects that accumulate over time. Having done that for a good four-years I found it often hard to focus well for extended periods of time. Any attempt to break from either doing or trying to do or thinking about doing breaks open the dreaded can of worms called guilt – popular culture says that entrepreneurs cannot take it easy.

Flameouts for entrepreneurs are not often absolute or immediate. It is a slow wind down and like the companies they run, especially if they are not doing well, they remain alive only in appearance and inside they are long gone. Being an entrepreneur takes, more than anything else, a sense of absolute conviction in yourself and part of keeping the game face on is to not let anyone know you don’t possess that sense anymore.

In the early years I would always aim for an absolute break – time off from everything and everyone related to work. But by the time the break would come I’d be exhausted beyond words and most of the break would be spent dreading the eventual return to work. Then, by mistake, I discovered taking a couple of days off — sometimes on weekends, sometimes in the middle of a week — and found it to my liking. It took a lot to convince myself that the world won’t end if I take a mid-week break. It was harder to convince my ego than my clients that I was not that important.

Now I have moved to a slightly evolved system. Even in a full working week I don’t attempt to work on all projects on all working days. Scheduling tasks is a major part of this and it has taken time for a workable system to evolve on that front. Of course, there are exceptions to the rule and emergencies that break with it.

Then there are external factors. Sometimes I stay off Twitter on my personal account for days or weeks on end. Information is useless if you can’t efficiently and effectively process it and when I am unfocussed, high levels of incoming information trips me up like nothing else. I’ll give up reading most things, pick up a book and finish it in a couple of days.

There is no one-size-fits-all solution to avoid to take a break and different business segments have different compulsions of its own. So, you have to come up with a solution that works best for you. But it is important to find ways to ease off and take a break for everyone.

2012 Review

One of the main reasons why I do these reviews (have to force myself a bit at times) is that it gives me a good reference point to go back and look at how far I have come (or not). The 2010 review makes for interesting reading. At that point I thought I had a very clear idea of what I wanted to do, but looking back, it is clear that I had only a clear idea of what I did not want to do. It has taken a good two-years since that time to figure out what do I want to do – to build the best digital consulting firm in India. Nothing more, nothing less.

I don’t ever remember a year passing by as quickly as 2012, but it has been a good year. The main agenda for the year was to stop dealing hands-on with technology and build an offering around strategy for products, people, processes and technology. The critical part of this plan was to transition the clients who stood by me since 2009 and other than for one client that part has been completed. Revenue was good, even though I did not hit the outlandish target I had set for myself, I managed to take the first watchful steps into the domains I wanted to get into a year-ago.

In the rest of this post ‘ll try to summarize some of the learnings and changes from this year:

Traditional Industries/SMEs

I had taken a swipe at this in 2009, but failed miserably in trying to approach it with a ‘know-it-all’ attitude. Backed by better experience, in 2012, I revisited this domain and instead of trying to re-architect entire organizations, a low-friction approach using minimal disruption was used. This approach seems to deliver better results and a deeper understanding of the domain being addressed has also changed my perspective of what a solution would look like for an SME client. The  opportunity to add value here using mostly commonsense and decent tooling is immense and I hope to do much more business here.

If you know any vendors or start-ups who have the Indian SME/SMB space as their focus please point me in their direction. I am not looking at accounting products, I’m looking more in the direction of CRM and Business Intelligence for Indian SMEs. You may laugh at how realistic is to roll out a solution for the traditional ‘laala companies’, but look at their numbers and you’ll understand that it is a massive sector.


This was a blind spot for me and there’s no hiding that fact. 2011 changed a lot of that in trying to put together a mobile ad network for a client, 2012 brought in a lot more of understanding and perspective. The mobile ecosystem is a different and unique beast compared to either traditional web or television. The execution opportunity (becoming a success by bettering what’s already being done) is immense here, but sustaining a leadership position and growing a global audience is a significant challenge. In the Indian market the gaps are gapingly huge at every part of the ecosystem and only the extremely foolish will take anything for granted. If you are foolish in the domain, you’ll always stay hungry. And I don’t mean that in a nice way.

Another interesting aspect for me is the fact that I’m still using the same phone I bought in 2010, but with the latest build of Android. The phone still does 100% of what I would want a brand new top-of-the line phone to do for me, with more than acceptable levels of lag. My secondary phone is a sub Rs 7000 Android phone that does 90% of what I want it to do, albeit somewhat sluggishly. There are new phones in the market that cost around Rs 10000, which can give some of the flagship phones of both iOS and Android a run for their money. It is incredible how quickly this market has matured since 2010 and in the process decimated some of the big players.

The tablet revolution still does not find me as a consumer in 2012. This has little to do with how good the products are on both iOS and Android these days and it has more to do with my growing gadget-aversion. It is hard these days to travel anywhere without resembling a human bomb with wires sticking out from everywhere. Chargers, connectors, cases, storage media, USB hubs — the list is endless of the things I need to carry on me these days and I don’t like it one bit. I had resisted the touchscreen revolution till late 2010 (in fact, I was more or less forced into it) and I find the same happening for me with tablets. They don’t make my life easier yet, when they do I’ll sign up for one.


This was somewhat a lesser blind spot for me, but I have managed to cover most gaps in understanding the domain in 2012. Ideally, this is the real first wave of e-commerce in India, even though we have had various forms of it online since 1999 in India. In 1999, e-commerce was a solution looking for a problem, in 2012 it is a solution that actually addresses a problem. There are many fundamental issues with the domain, but that’s to be expected when you are growing markets that are very change-averse. The next 2-years will see both operations and customers mature a lot and it is then the real fun will begin. The biggest change for me here is the gradual demise of transaction starvation and the growth of the market. Second biggest change is the commoditization of the nuts-and-bolts parts of selling online.


Ideally, I should say more marketing than social. Social is just another channel for marketeers. Having set aside a lot of the traditional hype related to anything social, it was an interesting concept for me to attempt to measure social at par with various other business metrics. It is still a work in progress and my opinion of the domain has undergone a drastic change because of that.


2013 will be a big year. The years since 2008 has been a slow buildup towards this year, everything else along the way has been a process of trying to learn just about enough to understand what I really want to do. It will call for changes that are very much out of my comfort zone. It will call for an ability to learn and adapt at a pace that is far beyond what I have ever done so far. If I were to say that there is no fear in plunging into all that, setting aside what is now an extremely comfortable position, I’d be lying. I’m scared, but I’m not apprehensive and I am fairly certain that I can accomplish what I have set out to do.

Meanwhile, here’s wishing all of you a great and successful 2013.

Is ‘My Airtel’ App A Hint Of Airtel’s Future?

Text message from Airtel prompting me to upgrade to Android ICS from Samsung.

Text message from Airtel prompting me to upgrade to Android ICS from Samsung.

The image on the left is a message I received from Airtel on the 29th of December, 2012, suggesting that I should upgrade to Android 4.0.4 on my Samsung Android device and it says I should visit the Samsung India website to get the process going. This is interesting for a few reasons:

1. The device has not run stock Samsung firmware after 2010 and for a while in 2011. For the past year and a half it has only run various custom ROMs, mostly various builds based on CyanogenMOD.

2. As far as I know, Samsung India does not have my phone number registered with this device. In fact, I am fairly sure that I have not registered for anything with Samsung India regarding the phone. The phone has never seen a Samsung service center.

3. The obvious suspect is Airtel. The device resides on their network and I have the ‘My Airtel‘ app installed on the device, which has permissions to read phone state, identity, network and location details. It is fairly trivial for the app to gather the required details and suggest an upgrade.

4. The lesser suspect is Google. The phone has always been wired to a Google Account and from that point it can access the firmware number, mobile number, location, carrier details etc. But the message originated from the same source that Airtel uses to send other alerts. Unless there is a formal tie-up between Airtel and Google, this will not be possible.

If it can be confirmed that the Airtel app was used to trigger the SMS, it should give us a hint that Airtel is fairly serious about the app. The app is shown to be in the 500,000 installs range by Google Play and it has a decent number of 5-star reviews. If it now triggers firmware upgrade text messages based on the model/manufacturer, it will be another significant move by Airtel to move out of the ‘dumb-pipe’ trap that telcos are desperate to get themselves out of.

Why do Investors and Start-ups Ignore Small Businesses in India?

Every enterprise, be it micro, small or medium these days have a common set of requirements at the digital level. In an earlier era, office automation or digitization involved the installation of computers and digitization of documents. Today, the story is vastly different and the requirements can be roughly summed up under the following categories:

Connectivity: This covers portables (mobile phones, tablets, laptops), desktops and miscellaneous devices (IP-enabled webcams). They all need to hook up to IP networks (public & private) over wired and unwired networks. As the SaaS slowly makes its way through this space, ubiquitous IP connectivity will become the norm and any solution that will provide a simple, single point interface to manage all of that infrastructure will do really well.

Document & Information Management: This covers content management systems, file management systems, documentation systems (not limited to accounting, shipping and taxation roles), internal and external websites. Current solutions are either at the extreme high end or at the lower end where the integration nightmares put off smaller enterprises. Another neglected fact is that every sector and sub-sector has different requirements that needs solutions tailored to its needs.

Storage & Disaster Recovery: Network-attached, role-restricted devices and services are again non-existent at a lower price level or unaffordable at the higher end. Most of the smaller companies I have interacted with badly need a plug-and-play solution that has an optional cloud component.

Communication: Email, collaboration and IM servers and services. Needs range from simple email to secure web conferencing at the higher end. Various pieces of this exist in the market right now, but there is again no single easy-to-use managed service.

Business Intelligence: I am really surprised that something like ActiveCell for India does not exist in the market. A significant chunk of the SME/SMB space has decisions driven by instinct than information. If it can be packaged and made to work right, the opportunity is considerable.

There are obvious challenges to addressing the small business space, especially in India, the usual bugbear of payments being only one of the significant problems. But the transition to a younger leadership in the space is also changing the game. From a generation of leaders who were unfamilair with technology or computers, we have transitioned to a world where a sizable chunk of the leaders now have Blackberries and are familiar with various digital products.

Another important fact is that to make selling to SMEs in India is not just a case of running another A/B test or a smart Adwords campaign. The one thing that works well for sales in the segment is boots on the ground and as amply demonstrated by the success of Naukri.com, it is not a challenge that cannot be overcome.

In 2013, I am hopeful that we’ll see more action in this space both from investors and entrepreneurs.

Change The Thinking

Last evening, I had the opportunity to attend the Delhi chapter of Hacks/Hackers (terrible name, if you ask me) organized by Anika Gupta and  Shrey Malhotra. The idea was to get both hackers (better known as programmers) and hacks (better known as media professionals) on the same platform to figure out ways to reboot journalism. I won’t go into discussing the problems and opportunities in media and elsewhere. It is a topic that needs a different discussion. What I will write about is how we can probably do a better job of coming up with ideas and figure out if they are feasible at all.

At most of these events, I find a lot of bright people (both young and old) interested in trying to come up with different solutions to what they think is a problem. While these ideas do address some problem or the other, not all of them have enough merit to make the transformation from something an individual would love to use to something that can support a healthy growing business around it.

It was with this concept in mind that I asked everyone gathered the following questions:

  1. If you were given Rs. 5 crore, with the only condition being that you’ll build a media product, what would you do?
  2. How long do you think that money will keep you going?
  3. How long do you think it will be before you’ll break even on that money?

Unfortunately, I asked the question towards the end of the session and at least Nikhil thought it was an attempt by me to crowdsouce a business plan. Nobody else attempted an answer and that is where we have to change things first. Ideas are like stones in a river, there is always more than enough in there. To succeed as a business, you have start at the point of being able to answer the three questions (OK, you can change that 5 crore figure to anything you like) about your idea.

Understanding these key numbers (traction, revenue, OPEX), even to the limited extent you can project them, will help you look more effectively for the size/kind of investment you need. It will also give you a good idea about timeframe/runway you’ll have at different investment/traction levels. It may look like too much icky work for either a hacker or hack, but if you are going to wade into creating a business/product or come up with serious enough suggestions to reboot any business, you have to learn to work with these numbers.

Short of that, all we’d be doing will be idle ‘ideation‘.

Setting up Fat Free CRM on Webfaction

Fat Free CRM is a lightweight Ruby on Rails application, which is very similar to the Highrise application by 37 Signals. These days I am trying to reduce my dependency on SAAS providers by hosting applications I use on a managed service. Why I am following this particular approach is beyond the scope of this post, but I could not find any instructions online that would get Fat Free CRM running on my hosting provider – Webfaction.

Before you start, I should warn you that I know precious little about Rails other than my usage of Redmine and FatFree. If you were to ask me to help you with any issue you’d face following these instructions, the odds are that I would not be able to help you at all. So proceed at your own risk.

1. Set up a Ruby on Rails application as detailed here.

2. SSH into your host and change to your webapp’s directory
cd ~/webapps/your_webapp_name/

3. Export the environment variables as specified in the Webfaction guide:
export PATH=$PWD/bin:$PATH
export GEM_HOME=$PWD/gems
export RUBYLIB=$PWD/lib

4. Check if the correct Ruby and Gem versions are being called. It should use the app’s versions and not the ones installed by default on the server.
which ruby
which gem

5. Install some gems.

gem install bundler passenger activesupport mysql2 activerecord-mysql2-adapter

6. Get a copy of FatFreeCRM from the Git repo.

git clone https://github.com/fatfreecrm/fat_free_crm.git fatfree

7. Create a new database for the app.

8. Create the database.yml file and change the connection details in it.

cd fatfree/
cp config/database.mysql.yml config/database.yml
vi config/database.yml

9. Edit the Gemfile to uncomment the mysql2 adapter.

vi Gemfile

10. Check the bundler and rake versions, just to be doubly sure.

which bundle
which rake

11. Run db:migrate and db:set-up. 

RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake ffcrm:setup

12. Change to config.assets.compile = true in production.rb

vi config/environments/production.rb

13. Edit nginx configuration to point to ‘fatfree’ from ‘hello_world’

vi ../nginx/conf/nginx.conf

14. Restart nginx