LaunchKit is a suite of tools that makes it easier to build, launch, and manage mobile apps. We take the tedium out of releasing apps and enable cross-functional team collaboration. Our tools help users build screenshots for their app store page, create an app website, track sales and reviews for apps already released, and get info posted into Slack. We are also about to release tools that help teams create native UI for their apps from the web.
On the server side we are a Python shop, using Django (for a simple REST+JSON API) and Celery for background tasks, over Postgres and Redis. We have several components written in Go. Our web client is a server+client JavaScript app using a framework called Skit (skitjs.com) that we built, which is mostly vanilla JS, with Handlebars for templates.
We use AWS (Ubuntu-flavored EC2, ELBs for SSL termination, RDS for Postgres, S3, Route53, etc.); Papertrail for logs, Pingdom for monitoring. We use Google App Engine for photo hosting/processing.
The most difficult thing we’ve done in the past 3 months is build underpinnings for the next phase of LaunchKit. We’ve publicly launched a set of nice web-based tools, but what we’re building next is far more complex: we’re working on hosting web-configurable, native client UI for iPhone (and eventually Android) where you can choose and customize various UI flows on the web and easily install and run them in the client.
To make this work, we’ve built an iOS client-side SDK and runtime, as well as a set of server-side components to compile and deploy native iOS UI. Adding some special sauce to all of this is a dynamic user-focused analytics platform, which collects and analyzes client-side user data to inform these various “hosted UI” flows.
Taken together, it’s a sprawling, multifaceted and fascinating project – but it’s been challenging putting all the pieces together. We’re obviously very excited about the end result, which we hope to launch this fall.