diff --git a/src/Components/benchmarkapps/BlazingPizza.Server/Model/Point.cs b/src/Components/benchmarkapps/BlazingPizza.Server/Model/Point.cs
new file mode 100644
index 0000000000..6c8a611ccb
--- /dev/null
+++ b/src/Components/benchmarkapps/BlazingPizza.Server/Model/Point.cs
@@ -0,0 +1,9 @@
+namespace BlazingPizza.Server
+{
+ public class Point
+ {
+ public double X { get; set; }
+
+ public double Y { get; set; }
+ }
+}
diff --git a/src/Components/benchmarkapps/BlazingPizza.Server/Pages/Map.razor b/src/Components/benchmarkapps/BlazingPizza.Server/Pages/Map.razor
new file mode 100644
index 0000000000..3aef1216a1
--- /dev/null
+++ b/src/Components/benchmarkapps/BlazingPizza.Server/Pages/Map.razor
@@ -0,0 +1,33 @@
+@page "/orderstatus"
+@using System.Threading
+@using Microsoft.JSInterop
+@inject IJSRuntime JSRuntime
+@implements IDisposable
+
+
+
Your order is on it's way. Here is it's current location: (@locX, @locY)
+
+@functions {
+ private int locX;
+ private int locY;
+ private Random random = new Random();
+ private Timer timer;
+ private string locString;
+
+ protected override void OnInitialized()
+ {
+ timer = new Timer(_ =>
+ {
+ locX = random.Next(1000);
+ locY = random.Next(1000);
+ locString = $"{locX},{locY}";
+
+ InvokeAsync(() => StateHasChanged());
+ }, default, TimeSpan.Zero, TimeSpan.FromSeconds(2));
+ }
+
+ public void Dispose()
+ {
+ timer.Dispose();
+ }
+}
diff --git a/src/Components/benchmarkapps/README.md b/src/Components/benchmarkapps/README.md
index 645e196a9a..b9c4fe4d52 100644
--- a/src/Components/benchmarkapps/README.md
+++ b/src/Components/benchmarkapps/README.md
@@ -1,4 +1,4 @@
-## Blazor benchamrks
+## Blazor benchmarks
These projects assist in Benchmarking Components.
See https://github.com/aspnet/Benchmarks#benchmarks for usage guidance on using the Benchmarking tool with your application