WiFiManager
WiFi Connection manager with web captive portal
...If this is unsuccessful (or no previous network saved) it moves the ESP into Access Point mode and spins up a DNS and WebServer (default ip 192.168.4.1). Using any wifi enabled device with a browser (computer, phone, tablet) connect to the newly created Access Point. Because of the Captive Portal and the DNS server you will either get a 'Join to network' type of popup or get any domain you try to access redirected to the configuration portal. ESP will try to connect. If successful, it relinquishes control back to your app. If not, reconnect to AP and reconfigure.