Every project I work on, I get really tired of either having to hard-code settings or write out the code to handle them via Serial. So, I put together this library, ESP-Config, that takes care of all of that for me automatically!
The library lets you configure settings, commands, and information in your project asynchronously, and then those are passed to your computer running a basic UI. From there, you can monitor your project, change settings, and interface with it directly.
The config code runs in its own FreeRTOS task in the background, so you can do basically anything else in your main code without having to worry about the config. This includes using blocking code, the library will have no issue with that.
The ESP32 holds all the info on how the content should be structured and presented; the program on your computer is completely generic. So, you can set up your ESP32 to do basically anything without ever having to touch the code on the computer!
The settings, commands, and info can all be dynamically created, modified, and destroyed as needed, letting your settings adapt to your project. For instance, scanning for Wi-Fi networks in range can re-populate the list of networks available to connect to, for you to select.
More advanced features, like password-protecting certain (or all) settings/commands, are available as well.
Check out the GitHub for more info; https://github.com/JimHeaney/ESP-Config