Open Source Makes Great Source

By Ellice Mclean
December 27, 2019

Introduction

A software is said to be Open source means the source code of that software is available. It means the developers have decided to share the underlying program with the rest of the world.

Critical pieces of the internet are open source. In fact, if it was not for open source, we would not have the internet as it is today. For instance,

  • The servers that power most of the websites is based on Linux, an open source operating system based on Unix
  • Most operating systems today are based on Linux, such as MacOS, iOS (iPhone / iPad) and Android
  • The encryption technology used by most of the planet is OpenSSL, a solid open source encryption program
  • Most webservers online are based on one of two open source servers (Apache or Nginx) -- Note that our application has its own server, see below.
  • Most websites use an open source database PostGreSQL / MariaDB

We are part of the movement

As an organization, we are using almost exclusively open source tools for our work. The website you are browsing, the applications, graphics, editing, all done on open source tools.

Part of our contribution, is that we help fix bugs, improve documentation and so on.

Open source does not mean you take for free, it means you are part of the development, regardless of what role you take on. There is always room to contribute.

Open Source is not free

A common misconception is that Open Source is easy and free.

It is the opposite. It can actually be more expensive and difficult. But it is defnitely faster (most of the time).

Here is why: We don't need to reinvent the wheel. Some foundational tools exist and have been ironed out over the course of many years (often decades). However, using them requires more technical skill as different tools are built with different technologies and have different standards.

Documentation is often not up to date (as it depends on community members). You need to therefore have the skill to dig deeper when something goes wrong.

To have a complete production-ready system with open source you need engineers and leadership with much higher technical skills

But .. it is more secure

With open source you have access to most underlying blocks yourself and can validate if the tools used are secure. Many of the tools below have been thoroughly reviewed and tested for security.

Read this warning from the NSA about recent vulnerabilities in Windows. As the source code is not available, hackers discover vulnerabilities before anyone else by trial and error

Our Stack

Ok, so here are the main tools we use. We likely missed a few things along the way, sorry if you are the developers. We'll be updating as we remember things :)

  • Ubuntu (Linux) - Server operating system
  • OpenSSL - For security
  • PostGreSQL / Citus - High-performance scalable distributed database
  • Redis - Pub/Sub and in-memory storage
  • TensorFlow - Google's AI engine, baked right into the application
  • ReactJS - Display Engine for our web app
  • ReactNative - Framework for our mobile apps
  • Docker - For containers of our application

OneOffice does not use external services. Even AI is built-in. This makes for higher security and resilience. Also making it suitable for on-premises deployment

100% Core Code

The core code has been painstainkingly built from scratch:

  • Web server - We do not use a web proxy like NGinx or Apache, we handle communication directly with the end user / application
  • SSL / Encryption - We generate all https SSL certificates ourselves, right from within the application
  • Services - The database drivers are 100% written by us and optimized for our application. This includes PostGreSQL, Redis and Anti-Virus
  • Anti-Spam - We built an AI model with over 2M parameters, trained on over 500k emails to get one of the most reliable anti-spam engines in the industry. A typical email gets classified in under 5ms!
  • Email - Our own IMAP and SMTP servers, fully optimized to handle requests at scale. We benchmarked with MS Exchange and we are 10-20x faster. A typical server can handle 500M emails a day!
  • Optimized server - User requests handled real-time, giving users a much smoother experience. Real-time updates are sent when something changes, no need to refresh
  • Smart apps - The web and mobile applications are designed to handle a lot of requests locally. They even includes NLP (natural language processing) to handle user commands on the fly, without having to query the server in many cases

Typical applications need 5 - 10 database hits per request. We have optimized OneOffice to have an average of 2 database hits per request. This results in faster user responses and reduced hardware resources

Conclusion

Getting to market faster and better is a key component of any successful product. OneOffice directly competes (and in some cases surpasses) the major platforms of today. We can focus on our core features and leave some of the nuts and bolts to the community.

This way, we all leverage each other to get a better and more secure product.

Welcome to the age of technology sharing.

Ellice Mclean
Ellice Mclean is a developper with over 10 years’ experience, mostly developping user interfaces users would actually use. Her academic background includes Computer Science and research in AI. Other significant roles include several years as in one of the top software companies. Her passions include traveling with her children, journaling, and genealogy

Start your OneOffice now

Catapult your digital office! It's only 10 mins away