How users see the services

The Saberr Platform is served as a web-app with email notifications.

We don't currently offer "native" apps in the App Store, Google Play Store etc., since all of the services' features can be served via the web.

The web-apps are compatible with all modern browsers, and most regularly-used features are supported on mobile as well as desktop. The team sessions are designed and scaled to work best on large screens: TVs or projectors.

The technology stack

The web-apps use React as the front-end javascript framework. The front-end talks to (internal) REST APIs, which are written in Python using the Flask and Django frameworks. These APIs are served serverlessly using Amazon Web Services - Lambda. The APIs are globally available but served from the EU (Ireland), where the databases (Postgres on AWS - RDS) and caches (Redis on ElastiCache) are also hosted. The infrastructure, scaling, backups and encryption are industry standard managed by AWS. All of our services operate inside a Virtual Private Cloud (VPC). The frontend itself is also hosted by AWS - S3 and delivered via CloudFront.

Several other AWS services are used in support of this, like SageMaker for machine learning inference, SNS/SQS for job queues, API Gateway for endpoint protection.

Transactional emails (notifications, invites, reminders) are handled by Mailchimp/Mandrill.

Users' work calendars can be connected to Saberr (as a means of login and to help schedule team/1:1 meetings). We use Cronofy to facilitate this connection, and support Google G Suite and Microsoft Office 365 calendars.

As we develop code, we peer-review major changes and feature additions, and use continuous integration to development infrastructure in a separate VPC. Releases to production happen with a pull request review with automated testing and database migrations.

Other services we use

We use Google G Suite, Slack, Pipedrive and Intercom for communications and customer support. A complete list of our supporting stack is available on Siftery.

Did this answer your question?