As such, the package aims to address a user base with varying ranges of expertise from students to well-rounded QSPR modellers interested in developing and testing new approaches. With QSPRpred we try to provide high-level interfaces to accomplish QSPR modelling tasks in few steps, but at the same time try to encourage writing of modular Python code by making sure all variable steps are encapsulated and easily replaceable by custom implementations. In addition to being customizable, all steps can also be combined using the built-in benchmarking workflow, which enables streamlined model building to the likes of AMPL or Qptuna, but completely described in Python with "plug-and-play" components. This provides a platform for researchers to experiment and validate novel approaches quickly. In addition, QSPRpred tackles the problem of reproducibility and deployment of models by streamlining setting of random seeds and using a global serialization model that not only includes the model itself, but also the molecule preparation and featurization steps. This means that a shared model can be reloaded and directly used for predictions from SMILES strings without the need to repeat any preparation steps.