diff --git a/README.org b/README.org
index d673b91..233f0c0 100644
--- a/README.org
+++ b/README.org
@@ -26,8 +26,8 @@ $ bun run dev -o  # automatically open in the browser
 Build for production:
 
 #+BEGIN_SRC sh
-$ bun nuxi build     # for server-side rendering or hybrid
-$ bun nuxi generate  # for static site generation
+$ bun run build     # for server-side rendering or hybrid
+$ bun run generate  # for static site generation
 #+END_SRC
 
 Locally preview production build:
diff --git a/src/components/Todo/Browse.vue b/src/components/Todo/Browse.vue
index 8ec088d..d8b8fd5 100644
--- a/src/components/Todo/Browse.vue
+++ b/src/components/Todo/Browse.vue
@@ -2,7 +2,7 @@
 	
 		
 		
+			:sortMode="'multiple'" v-model:multiSortMeta="multiSortMeta">
 			
 			
 			
@@ -22,6 +22,7 @@ import { useConfirm } from "primevue/useconfirm";
 import { useToast } from "primevue/usetoast";
 import { useTodoStore } from "@/stores/todoStore";
 
+import type { DataTableSortMeta } from "primevue/datatable";
 import type { Todo } from "@/schemas/todo";
 
 const confirm = useConfirm();
@@ -29,16 +30,27 @@ const store = useTodoStore();
 const toast = useToast();
 
 // Reactive bindings for sorting
-const sortField = ref("");
-const sortOrder = ref();
+const multiSortMeta = ref([]);
 
 function sortTodos(): Todo[] {
 	let todos: Todo[] = JSON.parse(JSON.stringify(store.todos)); // deep copy
 
-	if (sortField.value) { // string or null
-		todos = (sortOrder.value == 1) // 1 or -1
-			? todos.sort((a, b) => a[sortField.value as keyof Todo]?.localeCompare(b[sortField.value as keyof Todo] || "") || 0)
-			: todos.sort((a, b) => b[sortField.value as keyof Todo]?.localeCompare(a[sortField.value as keyof Todo] || "") || 0);
+	// Loop in reverse order to apply the sorting correctly
+	for (let i = multiSortMeta.value.length - 1; i >= 0; i--) {
+
+		const sort: DataTableSortMeta = multiSortMeta.value[i];
+		const value = (item: Todo): string => {
+			if (typeof sort.field === "string") {
+				return item[sort.field as keyof Todo] || "";
+			}
+			else if (typeof sort.field === "function") {
+				return sort.field(item) || "";
+			}
+
+			return "";
+		};
+
+		todos.sort((a, b) => sort.order! * value(a).localeCompare(value(b)));
 	}
 
 	return todos;
@@ -75,7 +87,7 @@ const removeTodo = (id: String) => {
 };
 
 
-