I think this blog post has a great description of the "Modern C" niche Zig fills: https://vfoley.xyz/hare/. I tend to think of Zig in this way. If you found yourself reaching for C, you could instead reach for Zig. You'd get optionals instead of null pointers, comptime instead of macros, a real facility for handling errors, etc. It's like C but with some of the sharp edges sanded off.