During the first round of lockdowns I also spent a few lazy afternoons tinkering around this idea, mostly to get the feeling of how hard it would be (https://github.com/carlosefr/pialarm).
There are a few nasty requirements commercial alarm systems have to meet that I don't see mentioned in the article, namely how it protects against tampering and voltage spikes (which can be used as a form of tampering).
One way to protect the controller from ESD and shorts is to use optoisolators on every input and output, which should also be dry contacts (grounded=on, floating=off) whenever possible.
To detect environmental faults and tamper-inducing faults the controller can use analog inputs (which the Raspberry Pi doesn't have, but can be easily added with an MCP3008 ADC, for example) instead of digital GPIOs. This is why commercial systems need input resistors inputs added at install time depending on the particular sensor configuration.
As a software person, thinking about these things gives me a much greater appreciation for people doing industrial electronics design.
PS: For the average geek, an easier path is to interface a Raspberry Pi to a "dumb" commercial alarm. You can have the Raspberry Pi behave like a standard sensor input or monitor the sounder outputs.