You’re spot on - in fact there’s more capability in the platform than you discovered, we’re just not talking about it a lot yet. If you look at the stackstorm lesson definition you’ll see some commented-out stuff:
# - ref: selfservice
# protocol: http
# path: "/"
# port: 5000
# - name: selfservice
# image: antidotelabs/selfservice-flask-app
# ports: 
Originally the goal was to show a web-based self-service portal in this lesson, but I broke it out so that I could introduce it into its own lesson. I’m hoping to have this done for the next release, so stay tuned for that. This functionality exists already - as you mention, we’re using a version of it to make jupyter notebooks work.
Also, stay tuned for https://antidoteproject.readthedocs.io/en/latest/platform/curricula/lessons/iframe.html - it’s a placeholder for now but will be updating that page with more details when we feel comfortable setting the masses loose on this feature.
Anyways, good eye - and hopefully this will be a useful feature for you.