Open Source at SAPO

A brief history of Open Source software at SAPO

SAPO has an established Open Source tradition dating back to its origins in 1995. All our critical infra-structure runs on Open Source software, and in the past 16 years we’ve contributed to Open Source in a number of ways, either by releasing our own code or by sponsoring a number of developments in projects we adopted.

Although it is impossible to keep tabs on all the various minor patches and contributions to everything, there are a few core projects that we’ve been involved with for a long time.

LibSAPO.js taming JavaScript

Our original foundation library for developing rich client-side user experiences, made available to the Open Source community to gather feedback and help those developing next generation websites and services. Now a part of Ink, it spans over a hundred modules and provides unparalleled structure.

XMPP building bridges

After using XMPP as the underpinnings of our IM service for a period of five years with excellent results, we felt the need to give back to the XMPP community and help consolidate what was then still a de facto standard in two fundamental aspects for non-technical users - desktop applications and interconnection with popular (incumbent) IM services such as MSN.

The Psi project stood out as the most complete client-side framework available at the time, and sapo sponsored its founder, Justin Karneges, to continue developing and consolidating it.

As far as interconnection was concerned, the best available work at the time was being done in PyMSNt, a project headed by James Bunton, an Australian college student. With SAPO sponsoring, PyMSNt gained avatar and file transfer support, allowing for easier and friendlier inter-operability between native XMPP clients and MSN.

Finally, we made available the full source code for the Mac version (which is the most up-to-date).

Bricolage massive-scale content management

Bricolage is an open-source enterprise-class content management and publishing system that greatly simplifies creating, managing, and publishing the vast libraries of content available to sapo, and we adopted it as one of our CMS platforms from the very beginning - which meant both contributing to and sponsoring it in a number of ways, such as:

PHP Sandwich do you want ketchup with that?

Another major contribution to Bricolage that stands on its own was to sponsor the development of the Perl module PHP::Interpreter, that loads a PHP 5 interpreter into Perl. PHP templates in Bricolage then became pure PHP while allowing transparent access to the Perl-based Bricolage environment.

PHP::Interpreter is, of course, available on CPAN, allowing any Perl-based application to leverage its functionality.

Mail open is better

Our sapo mail service currently provides 10GB mailboxes to over 6 million users, and we proudly run it on a fully open software stack - which means contributing to a number of top-tier Open Source projects.

Dovecot there can be only one

We adopted Dovecot as our IMAP and POP3 email server due to its excellent performance, its extensive set of features (such as indexing) and its emphasis on security. We are (very) active sponsors, and deeply involved in the development of its dbox mailbox format and single-instance storage.

Horde the smile on our front-ends

Horde was the natural choice for our webmail front-ends, given its comprehensive suite of productivity, messaging, and project-management applications.

SAPO has been sponsoring its development for a number of years, mainly where it concerns IMP (for multiple-language, web-based access to e-mail) and Kronolith (for calendaring and mobile syncing).

Shibboleth keeping us safe

Shibboleth is one of the underpinnings of sapo’s authentication and authorization infrastructure (both internal and external).

We contributed to the Shibboleth SP by adding support for memcached session storage and FastCGI, which makes it easier for us to make available our sapo ID service to our entire network of partner sites.

Miscellaneous odds and ends

We also submitted (and update as necessary) a few patches for other projects like

This is not an exhaustive list, but should give you an idea of how widespread our commitment is.