When working on web-apps I'll usually run a development server on my local machine at localhost / 127.0.0.1, and if I need to show a colleague something I will check my ip address with shell command
ip a and then run on that address instead.
Recently I found out that I could also make work in progress accessible to my colleagues by running the dev server on 0.0.0.0.
What is actually happening here, technically? What are the differences between using 0.0.0.0 vs using my ip address?