App building advice: Observable vs Mapbox+React

Hello DataViz community! I need an advice.

I want to build a responsive mobile-first SPA, based on maps, but actually UX would just start with a simple map and then on top of dimmed map some interesting data viz would appear.

Recently I’m exploring tools for that, found Observable and fell in love with it :heart_eyes:
I noticed Observable works with various kinds of maps and map-like concepts like just rendering TopoJSONs (for geo features) and GeoJSONs (for data features).

I also finally got what is Mapbox, it’s power, and that it can do some cool viz on top of a map too. But it’s not free.

In my app I will need only countries’ borders, counties (or similar concept), cities’ approx. borders, main roads, and labels. No buildings. User should just feel what city or region he/she is looking into. So I assume I don’t need Mapbox and instead I can visualize this using TopoJSONs. Is that right?

I know some JS and I love Observable, so I would rather learn D3 and create everything right here. Instead of learning React and Mapbox API. I know they are mainstream and very reliable but still, I want to create MVP as easy as possible.

So my question here - is it possible to create high performance app (SPA) using Observable?
BTW I was seeking for an example of something like transitions between views - which is very common for an app - and didn’t find. However I found something similar to routing, so it’s seems not a problem.

And hopefully last question: if I end up using Mapbox, can I use it inside Observable (without loosing any performance, caching etc) and build my app on top of it?

Thanks in advance!
Sergii.