Reepli.com is the Atlanta Startup Weekend 2 project created by Erik Peterson, Mark Luffel, Hamed Hashemi, Amro Mousa, Joe Uhl, and me. Â I’m really proud of how the team worked together and the amount of stuff that we were able to get done in a very short period of time. Â We closed out 45 issue items over the course of 48 hours. Â That’s a pretty good clip.
Since the site’s still in private beta and the seed data took over the presentation, I’m going to present what we built in a little more detail.
Conversations
The focus of Reepli is conversations. The system allows you to not only find conversations, but also reply to them through the system. Currently we support responding to twits on Twitter and Wordpress blogs that don’t have captchas.
The conversations screen is the center of the app. This is a list of recent searches that have match the keywords defined in a campaign. We’ve written a background process that fetches new results from google and twitter every 10 minutes. The front end also refreshes every 5 minutes.
You can either choose to ignore a message or reply to it.
Twitter replies happen inline. With each campaign, you define your form responses. You can always use a form response, or modify it to choose your own. There is a module that reformats your English to give the appearance of customization. However, this happens at message creation time right now and is not integrated into this view.
Identities
Multiple identities are crucial to any successful marketing campaign. It needs to appear that you are not the only one spreading the message. Or, if you are a support department, you may want to appear as the only contact point for consistencies stake. Reepli is flexible and will let you use the system however you want.
You can select an identity per-response.
Campaigns
All conversations are tied to a campaign. A campaign defines the search terms (or keywords) that require you to respond. You can activate and deactivate campaigns depending on your needs.
The keywords for an active campaign are passed into the search modules every 10 minutes. The search modules scan Google and Twitter and store the results of their match in a database. The search module also filters out non-blog results on Google. This means your agents won’t have to waste time on non-actionable webpages.
This is the overview of the campaigns screen. You can edit the name of a campaign:
The details page for a campaign not only show the keywords, but also the pre-canned replies defined for each campaign.
One of the neater and more useful features of the app is the system will translate the text on edits. Subtly changing the text you are replying with will help prevent your responses from getting incorrectly marked as spam. Look closely at the following screenshots:
The toolset
Reepli.com is written in
Ruby on Rails. For AJAX and effects, we use the
JQuery. We’ve configured the database using
ActiveRecord Migrations. On our dev boxes we were running
SQLite. Our production server uses
PostgreSQL.
The app is deployed on a
Slicehost slice running
Ubuntu Hardy. The appserver we chose is
Passenger. The code is hosted on
GitHub and is deployed to the server via
capistrano.
We’ve also unit tested a significant portion of the system with
RSpec. This was invaluable in isolating the faults between the front-end and back-end.
Revenue Model
This is easy. Charge people somewhere between $7-$25/mo for accounts (depending on the costs of the system).
What’s Left?
We built this thing in a weekend. The team was very talented and super-focused, but there’s only so much you can do in that little time. There are a few show stopper bugs. They aren’t hard to fix, we just didn’t get them before demo time (also why the screen shots show a local IP and not reepli.com).
The hard problems of scalability are still there. Support for responding to more platforms needs to be added.
However, for a weekend project, the code is solid, well written, and does a lot. If the
eBay auction doesn’t work out, a few of us might actually pick it up eventually. There were quite a few “damn this is useful” moments through the course of the weekend.