################## The tech stack ################## Which technologies is SciPost built on? We are strong advocates for `Free Software `_ and strictly limit our tech stack choices to applications listed in the `Free Software Directory `_. SciPost rests on * the `Python `_ language * with `Git `_ version tracking * and `Django `_ as the core framework. * Our APIs leverage the `Django Rest Framework `_. * Our databases are `PostgreSQL `_ instances. * Styling makes use of `Bootstrap `_ with lots of custom tweaks and additions. * Our original frontend makes use of custom `JavaScript `_ peppered with `jQuery `_. * For our newer frontend we are having fun using `Vue.js `_ `single-file components `_ (with `bootstrap-vue `_ for the looks), plugging these to our backend APIs using the `Requests `_ library. * Static assets are bundled and optimized using `Webpack `_. * Mathematics is displayed using `MathJax `_. * Scheduled tasks rely on `Celery `_ with a `RabbitMQ `_ broker, all monitored by a `Flower `_ instance. * Our site's `Content Security Policy `_ is implemented using `Mozilla's `_ `django-csp `_ (check our `current report `_). * Documentation is written in `reStructuredText `_ and built with `Sphinx `_. Besides this, we also use * `Sentry `_ for live error monitoring on our servers. We self-host our code repositories by running * a `GitLab `_ instance at `scipost-codebases.org `_. See our :doc:`deployment documentation <../deployment/index>` for the complete details of how our services are brought to life. While we of course make use of many other pieces of software (check the `requirements.txt` and `package.json` files in the main repository), we have a strong and seemingly insurmountable tendency to write our own systems from scratch. See the extensive :doc:`list of apps ` we have developed over time in order to cover all our needs.