How To Create A Custom Block Without Mychanges Addon

So I followed this tutorial to create an addon, and it worked, but the issue is that I want it to be a block so it can be added to the homepage from the admin panel. I dont want to use mychanges addon for this. How can I move this to the block so when I add new block it would show up in the create new block tab?

You can use HTML block with Smarty support and call php functions there

No I need to make a custom one without smarty block as well, I need it to be in create new blocks, and allow the admin to add a backgroud from the block and display product categories

I started by adding the block in the block.php file, but where can I add the designand the hooks?

Why you do not want to use custom addon?