Twyxt

Background

Twyxt is an app for couples that aims to do three things: keep connected, capture memories while they share, and plan the future together.

It includes features such as a direct messenger for two, a shared calendar, and shared lists. The shared calendar compiles all conversations and images to create a timeline of shared photos and messages.

Challenge

Twyxt came to us with an idea and needed the tech stack for two main features: calendar and messaging services. They needed a calendar service that would provide what most calendars provide and even make todo lists. They also needed a specialized chat service basically what we now see a lot of like WhatsApp.

Solution

Client(Android /IOS) Technologies:
PubNub SDK - this replaced the original XMPP libraries which were used for messaging
XMPP library
Asmack Library (android)
XMPPFramework (iOS)

Client db:
SQL­light for Android
CoreData and Arc for iOS
FB library
APNS and C2DM handling
AWS service integration: S3 API and services
Core Server Stack
SabrelDav Calendar Server
Transport layer
version 1: using XMPP(openfire later replaced with ejabberd) as a transport layer
version 2 using PubSub as a transport

Web API and RSS technologies and frameworks:
version 1: Recess framework for RestFul API and CodeIgniter, jQuery, and Bootstrap for webpages
version 2: laravel
website: WordPress
SNS integrations: FB, twitter, and google plus
Maintenance and analytic tools:
Python, PHP, and bash scripts for deployment and backup

Scaling:
Jabber server clustering integrated with Scalr services and custom scripts - this was then replaced with PubNub's global scaling
scaling server providers
Scalr Services
Xeround Services (replaced with amazon rds)
Recess Production Cache. (replace with Redis on Laravel)
AWS: this later replaced Scalr and Xeround