Web server for Arduino-compatible boards, macOS, Windows, and Linux, over Wi-Fi, Ethernet, Serial, Bluetooth, or LoRa.
A portable HTTP server library for Arduino, with an API inspired by Express.js. Serve a website, app or API right from your device.
#include <aWOT.h>
App app;
void hello(Request& req, Response& res) {
res.print("Hello from Arduino!");
}
// Register once in setup().
app.get("/", hello);
// Process a connected client in loop().
app.process(&client);The complete sketch adds your Wi-Fi or Ethernet connection.
Small board. Familiar building blocks.
Bring the web to your device with routes, streams, and a frontend that runs in the browser.
Straightforward HTTP
Define routes with App, read requests as Arduino Streams, and write responses with familiar Print methods.
Your choice of transport
Use the same handlers with Arduino Client transports, including Wi-Fi and Ethernet, or with a Stream such as Serial.
Memory you can configure
Choose request and output buffers for your board. Start with ESP32 Wi-Fi or Uno Ethernet, then tune the settings.
More than a request
Compose middleware, serve a browser interface, and add live updates with WebSockets or server-sent events.
From the first route to a full web app
Pick a starting point and keep building.
01 · Get started
Say hello from your board →
Install aWOT through Arduino Library Manager and run a complete Wi-Fi or Ethernet sketch.
02 · Build an interface
Control an LED from React →
Connect a Vite and TypeScript frontend to an ESP32, then serve the app from the device.
03 · Go live
Keep the browser connected →
Explore WebSockets and server-sent events for messages, events, and streaming updates.
Already using aWOT 3?
Bring your routes and middleware to the current API.
Read the migration guide