Normative mineralogy is a valuable tool for interpreting the mineralogical composition of rocks based on their bulk rock geochemical data. Despite the development of various computational tools for normative mineralogy calculations, the accessibility and continued usage of many existing tools is limited by the use of older languages, licensing constraints, and restricted access to the source code. In this paper, we introduce a Python-based implementation of the normative mineralogy algorithm, which is accessible through a user-friendly web application webNORM, or as part of the pyrolite Python package. The algorithm uses major, minor, and trace element oxides as input and returns up to 31 normative minerals. It offers two methods for estimating the Fe2O3:FeO ratio. The web application offers a convenient interface for users without programming experience, while the pyrolite integration allows more advanced users to leverage the Python ecosystem for end-to-end geochemical data analysis. Comparison between our implementation of the normative calculation and previous implementations shows that our version is accurate and reliable. webNORM offers the geoscience community an accessible solution for calculating normative mineralogy. The algorithm and web application are open-source, and we encourage contributions and adaptations by the community for specific needs and improvements.