Since Zerg vs Zerg is such a volatile match up, it is hard to state specific responses for standard play. It is possible to tech on a variety of drone counts and bases and tech units such as mutas could happen at any point in the game. This is why it is recommended to continuously scout using overseers, changelings speedlings and overlords for tech such as lair, spire, lurker den, hive, infestation pit, ultralisk cavern and greater spire.
For reactions to specific builds, please see this article:
The first reaction that is really noteworthy in ZvZ is the mutalisk. Since the match up often revolves around ground based units for a large portion of the early and midgame, mutalisk switches or rushes can be powerful.
The best ways to counter mutalisks depends on how early they are being obtained. Many times it is possible to just mass roaches and crush your opponent before they can get enough mutalisks. Since you should have many more roaches then them.
However there are many times where this is not an option. In these times a spore crawler in each base is necessary. Counters to mutalisks could be found in hydralisks since they will almost always win in 1 on 1 engagements, infestors since chaining fungal growth is devastating to a mutalisk player combined with extra queens for defending bases.
Lurkers can hit powerful timings in ZvZ and if you are not ready often you will just die. The best counter’s to lurkers are vipers or broodlords. Vipers can abduct or blinding cloud the lurkers to give you the opportunity to engage against them. Broodlords are flying units that can pick away at any number of lurkers, just watch out for hydralisks on the ground.
If these options are not available, one way to counter lurkers is with your own. Lurkers have a very difficult time engaging into lurkers and your own should be able to force your opponent back.
If neither of these are options, you need to counter attack your opponent and split his attention as many ways as you can until you can produce tech units that will give you an advantage in a fight.
Lastly, if you are only on roach tech make lots of ravagers to quickly focus down lurkers even if you don’t have vision. Ravagers corrosive biles can hit lurkers at a good range and are one way to beat them on reduced tech due to the strength of corrosive bile and the immobility of the lurker.
Ultralisks are powerful units in the matchup and can fight against hydras and roaches quite well with the chitenous plating upgrade. You can defeat Ultras with broodlords or many lurkers, however be cautious of enemy vipers. Vipers can abduct both broodlords and lurkers and displaces many of your key units to fighting ultras and then target them down with roaches or hydralisks.
To defeat broodlords in ZvZ I recommend going up to Ultralisks and getting a lot of Hydras. Then get some vipers and you can abduct the broodlords and target them down with hydralisks while the ultras tank damage from the enemy and push into their roach/ravager/hydra army. Getting spire/corruptors is also an option that works well as long as you can produce more corruptors than them. Make sure you get up to broodlord tech if you go this direction since a ground based remax from your opponent can kill you after your corruptors kill their broodlords if you can’t morph broodlords of your own.