diff --git a/examples/Cargo.toml b/examples/Cargo.toml
index 78f920b..d0f5da1 100644
--- a/examples/Cargo.toml
+++ b/examples/Cargo.toml
@@ -1,6 +1,7 @@
[workspace]
members = [
"application",
+ "front-page",
"getting-started",
"server",
"url-dispatch",
diff --git a/examples/front-page/Cargo.toml b/examples/front-page/Cargo.toml
new file mode 100644
index 0000000..8365d5a
--- /dev/null
+++ b/examples/front-page/Cargo.toml
@@ -0,0 +1,8 @@
+[workspace]
+members = [
+ "main-example",
+ "flexible-responders",
+ "easy-form-handling",
+ "request-routing",
+ "powerful-extractors",
+]
diff --git a/examples/front-page/easy-form-handling/Cargo.toml b/examples/front-page/easy-form-handling/Cargo.toml
new file mode 100644
index 0000000..07f6a66
--- /dev/null
+++ b/examples/front-page/easy-form-handling/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "easy-form-handling"
+version = "0.1.0"
+edition = "2018"
+
+[dependencies]
+actix-web = "1.0"
+serde = "1.0"
diff --git a/examples/front-page/easy-form-handling/src/main.rs b/examples/front-page/easy-form-handling/src/main.rs
new file mode 100644
index 0000000..117ae99
--- /dev/null
+++ b/examples/front-page/easy-form-handling/src/main.rs
@@ -0,0 +1,35 @@
+//
+use actix_web::{web, App, HttpResponse, HttpServer};
+use serde::Deserialize;
+
+#[derive(Deserialize)]
+struct Register {
+ username: String,
+ country: String,
+}
+
+fn index() -> actix_web::Result {
+ Ok(HttpResponse::Ok()
+ .content_type("text/html; charset=utf-8")
+ .body(include_str!("../static/form.html")))
+}
+
+fn register(params: web::Form) -> actix_web::Result {
+ Ok(HttpResponse::Ok().body(format!(
+ "Hello {} from {}!",
+ params.username, params.country
+ )))
+}
+
+fn main() {
+ HttpServer::new(|| {
+ App::new()
+ .route("/", web::get().to(index))
+ .route("/register", web::post().to(register))
+ })
+ .bind("127.0.0.1:8000")
+ .expect("Can not bind to port 8000")
+ .run()
+ .unwrap();
+}
+//
diff --git a/examples/front-page/easy-form-handling/static/form.html b/examples/front-page/easy-form-handling/static/form.html
new file mode 100644
index 0000000..5800bde
--- /dev/null
+++ b/examples/front-page/easy-form-handling/static/form.html
@@ -0,0 +1,30 @@
+
+
+
+
+ Forms
+
+
+
+ Will hit handle_post_1
+
+
+
+
+
+
+
diff --git a/examples/front-page/flexible-responders/Cargo.toml b/examples/front-page/flexible-responders/Cargo.toml
new file mode 100644
index 0000000..ed8f468
--- /dev/null
+++ b/examples/front-page/flexible-responders/Cargo.toml
@@ -0,0 +1,6 @@
+[package]
+name = "flexible-responders"
+version = "0.1.0"
+edition = "2018"
+
+[dependencies]
diff --git a/examples/front-page/flexible-responders/src/main.rs b/examples/front-page/flexible-responders/src/main.rs
new file mode 100644
index 0000000..6846fcf
--- /dev/null
+++ b/examples/front-page/flexible-responders/src/main.rs
@@ -0,0 +1,5 @@
+//
+fn main() {
+ println!("Hello, world!");
+}
+//
diff --git a/examples/front-page/main-example/Cargo.toml b/examples/front-page/main-example/Cargo.toml
new file mode 100644
index 0000000..96d110d
--- /dev/null
+++ b/examples/front-page/main-example/Cargo.toml
@@ -0,0 +1,7 @@
+[package]
+name = "front-page"
+version = "0.1.0"
+edition = "2018"
+
+[dependencies]
+actix-web = "1.0"
diff --git a/examples/front-page/main-example/src/main.rs b/examples/front-page/main-example/src/main.rs
new file mode 100644
index 0000000..4184006
--- /dev/null
+++ b/examples/front-page/main-example/src/main.rs
@@ -0,0 +1,20 @@
+//
+use actix_web::{web, App, HttpRequest, HttpResponse, HttpServer};
+
+fn greet(req: HttpRequest) -> HttpResponse {
+ let name = req.match_info().get("name").unwrap_or("World");
+ HttpResponse::Ok().body(format!("Hello {}!", &name))
+}
+
+fn main() {
+ HttpServer::new(|| {
+ App::new()
+ .service(web::resource("/").to(greet))
+ .service(web::resource("/{name}").to(greet))
+ })
+ .bind("127.0.0.1:8000")
+ .expect("Can not bind to port 8000")
+ .run()
+ .unwrap();
+}
+//
diff --git a/examples/front-page/powerful-extractors/Cargo.toml b/examples/front-page/powerful-extractors/Cargo.toml
new file mode 100644
index 0000000..3547bfc
--- /dev/null
+++ b/examples/front-page/powerful-extractors/Cargo.toml
@@ -0,0 +1,7 @@
+[package]
+name = "powerful-extractors"
+version = "0.1.0"
+edition = "2018"
+
+[dependencies]
+actix-web = "1.0"
diff --git a/examples/front-page/powerful-extractors/src/main.rs b/examples/front-page/powerful-extractors/src/main.rs
new file mode 100644
index 0000000..e7a11a9
--- /dev/null
+++ b/examples/front-page/powerful-extractors/src/main.rs
@@ -0,0 +1,3 @@
+fn main() {
+ println!("Hello, world!");
+}
diff --git a/examples/front-page/request-routing/Cargo.toml b/examples/front-page/request-routing/Cargo.toml
new file mode 100644
index 0000000..126c337
--- /dev/null
+++ b/examples/front-page/request-routing/Cargo.toml
@@ -0,0 +1,7 @@
+[package]
+name = "request-routing"
+version = "0.1.0"
+edition = "2018"
+
+[dependencies]
+actix-web = "1.0"
diff --git a/examples/front-page/request-routing/src/main.rs b/examples/front-page/request-routing/src/main.rs
new file mode 100644
index 0000000..411c9a9
--- /dev/null
+++ b/examples/front-page/request-routing/src/main.rs
@@ -0,0 +1,23 @@
+//
+use actix_web::{web, App, HttpRequest, HttpResponse, HttpServer};
+
+fn index(_req: HttpRequest) -> HttpResponse {
+ HttpResponse::Ok().body("Hello from the index page.")
+}
+
+fn hello(path: web::Path) -> HttpResponse {
+ HttpResponse::Ok().body(format!("Hello {}!", &path))
+}
+
+fn main() {
+ HttpServer::new(|| {
+ App::new()
+ .service(web::resource("/").to(index))
+ .service(web::resource("/{name}").to(hello))
+ })
+ .bind("127.0.0.1:8000")
+ .unwrap()
+ .run()
+ .unwrap();
+}
+//