Looks good. If you want a few extra suggestions for further improvements:
The SMT caps on the ‘north’ side of the board have their connections coming out in line with the caps. It’s better to have them coming out to the side like you have down at the south side of the board. Lower overall loop area that way. Minor but worthwhile habit to get into.
For the layout, I’d have moved the 5V reg up closer to the 12V input. Not that it matters, but things like that can simplify your layout later by having fewer traces run around the place.
I’d add decoupling capacitors to every 3.3V connection as well, personally.
An interesting approach that you can consider is doing something to get the web of copper on the bottom side under the ESP32 header to spread between the pads. As it stands the return path for those signals has to go quite a way away. Given the somewhat crappy layout of the ESP32 dev board pinouts this isn’t an issue at all, it has to run ages to get to the GND or Vcc signals anyway, but it’s another good habit to get into and a good example of how you can play with some stuff on the layout to change those copper shapes. If it were me, I’d be shrinking the drill size on those holes as much as possible. From memory most of those pin headers are 0.63mm squares so a 0.8mm hole usually works. Then make the pad the correct size such that it works with your clearance rules and copper sliver settings to allow copper between. If you’re using 0.25mm clearances and want 0.2mm of copper there, you need 0.7mm of space between the pads. With 2.54mm clearance that’s 1.84mm so I’d round that to 1.8mm and be done with it. That’s a 0.5mm annular ring around the hole which isn’t too bad.
Another alternative there can also be to make the pads oval which can make them a little easier to solder while still keeping the relatively open web between them for copper to get between. Something like a 1.8mm x 2.2mm pad gives heaps of space to stab a soldering iron into.
Other than that, all looks good. I also usually sprinkle a ton of test points around, although you’ve kinda got that already with the GPIO headers.
You could also consider adding a SMC TVS after the fuse, just so if you end up hooking it up to 16V or higher accidentally it might clear the fuse.
As for other boards, that really comes down to if there are any other little things you can think of that might help. In the past I’ve made all sorts of little adapters that can be useful, although plenty of those are just available straight from aliexpress now. Things like breakout boards from USB connectors to pin headers, an adapter for a chip I want to play with, things that can replace wiring harnesses, etc. Or even just drilling templates, amusingly.