diff --git a/ckanext/digitizationknowledge/templates/digitizationknowledge/snippets/group_add_button.html b/ckanext/digitizationknowledge/templates/digitizationknowledge/snippets/group_add_button.html
new file mode 100644
index 0000000..8ed17b8
--- /dev/null
+++ b/ckanext/digitizationknowledge/templates/digitizationknowledge/snippets/group_add_button.html
@@ -0,0 +1,146 @@
+{#
+Group Add Button - Shows add/status button for a single dataset.
+#}
+
+{% set dataset_id = dataset_id or '' %}
+
+
+
+
+
+ {# No group selected yet #}
+
+
+ --
+
+
+
+ {# Loading #}
+
+
+
+
+
+
+ {# Already in group #}
+
+
+ In group
+
+
+
+ {# Not in group - show add button #}
+
+
+
+
+ {# Error state #}
+
+ Error
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ckanext/digitizationknowledge/templates/digitizationknowledge/snippets/group_add_toolbar.html b/ckanext/digitizationknowledge/templates/digitizationknowledge/snippets/group_add_toolbar.html
new file mode 100644
index 0000000..f7f0ff2
--- /dev/null
+++ b/ckanext/digitizationknowledge/templates/digitizationknowledge/snippets/group_add_toolbar.html
@@ -0,0 +1,142 @@
+{#
+Group Add Toolbar - Alpine.js component for bulk adding datasets to groups.
+#}
+
+
+
+ {# Toggle Button #}
+
+
+ {# Group Dropdown - only visible when enabled #}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ckanext/digitizationknowledge/templates/digitizationknowledge/snippets/package_list_group_add.html b/ckanext/digitizationknowledge/templates/digitizationknowledge/snippets/package_list_group_add.html
new file mode 100644
index 0000000..33b3a3c
--- /dev/null
+++ b/ckanext/digitizationknowledge/templates/digitizationknowledge/snippets/package_list_group_add.html
@@ -0,0 +1,63 @@
+{#
+Package list with group add buttons.
+Based on CKAN's snippets/package_list.html but adds group add button to each item.
+#}
+
+{% block package_list %}
+ {% if packages %}
+