historious is a search engine for bookmarks. The challenge with this project is to create a service that can scale to a large number of users and, more importantly, documents. historious stores millions of documents for thousands of users, and the challenge is to make each search among these millions of documents return in a few milliseconds.
With intelligent caching (and a little help from redis), the scalability of solr and the power of postgresql, the site is very responsive, even with large numbers of users searching at a time. The project is written in Django, which makes iterations quick and development extremely agile.
YourPane is an attempt to make sharing links easier. The user installs a bookmarklet and clicks on it, selects a few friends and YourPane emails them the current website. The important differentiation here is the real-time element, as YourPane utilizes the Channel API to load new links in real time, as the user sends them, without reloading the page.
YourPane is written in Django and is deployed on Google AppEngine, which makes scaling automatic. This is an ideal fit for the application's large viral component, as it allows it to scale linearly and effortlessly to a vast amount of users.
TaxBonus was initially part of a one-day sprint to build a useful web app. TaxBonus is used by Greek citizens to record the number of receipts they keep during the financial year in order to receive an annual tax-free bonus when they deliver the receipts to the Greek tax service.
TaxBonus is written in Django and is deployed on Google AppEngine. Even with the large success the application has had in the Greek segment and the ever-growing number of users, AppEngine is able to keep response times very low with no intervention on our part.
We developed Daily Secret for a third party. It is a daily mailing list with the best that cities have to offer. Members can sign up to the list to receive one email per day or browse the archive online using a rich, location-aware interface.
The challenge this service presented was the large number of pre-existing members that were to be migrated from the old, wordpress-based site, which meant that the site would have to be able to serve thousands of visitors from day one. This was achieved by lean, fast code, intelligent caching and load balancing.
Dead Man's Switch
Dead Man's Switch is a service where users can register messages to be sent in the event that something happens to them, so it acts as a sort of digital will. This is done by sending the users emails every few days, urging them to respond. If a user does not respond for a preset number of days, the switch is triggered and the emails are sent.
Obviously, a service like this needs to be extremely reliable and rock-solid. Military-grade encryption is used to ensure that all private data remains private and thousands of lines of unit tests ensure that everything is running perfectly. All the components used in this project are open source, and they have proven to be oustandingly stable, as the service has enjoyed excellent uptimes.
The Summarist is a short project we built because out of our love for books. We realized that, after reading a book, it might be useful to other people if we posted a summary of each book, so we wrote a simple web app to facilitate this.
This was a fun app to write, and it took around two days. There are various helpers, such as interfacing with Amazon's API to auto-fetch cover art and book information based on its id, simple search facility, a mailing list, etc.
Persowna is a hosted Mozilla Persona provider. It makes it easy for people with their own domains to own their authentication, with secure features such as state of the art cryptography, two factor authentication, easy deployment, etc.
Persowna started as a small side-project as well, but it has evolved well past that. Usage is very simple, and it is a breeze to use. The need for extreme security in this project is obvious, and has led to us learning a lot about how to better secure a web application, both on the server side as well as the client side. It was an interesting exercise in implementing the Persona IdP protocol, as well as OATH for two-factor authentication, certificates, and other technologies.