The file is just a generic Jupyter Notebook (JSON with .ipynb extension). The link to colab is just an iframe wrap to allow authenticated user to change it.
It can be hosted on any Jupyter platform (such as google colab, Azure notebook, your own Jupyter instance) or a Jupyter viewer platform if you do not want to run he code. But you will lose the capability of pushing the update back to the shared copy.
Here is an example of saving it to a github gist and viewed in nbviewer: