How can I develop my custom module in IcingaWeb2?

PNP is an excellent starter as it demonstrates multiple functions like adding a new top level menu, configuration page, host and service level widgets and so on. However it works only with Monitoring.

The API for IcingaWebDB has changed and reportedly there’s no equivalent for it so far.

I highly recommend using PHP 8.1+ for development as there are quite a few incompatibilities with earlier versions and you’re going to repair your plugin very soon.

there was a utility called Icinga Module Studio

Could you post a link maybe? I’ve never heard of it and Internet search shows nothing.