Our Tech Stack

The following is an overview of the technologies that we use to build and run the OpenBoxes application.

Frontend

  • Reactarrow-up-right: Our current frontend framework.

  • Groovy Server Pagesarrow-up-right (GSPs): A Grails technology that functions similarly to Java/Jakarta Server Pages (JSPs). For creating dynamically generated HTML. We use this as our frontend for our old features. It has since been replaced by React for all new features.

Backend

Database

  • MySQLarrow-up-right / MariaDBarrow-up-right: The relational database that stores all OpenBoxes data. If given a choice, we recommend MariaDB

  • GORMarrow-up-right: Grails Object Relational Mapping. A data source framework used by Grails that allows us to query the database via Groovy method calls on Domain objects. This means that we can query the datbase without using language-specific queries. This masks the underlying database from the application itself, which allows us to support multiple different SQL server implementations (MySQL, MariaDB...). We use GORM-for-Hiberatearrow-up-right since we use a SQL-based relational database.

  • Liquibasearrow-up-right: Automates database migrations / schema changes via changelog.groovy files. See the /grails-app/migrations folder for more information.

Observability

  • Sentryarrow-up-right: Error monitoring and reporting as well as performance tracing.

  • New Relicarrow-up-right: Provides a massive suite of observability tools. We primarily use it for log reporting / request tracing, and for system health monitoring

Last updated

Was this helpful?