diff --git a/src/routes/api/recipes/blank/+server.ts b/src/routes/api/recipes/blank/+server.ts
new file mode 100644
index 0000000..4e038c6
--- /dev/null
+++ b/src/routes/api/recipes/blank/+server.ts
@@ -0,0 +1,30 @@
+import type { RequestHandler } from './$types';
+import { json } from '@sveltejs/kit';
+import { getDb } from '$lib/server/db';
+import { insertRecipe } from '$lib/server/recipes/repository';
+
+// Legt ein leeres Rezept an und gibt die ID zurück. Der Client leitet
+// danach nach /recipes/{id}?edit=1 um, damit der Editor sofort offen ist.
+// Titel "Neues Rezept" ist ein Platzhalter — der User überschreibt ihn
+// beim ersten Speichern.
+export const POST: RequestHandler = async () => {
+ const id = insertRecipe(getDb(), {
+ id: null,
+ title: 'Neues Rezept',
+ description: null,
+ source_url: null,
+ source_domain: null,
+ image_path: null,
+ servings_default: 4,
+ servings_unit: null,
+ prep_time_min: null,
+ cook_time_min: null,
+ total_time_min: null,
+ cuisine: null,
+ category: null,
+ ingredients: [],
+ steps: [],
+ tags: []
+ });
+ return json({ id });
+};
diff --git a/src/routes/recipes/+page.svelte b/src/routes/recipes/+page.svelte
index 2eddcc4..5efbdd6 100644
--- a/src/routes/recipes/+page.svelte
+++ b/src/routes/recipes/+page.svelte
@@ -1,20 +1,85 @@
{data.recipes.length} Rezepte insgesamt {data.recipes.length} Rezepte insgesamtRegister
- Register
+