diff --git a/src/lib/components/UserCard.svelte b/src/lib/components/UserCard.svelte
new file mode 100644
index 0000000..117c679
--- /dev/null
+++ b/src/lib/components/UserCard.svelte
@@ -0,0 +1,41 @@
+
+
+
+
+
+ {#if usu.bio}
+ {usu.bio}
+ {/if}
+
+
diff --git a/src/lib/hooks/busquedaUsuarios.ts b/src/lib/hooks/busquedaUsuarios.ts
new file mode 100644
index 0000000..7508cba
--- /dev/null
+++ b/src/lib/hooks/busquedaUsuarios.ts
@@ -0,0 +1,18 @@
+import { apiBase } from '@/stores/url';
+import { get } from 'svelte/store';
+
+export async function busquedaUsuarios(username: string) {
+ if (!username) return null;
+ try {
+ const req = await fetch(`${get(apiBase)}/api/users/search?q=${username}`, {
+ method: 'GET'
+ });
+ if (req.ok) {
+ let data = await req.json();
+ return data;
+ }
+ return [];
+ } catch {
+ return null;
+ }
+}
diff --git a/src/routes/search/+page.svelte b/src/routes/search/+page.svelte
deleted file mode 100644
index e69de29..0000000
diff --git a/src/routes/search/[user]/+page.svelte b/src/routes/search/[user]/+page.svelte
new file mode 100644
index 0000000..5e57037
--- /dev/null
+++ b/src/routes/search/[user]/+page.svelte
@@ -0,0 +1,11 @@
+
+
+
+ {#each data.usuarios as usu}
+
+ {/each}
+
diff --git a/src/routes/search/[user]/+page.ts b/src/routes/search/[user]/+page.ts
new file mode 100644
index 0000000..a5e2e59
--- /dev/null
+++ b/src/routes/search/[user]/+page.ts
@@ -0,0 +1,16 @@
+import { busquedaUsuarios } from '@/hooks/busquedaUsuarios';
+import type { PageProps } from '../$types';
+import { error } from '@sveltejs/kit';
+import type { UserResponseDto } from '../../../types';
+
+export async function load({ params }: PageProps) {
+ let usuarios: UserResponseDto[] = await busquedaUsuarios(params.user);
+ if (usuarios == null) {
+ return error(500, 'No se pudo alcanzar el servidor.');
+ }
+
+ if (usuarios.length == 0) {
+ return error(404, 'No se encontraron usuarios que coinsidan con la busqueda.');
+ }
+ return { usuarios };
+}