\ No newline at end of file
diff --git a/frontend/components/Badge.jinja b/frontend/components/Badge.jinja
new file mode 100644
index 0000000..3271b0d
--- /dev/null
+++ b/frontend/components/Badge.jinja
@@ -0,0 +1,2 @@
+{#def label, variant="neutral" #}
+{{ label }}
\ No newline at end of file
diff --git a/frontend/components/Button.jinja b/frontend/components/Button.jinja
new file mode 100644
index 0000000..e650b6c
--- /dev/null
+++ b/frontend/components/Button.jinja
@@ -0,0 +1,16 @@
+{#def label, variant="primary", type="button", disabled=False,
+ hx_post="", hx_get="", hx_target="", hx_swap="innerHTML",
+ hx_indicator="", hx_encoding="" #}
+
\ No newline at end of file
diff --git a/frontend/components/Card.jinja b/frontend/components/Card.jinja
new file mode 100644
index 0000000..fc72f2b
--- /dev/null
+++ b/frontend/components/Card.jinja
@@ -0,0 +1,9 @@
+{#def title="", class_extra="" #}
+
+
+ {% if title %}
+
{{ title }}
+ {% endif %}
+ {{ content }}
+
+
\ No newline at end of file
diff --git a/frontend/components/CloudRow.jinja b/frontend/components/CloudRow.jinja
new file mode 100644
index 0000000..4e14029
--- /dev/null
+++ b/frontend/components/CloudRow.jinja
@@ -0,0 +1,37 @@
+{#def pc #}
+