diff --git a/.gitignore b/.gitignore
index 8fa788c6..9a9d7b4c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,5 @@ platformio-user.ini
/sdkconfig
/.tmp
/*.zip
+node_modules
+/gui/dist
\ No newline at end of file
diff --git a/ui/svelte/.gitignore b/ui/svelte/.gitignore
new file mode 100644
index 00000000..a547bf36
--- /dev/null
+++ b/ui/svelte/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/ui/svelte/index.html b/ui/svelte/index.html
new file mode 100644
index 00000000..4a138bae
--- /dev/null
+++ b/ui/svelte/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
Real time calculation
+
+
+
Hour
+
{data && data.h && data.h.u ? data.h.u.toFixed(2) : '-'} kWh
+
Day
+
{data && data.d && data.d.u ? data.d.u.toFixed(1) : '-'} kWh
+
Month
+
{data && data.m && data.m.u ? data.m.u.toFixed(0) : '-'} kWh
+
+ {#if currency}
+
+
Hour
+
{data && data.h && data.h.c ? data.h.c.toFixed(2) : '-'} {currency}
+
Day
+
{data && data.d && data.d.c ? data.d.c.toFixed(1) : '-'} {currency}
+
Month
+
{data && data.m && data.m.c ? data.m.c.toFixed(0) : '-'} {currency}
+
+ {/if}
+
+
Max
+
+ {data && data.x ? data.x.toFixed(1) : '-'} / {data && data.t ? data.t.toFixed(1) : '-'} kWh
+
+
+
\ No newline at end of file
diff --git a/ui/svelte/src/lib/AmpPlot.svelte b/ui/svelte/src/lib/AmpPlot.svelte
new file mode 100644
index 00000000..ca495f3e
--- /dev/null
+++ b/ui/svelte/src/lib/AmpPlot.svelte
@@ -0,0 +1,64 @@
+
+
+
Reactive
+
+
+
Instant in
+
{typeof importInstant !== 'undefined' ? importInstant.toFixed(0) : '-'} VAr
+
Instant out
+
{typeof exportInstant !== 'undefined' ? exportInstant.toFixed(0) : '-'} VAr
+
+
+
+
Total in
+
{typeof importTotal !== 'undefined' ? importTotal.toFixed(1) : '-'} kVArh
+
Total out
+
{typeof exportTotal !== 'undefined' ? exportTotal.toFixed(1) : '-'} kVArh
+
+
\ No newline at end of file
diff --git a/ui/svelte/src/lib/TemperaturePlot.svelte b/ui/svelte/src/lib/TemperaturePlot.svelte
new file mode 100644
index 00000000..7ce8c409
--- /dev/null
+++ b/ui/svelte/src/lib/TemperaturePlot.svelte
@@ -0,0 +1,72 @@
+
+