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 deployment documentation 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 list of apps we have developed over time in order to cover all our needs.