Codespaces works this way:
You add a .devcontainer folder to a project on GitHub, that project works automagically with Codespaces. That's it. A RabbitMQ user then just clones rabbitmq-docs, and can play with RabbitMQ right away.
What does automagically means, and what's needed to support there: we need a container that includes RabbitMQ, like the one you see in the PR, plus any language we might want to support right away (like JavaScript, ruby, etc).
At the moment Codespaces supports project level .devcontainers, but in their roadmap they want to have support for folder level devcontainers. What does this mean?
Right now having support for many languages means having a Dockerfile that runs RabbitMQ + javascript + any other lang.
In the future we could have one Dockerfile per language.
BTW, for RabbitMQ this is "free" so to speak. There is no cost on having a .devcontainer folder in a repo, besides maintenance of the Dockerfile of course. This also works with Visual Studio Code on the desktop, so this could also help standardizing dev environments for people contributing to RabbitMQ for example.
Does it make sense?
Regards,
Alvaro