A lot of the tutorials I can find either (a) don't mention deployment, or (b) treat it like a final step at the end, rather than something that needs to be done on a semi-frequent basis.
You can use Vagrant or Docker[1] locally and then deploy somewhere easy like Render.com[2][3].
Since you're new to fullstack, you may have an easier time with Next.js (definitely use the TypeScript option) because then you're only learning/using a single language in a single repository for both frontend and backend.
1. https://blog.miguelgrinberg.com/post/how-to-dockerize-a-reac...
I don't agree that your dev environment should perfectly match whatever environment you're deploying to. It is good to do some things: same version of Python, same DB and same version, hopefully same OS, but that is rarely something you always have control over. You do, so sure, do the best you can here.
Rather, I would suggest you configure your development environment to best facilitate development, especially for learning. On some apps maybe you will need to have some kind of parity environment (mostly this is DB level stuff, then specific Python version, then OS version, in my experience problems rarely if ever come up that aren't in these categories) but it is rare, and you definitely do not need this for learning.
The easiest thing and best thing for learning may be to get a cheap VM and set up your own environment. If you do want to learn a tool like Docker, sure - but I don't suggest developing in Docker. It is more of a pain than it is worth.
For Flask, follow this tutorial. It's the absolute simplest I've come across: https://cloud.google.com/run/docs/quickstarts/build-and-depl...
For React, follow this tutorial: https://docs.aws.amazon.com/AmazonS3/latest/userguide/Hostin...
But instead of the files it tells you to create, just use create-react-app, and run "npm run build". Then take the directory it creates (hint: it's named "build"), and drop all it's contents in your s3 bucket
The easiest path for tiny dev teams