{"id":99921,"date":"2022-07-23T04:33:00","date_gmt":"2022-07-23T04:33:00","guid":{"rendered":"https:\/\/randomnerdtutorials.com\/?p=99921"},"modified":"2025-04-09T20:16:29","modified_gmt":"2025-04-09T20:16:29","slug":"build-web-servers-esp32-esp8266-ebook","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/build-web-servers-esp32-esp8266-ebook\/","title":{"rendered":"Build Web Servers with ESP32 and ESP8266 eBook"},"content":{"rendered":"\n<center><h1>Build Web Servers with ESP32 and ESP8266 eBook (3rd Edition)<\/h1><\/center>\n\n\n\n<p class=\"has-text-align-center\">Build Web Server projects with the ESP32 and ESP8266 boards to control outputs and monitor sensors remotely. Learn HTML, CSS, JavaScript and client-server communication protocols.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"#sign-up\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"375\" height=\"500\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?resize=375%2C500&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Build Web Servers with ESP32 ESP8266 3rd Edition eBook\" class=\"wp-image-168473\" style=\"width:250px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?w=375&amp;quality=100&amp;strip=all&amp;ssl=1 375w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?resize=225%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 225w\" sizes=\"(max-width: 375px) 100vw, 375px\" \/><\/a><\/figure><\/div>\n\n\n<p class=\"has-text-align-center\"><a class=\"button rntyellow\" href=\"#sign-up\">GET THE EBOOK \u00bb<\/a><\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">About the eBook<\/h2>\n\n\n\n<p>This eBook covers HTML, CSS, JavaScript and client-server communication protocols so that you\u2019re able to build your own web server projects with the ESP32 and ESP8266 boards from scratch.<\/p>\n\n\n\n<p>The boards will be programmed using the Arduino \u201cprogramming language\u201d and we\u2019ll use Visual Studio Code + pioarduino IDE to program the boards. The eBook also provides instructions on how to proceed if you want to use Arduino IDE instead.<\/p>\n\n\n\n<p>The resources in this eBook are <strong>compatible with both ESP32 and ESP8266 NodeMCU boards<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/ESP32-ESP8266.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-99941\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/ESP32-ESP8266.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/ESP32-ESP8266.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>If you search the web, you\u2019ll find hundreds of HTML, CSS, and JavaScript tutorials. However, with this eBook we have a unique approach. The goal of this training is to teach you the basics of these technologies applied to web servers that you can build with the ESP32 or ESP8266 boards.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>HTML<\/strong> to define the content of web pages<\/li>\n\n\n\n<li><strong>CSS<\/strong> to style the web pages<\/li>\n\n\n\n<li><strong>JavaScript<\/strong> to program the behavior of web pages<\/li>\n\n\n\n<li><strong>Client-server communication protocols<\/strong> to interact between the browser and the ESP<\/li>\n<\/ul>\n\n\n\n<p>This eBook walks you through building web pages with practical examples that you can follow along and test in real time.<\/p>\n\n\n\n<p>If you want to control the ESP boards GPIOs or display sensor readings using a web server, this is the perfect chance for you to learn how to do it from scratch.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s inside the eBook?<\/h2>\n\n\n\n<p>The \u201cBuild Web Servers with the ESP32 and ESP8266\u201d is an eBook with 3 Modules and approximately 600 pages long:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module 1:<\/strong> Installing and Getting Started with VS Code + pioarduino IDE<\/li>\n\n\n\n<li><strong>Module 2:<\/strong> Learn HTML, CSS and JavaScript Basics (includes examples)<\/li>\n\n\n\n<li><strong>Module 3:<\/strong> Build ESP32 and ESP8266 web servers (17 step-by-step projects)<\/li>\n<\/ul>\n\n\n\n<p><strong>Here\u2019s what you\u2019ll have access when you get the eBook:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>eBook in PDF format (3 Modules, 600 pages, 17 web server projects)<\/li>\n\n\n\n<li>Source Code + Project Files + Schematic Diagrams<\/li>\n\n\n\n<li>Unlimited Free Updates (includes future eBook updates)<\/li>\n\n\n\n<li>Access to a private Forum to ask questions<\/li>\n\n\n\n<li>Exclusive access to our Facebook group community<\/li>\n<\/ul>\n\n\n\n<p><strong>What you\u2019ll learn<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install and use VS Code Text Editor to write your HTML, CSS and JavaScript files;<\/li>\n\n\n\n<li>Use VS Code with pioarduino IDE extension to program the ESP32 and ESP8266;<\/li>\n\n\n\n<li>Upload files to the ESP32 and ESP8266 filesystem using VS Code + pioarduino IDE;<\/li>\n\n\n\n<li>There are optional instructions on how to proceed if you want to use Arduino IDE;<\/li>\n\n\n\n<li>Create HTML, CSS and JavaScript files to build web pages to interface with the ESP32 and ESP8266 boards;<\/li>\n\n\n\n<li>Use different client-server communication protocols: HTTP polling, WebSocket and Server-Sent Events;<\/li>\n\n\n\n<li>Use different HTML elements to control outputs: buttons, toggle switches and sliders;<\/li>\n\n\n\n<li>Display sensor readings on the web pages in paragraphs, tables and charts;<\/li>\n\n\n\n<li>Add user input fields to save parameters;<\/li>\n\n\n\n<li>Create a WiFi Manager for your web servers;<\/li>\n\n\n\n<li>Add OTA (over-the-air) capabilities to your projects;<\/li>\n\n\n\n<li>Serve multiple web pages and create a navigation bar;<\/li>\n\n\n\n<li><span style=\"font-size: inherit; background-color: initial;\">And much more\u2026<\/span><\/li>\n<\/ul>\n\n\n\n<p><em>Continue reading for the complete Table of Contents&#8230;<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module #0: Introduction<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Module-0-500.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-99935\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Module-0-500.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Module-0-500.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>eBook introduction: get started with HTML, CSS, JavaScript and web servers with the ESP32 and ESP8266 boards. Read this section to learn how to follow the eBook, download all code and other useful resources.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module #1: Installing Tools<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Installing-Visual-Studio-Code-Thumbnail-500px.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-99939\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Installing-Visual-Studio-Code-Thumbnail-500px.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Installing-Visual-Studio-Code-Thumbnail-500px.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>Install all the tools required throughout the eBook: Visual Studio Code, pioarduino IDE Extension and Arduino IDE (not mandatory).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Installing VS Code + pioarduino IDE<\/li>\n\n\n\n<li>Installing Arduino IDE<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module #2: Getting Started with HTML, CSS and JavaScript<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Module-2-thumbnail-500px.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-99938\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Module-2-thumbnail-500px.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Module-2-thumbnail-500px.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>Learn HTML, CSS and JavaScript basics. HTML to define the content of web pages; CSS to specify the layout and style of web pages; JavaScript to program the behavior of web pages.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Getting Started with HTML<\/li>\n\n\n\n<li>Styling HTML Content with CSS<\/li>\n\n\n\n<li>Getting Started with JavaScript<\/li>\n<\/ul>\n\n\n\n<p>This is not meant to be a web development course. You\u2019ll learn the basics to build your own web pages and become familiar with most HTML, CSS and JavaScript terms. By the end of the eBook, if you need additional features for your projects, you\u2019ll have an idea on how to search for them.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module #3: ESP32 and ESP8266 Web Servers<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Module-3-thumbnail-500.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-99933\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Module-3-thumbnail-500.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Module-3-thumbnail-500.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>Learn how to build web server projects with the ESP32 and ESP8266 boards to control outputs and monitor sensors remotely. You will create web pages to control outputs (buttons, toggle switches, and slider) and display sensor readings (text, tables and charts).<\/p>\n\n\n\n<p>Add user input fields to save parameters, create a Wi-Fi Manager, add OTA (over-the-air) capabilities to your projects and serve multiple web pages with navigation bar.<\/p>\n\n\n\n<p>You\u2019ll also learn different client-server communication protocols: HTTP requests, WebSocket and Server-Sent Events (SSE).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Introducing Web Servers<\/li>\n\n\n\n<li>1.1 \u2013 Hello World Web Server<\/li>\n\n\n\n<li>1.2 \u2013 Hello World Web Server (Serve Files from Filesystem)<\/li>\n\n\n\n<li>1.3 \u2013 Hello World Web Server (Arduino IDE Software)<\/li>\n\n\n\n<li>2.1 \u2013 Web Server \u2013 Control Outputs (ON\/OFF Buttons)<\/li>\n\n\n\n<li>2.2 \u2013 Web Server \u2013 Control Multiple Outputs (Toggle Switches)<\/li>\n\n\n\n<li>2.3 \u2013 WebSocket Web Server: Control Outputs (ON\/OFF Buttons)<\/li>\n\n\n\n<li>2.4 \u2013 Web Server with Slider: Control LED Brightness (PWM)<\/li>\n\n\n\n<li>2.5 \u2013 WebSocket Web Server: Control Multiple Outputs<\/li>\n\n\n\n<li>3.1 \u2013 Web Server: Display Sensor Readings (SSE)<\/li>\n\n\n\n<li>3.2 \u2013 Web Server: Display Sensor Readings (Table)<\/li>\n\n\n\n<li>3.3 \u2013 Web Server: Display Sensor Readings (Charts)<\/li>\n\n\n\n<li>3.4 \u2013 Web Server: Display Sensor Readings from File (Charts)<\/li>\n\n\n\n<li>4.1 \u2013 Web Server with Input Fields (HTML Form)<\/li>\n\n\n\n<li>4.2 \u2013 HTTP Authentication: Password Protected Web Server<\/li>\n\n\n\n<li>4.3 \u2013 Wi-Fi Manager for Web Server<\/li>\n\n\n\n<li>4.4 \u2013 Multiple Web Pages (with Navigation Bar)<\/li>\n\n\n\n<li>4.5 \u2013 Over-the-air (OTA) Updates for Web Server<\/li>\n<\/ul>\n\n\n\n<p>We provide all the needed files to build the project examples (for the <strong>ESP32 and ESP8266 boards<\/strong>).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Extra Units &#8211; Useful Resources<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Setting the ESP32 and ESP8266 as an Access Point<\/li>\n\n\n\n<li>ESP32\/ESP8266 Static IP Address<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">What do you need to follow the eBook?<\/h3>\n\n\n\n<p>To follow the projects in the eBook you can either use an ESP32 or ESP8266 board. We usually use the <em>ESP32 DEVKIT DOIT<\/em> board, but you can use any other ESP32 board.<\/p>\n\n\n\n<p>As for the ESP8266, we use the <em>ESP8266-12E NodeMCU Kit<\/em>, but once again you are free to use any other ESP8266 board.<\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"421\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/08\/esp32-vs-esp8266-devlopment-boards.jpg?resize=750%2C421&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 vs ESP8266 Development Boards\" class=\"wp-image-88121\" style=\"width:575px;height:auto\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/08\/esp32-vs-esp8266-devlopment-boards.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/08\/esp32-vs-esp8266-devlopment-boards.jpg?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>The projects throughout this eBook don\u2019t require an extensive list of parts. You just need some LEDs and resistors, jumper wires, a breadboard and a BME280 sensor. Then, you should be able to modify the projects to control other outputs and use any other sensors or inputs.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Programming Environment<\/h3>\n\n\n\n<p>The ESP32 and ESP8266 boards are programmed using the Arduino \u201cprogramming language\u201d. To program the boards we\u2019ll use Visual Studio Code with the pioarduino IDE extension. Visual Studio Code is free and runs on Windows, Linux and Mac OS X operating systems.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Installing-Visual-Studio-Code-Thumbnail-500px.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-99939\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Installing-Visual-Studio-Code-Thumbnail-500px.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Installing-Visual-Studio-Code-Thumbnail-500px.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>We\u2019ll also use Visual Studio Code to write the HTML, CSS and JavaScript files,.<\/p>\n\n\n\n<p><strong>Why VS Code + pioarduino IDE?<\/strong><\/p>\n\n\n\n<p>The Arduino IDE works great for small applications. However, for advanced projects with more than 200 lines of code, multiple files, and other advanced features like auto completion and error checking, VS Code with the pioarduino IDE extension is the best alternative.<\/p>\n\n\n\n<p>Additionally, it is easier to manage libraries and you won\u2019t have trouble with missing dependencies which happens often when using Arduino IDE.<\/p>\n\n\n\n<p>However, nothing stops you from following the projects using Arduino IDE. We include instructions on how to proceed if you want to use Arduino IDE instead. If you choose this option, you need to have another program, a Text Editor, to write the HTML, CSS and JavaScript files.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Who is this eBook for?<\/h3>\n\n\n\n<p>This eBook is for those who want to learn how to build their own web servers with the ESP32 and ESP8266 from scratch. This includes building the web page using HTML, CSS and JavaScript as well as programming the server (ESP board) using the Arduino \u201cprogramming language\u201d.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Invitation to Join our Private Forum!<\/h2>\n\n\n\n<p>This eBook comes with an opportunity to join our private Forum of like-minded people where you can ask questions about the eBook or other related subjects. You&#8217;ll get direct help from Rui and Sara or from other active members of the community.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"599\" height=\"423\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2018\/03\/forum-questions-and-answers.png?resize=599%2C423&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-54929\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2018\/03\/forum-questions-and-answers.png?w=599&amp;quality=100&amp;strip=all&amp;ssl=1 599w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2018\/03\/forum-questions-and-answers.png?resize=300%2C212&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 599px) 100vw, 599px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"sign-up\">Download the eBook<\/h2>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list bulletnospace\">\n<li>Released April 1, 2025<\/li>\n\n\n\n<li>PDF eBook with 600 pages<\/li>\n\n\n\n<li>Source code and all files: HTML, CSS and JavaScript<\/li>\n\n\n\n<li>Step-by-step instructions<\/li>\n\n\n\n<li>Code explanation<\/li>\n\n\n\n<li><span style=\"font-size: inherit; background-color: initial;\">Unlimited Updates<\/span><\/li>\n\n\n\n<li>Exclusive access to a Private Forum<\/li>\n\n\n\n<li><span style=\"font-size: inherit; background-color: initial;\">English language<\/span><\/li>\n\n\n\n<li>Created by Rui Santos and Sara Santos<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=74190\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"375\" height=\"500\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?resize=375%2C500&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Build Web Servers with ESP32 ESP8266 3rd Edition eBook\" class=\"wp-image-168473\" style=\"width:231px;height:auto\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?w=375&amp;quality=100&amp;strip=all&amp;ssl=1 375w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?resize=225%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 225w\" sizes=\"(max-width: 375px) 100vw, 375px\" \/><\/a><\/figure><\/div><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><a class=\"button rntyellow\" href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=74190\">GET THE EBOOK | $35 USD \u00bb<\/a><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong><a href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=74190\" title=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=74190\">Click here to get the eBook | $35 USD<\/a><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<p><strong>Note:<\/strong>&nbsp;after your purchase,&nbsp;you receive an email with a username and password that you use to access the members area and download the PDF eBook.<\/p>\n\n\n\n<p>Have questions?&nbsp;Email me at <a href=\"https:\/\/randomnerdtutorials.com\/support\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/randomnerdtutorials.com\/support<\/a>&nbsp;anytime for any reason.<\/p>\n\n\n\n<p>You won\u2019t regret it. My 60 day money back guarantee backs up every word in this message. Proceed with confidence.&nbsp;See you inside,<\/p>\n\n\n\n<p>-Rui Santos<\/p>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"81987\" class=\"elementor elementor-81987\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8061b91 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8061b91\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-6e373e8\" data-id=\"6e373e8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d02f327 elementor-widget elementor-widget-image\" data-id=\"d02f327\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"134\" height=\"133\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/03\/money-back-logo.png?resize=134%2C133&amp;quality=100&amp;strip=all&amp;ssl=1\" class=\"attachment-thumbnail size-thumbnail wp-image-81988\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/03\/money-back-logo.png?w=134&amp;quality=100&amp;strip=all&amp;ssl=1 134w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/03\/money-back-logo.png?resize=80%2C80&amp;quality=100&amp;strip=all&amp;ssl=1 80w\" sizes=\"(max-width: 134px) 100vw, 134px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-66 elementor-top-column elementor-element elementor-element-a11ade3\" data-id=\"a11ade3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-77abfc0 elementor-widget elementor-widget-heading\" data-id=\"77abfc0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Backed by a 60 day 100% money-back guarantee<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e08d4e6 elementor-widget elementor-widget-text-editor\" data-id=\"e08d4e6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>If you don\u2019t like the course, I don\u2019t want your money. Seriously, that\u2019s why I offer a 60 days money back guarantee. <a href=\"https:\/\/randomnerdtutorials.com\/support\" target=\"_blank\" rel=\"noopener\">Email me here<\/a> and I will promptly refund all your money. No questions, no hassles \u2013 it\u2019s that simple.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Frequently Asked Questions<\/h2>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"99960\" class=\"elementor elementor-99960\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ffdbee2 elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ffdbee2\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4da55579\" data-id=\"4da55579\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6eef7e00 elementor-widget elementor-widget-toggle\" data-id=\"6eef7e00\" data-element_type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1861\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-1861\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Are all projects compatible with the ESP32 and ESP8266?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1861\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-1861\"><p><span style=\"font-weight: 400;\">Each project provides the code and all the necessary resources for both the ESP32 and ESP8266 boards. So, you can follow the projects using either one.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1862\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"button\" aria-controls=\"elementor-tab-content-1862\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Can I use Arduino IDE? (Instead of VS Code)<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1862\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"region\" aria-labelledby=\"elementor-tab-title-1862\"><span style=\"font-weight: 400;\"><strong>Yes<\/strong>. We recommend using VS Code with pioarduino IDE extension, but you can use Arduino IDE. We provide all the necessary instructions if you want to stick with Arduino IDE.<\/span><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1863\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"button\" aria-controls=\"elementor-tab-content-1863\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Do I get free future updates?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1863\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"region\" aria-labelledby=\"elementor-tab-title-1863\"><p>Yes, I often update all my eBooks, so everyone who purchases gets free lifetime updates. You\u2019ll also have access to future content that we\u2019ll add to the eBook.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1864\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"button\" aria-controls=\"elementor-tab-content-1864\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">What if I don\u2019t like it?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1864\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"region\" aria-labelledby=\"elementor-tab-title-1864\"><p>Well, if you don\u2019t like it, I don\u2019t want your money. Seriously, that\u2019s why I offer a 60 days money back guarantee.\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/support\" target=\"_blank\" rel=\"noopener noreferrer\">Email me here<\/a>\u00a0and I will promptly refund all your money. No questions, no hassles \u2013 it\u2019s that simple!<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1865\" class=\"elementor-tab-title\" data-tab=\"5\" role=\"button\" aria-controls=\"elementor-tab-content-1865\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">What language is used in the eBook?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1865\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"region\" aria-labelledby=\"elementor-tab-title-1865\"><p>The eBook is only available in English language.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1866\" class=\"elementor-tab-title\" data-tab=\"6\" role=\"button\" aria-controls=\"elementor-tab-content-1866\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Who is this eBook for?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1866\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"6\" role=\"region\" aria-labelledby=\"elementor-tab-title-1866\"><p><span style=\"font-weight: 400;\">This eBook is for those who want to learn how to build their own web servers with the ESP32 and ESP8266 from scratch. This includes building the web page using HTML, CSS and JavaScript as well as programming the server (ESP board) using the Arduino \u201cprogramming language\u201d.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1867\" class=\"elementor-tab-title\" data-tab=\"7\" role=\"button\" aria-controls=\"elementor-tab-content-1867\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Have a question?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1867\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"7\" role=\"region\" aria-labelledby=\"elementor-tab-title-1867\"><p>If you still have questions after reading this page please\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/support\" target=\"_blank\" rel=\"noopener noreferrer\">email me here<\/a>. I\u2019ll do my best to answer your questions.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Meet the Authors<\/h2>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"99969\" class=\"elementor elementor-99969\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-528f6c2b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"528f6c2b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-77910d1b\" data-id=\"77910d1b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6ea93987 elementor-widget elementor-widget-testimonial\" data-id=\"6ea93987\" data-element_type=\"widget\" data-widget_type=\"testimonial.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial-wrapper\">\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-testimonial-meta elementor-has-image elementor-testimonial-image-position-aside\">\n\t\t\t\t<div class=\"elementor-testimonial-meta-inner\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-image\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"267\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/M_Photo_Rui_Santos-1.jpg?fit=300%2C267&amp;quality=100&amp;strip=all&amp;ssl=1\" class=\"attachment-full size-full wp-image-99968\" alt=\"\" \/>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-details\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-name\">Rui Santos<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-job\">RandomNerdTutorials.com<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f81c1b2 elementor-widget elementor-widget-text-editor\" data-id=\"7f81c1b2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Hey there, <strong>I\u2019m Rui Santos<\/strong>, founder of the Random Nerd Tutorials blog. For the last couple of months we\u2019ve been working on this new eBook dedicated to building web servers for the ESP32 and ESP8266. This eBook is our complete guide to take the most out of the ESP boards to control outputs and monitor sensors remotely. If you like my work, you&#8217;ll certainly like &#8220;Build Web Servers with ESP32 and ESP8266&#8221; eBook.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"99972\" class=\"elementor elementor-99972\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6e1ae012 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6e1ae012\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-322114fe\" data-id=\"322114fe\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-485e2deb elementor-widget elementor-widget-testimonial\" data-id=\"485e2deb\" data-element_type=\"widget\" data-widget_type=\"testimonial.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial-wrapper\">\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-testimonial-meta elementor-has-image elementor-testimonial-image-position-aside\">\n\t\t\t\t<div class=\"elementor-testimonial-meta-inner\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-image\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"497\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Sara-photo-7.jpg?fit=500%2C497&amp;quality=100&amp;strip=all&amp;ssl=1\" class=\"attachment-full size-full wp-image-99971\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Sara-photo-7.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Sara-photo-7.jpg?resize=300%2C298&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/10\/Sara-photo-7.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-details\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-name\">Sara Santos<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-job\">RandomNerdTutorials.com<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e063b84 elementor-widget elementor-widget-text-editor\" data-id=\"5e063b84\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Hi. <b>I\u2019m Sara Santos<\/b> and I work at the RNT blog with Rui. We\u2019ve created the \u201cBuild Web Servers with ESP32 and ESP8266\u201d eBook to provide an easy way to get started with HTML, CSS and JavaScript. This eBook allows you to build complex projects with real world applications. You&#8217;ll learn about web programming and client-server communication protocols. I hope you&#8217;ll like it.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">See what others are saying<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Thank you Rui. Anyone wondering whether you bring value can rely on my word. I&#8217;ve purchased hundreds of books over a 45 year career as engineer and entrepreneur. NONE of these books have approached your excellent method of teaching a subject. You have a rare gift as a teacher. Glad to have made the purchases.<\/p>\n\n\n\n<p><strong>Paul<\/strong><\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Hi, just wanted to pass on my tha<em>n<\/em>ks. I have bought 2 of your courses and looked at and use some of your tutorials. What I want to say is THANKS for all your projects. All of your projects I used have actually worked and I have learnt a lot.<\/p>\n\n\n\n<p><strong>Peter Drew<\/strong>, from UK<\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Your tutorials are easy to read, full of detail, filled with useful tips and an excellent basis and lookup for my own projects. Well done Rui and co. Keep up the good work.<\/p>\n\n\n\n<p><strong>David Williams<\/strong><\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Thanks! I would personally like to thank you for the group courses. I find them very educational and entertaining. The courses are well worth the money. Thank you both for all the hard work. Keep it up.<\/p>\n\n\n\n<p><strong>Joe Statzer<\/strong>, from US<\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Hi, I love your eBooks and courses &#8211; everything has worked perfectly. I have lots of new ideas. Thanks!<\/p>\n\n\n\n<p><strong>John Benson<\/strong><\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>After struggling for days with various other ESP8266 projects, your server worked &#8220;right out of the box&#8221; to my amazement (and that of my skeptical wife). Great boost of confidence. Thanks for the very clear and thorough, yet easy to follow instructions and illustrations.<\/p>\n\n\n\n<p><strong>Bruce<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-text-align-center\"><strong>AS SEEN ON&#8230;<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"120\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2015\/11\/FEATURED-LOGOS.png?resize=800%2C120&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"FEATURED LOGOS\" class=\"wp-image-13911\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2015\/11\/FEATURED-LOGOS.png?w=800&amp;quality=100&amp;strip=all&amp;ssl=1 800w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2015\/11\/FEATURED-LOGOS.png?resize=300%2C45&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=74190\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"375\" height=\"500\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?resize=375%2C500&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Build Web Servers with ESP32 ESP8266 3rd Edition eBook\" class=\"wp-image-168473\" style=\"width:230px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?w=375&amp;quality=100&amp;strip=all&amp;ssl=1 375w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?resize=225%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 225w\" sizes=\"(max-width: 375px) 100vw, 375px\" \/><\/a><\/figure><\/div>\n\n\n<p class=\"has-text-align-center\"><a class=\"button rntyellow\" href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=74190\">GET THE EBOOK | $35 USD \u00bb<\/a><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong><a href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=74190\" title=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=74190\">Click here to get the eBook | $35 USD<\/a><\/strong><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Build Web Servers with ESP32 and ESP8266 eBook (3rd Edition) Build Web Server projects with the ESP32 and ESP8266 boards to control outputs and monitor sensors remotely. Learn HTML, CSS, &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Build Web Servers with ESP32 and ESP8266 eBook\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/build-web-servers-esp32-esp8266-ebook\/#more-99921\" aria-label=\"Read more about Build Web Servers with ESP32 and ESP8266 eBook\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":168472,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[266,224,242,314],"tags":[],"class_list":["post-99921","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-no-ads","category-premium","category-premium-project","category-product"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-featured-image.jpg?fit=1920%2C1080&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/99921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=99921"}],"version-history":[{"count":30,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/99921\/revisions"}],"predecessor-version":[{"id":168785,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/99921\/revisions\/168785"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/168472"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=99921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=99921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=99921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}