Building Kojitsu primarily for myself gave me the creative freedom to take the product in any direction I believed in.
I have always had a strong focus on simplicity and spent countless days working to ensure every aspect of Kojitsu was as simple and intuitive as possible.
One of my favourite features was the integration with Read it Later services Instapaper and Pocket. Once connected you could save a link simply by clicking a bookmark icon. This worked in both the web UI and daily summary emails and was one of the most used features within the app.
I’ve tried a number of these services: this is the first one that actually works. It consistently sends me an email with great links that I missed from my friends’ Twitter streams. Really valuable service from @mattantwest - Justin Jackson
Building Kojitsu allowed me to hone my Rails skills and experiment with different server setups. I designed the server infrastructure to scale horizontally, using Digital Ocean as my provider for affordable computing power. While simple on the surface, behind the scenes Kojitsu was running:
Load Balancers - Handling incoming traffic and directing requests to a number of different app servers.
App Servers - These servers handled general requests to the app from the web UI and redirect links in the daily summary emails.
Worker Servers - Worker servers were responsible for monitoring the feeds of connected accounts and then crawling URLs to obtain information about each page.
Database Servers - The core app ran on top of a MySQL database server with a separate Redis server being used to maintain an index of all the URLs encountered by the worker servers.
All of this paved the way for a scaleable server infrastructure but also considerably increased the cost of running the service.