If you write a concrete5 block and it’s not available to install

Quick tip for developers writing custom blocks for concrete5. If you have coded a block, placed its folder in ‘blocks’ directory but cannot see it available for installation in concrete5 backend (in the "Add functionality" section), check the controller class name. That is the issue in most cases. It should match the block directory, i.e. if your block folder is “my_folder”, then in controlller.php you should have this:

class MyFolderBlockController extends BlockController {

I don’t recommend to use anything in your block directory name except digits, a-z characters and underscores.