A recipe formatting and publishing tool that takes structured recipe data and outputs it as Markdown, a printable PDF, or an SEO-optimized YouTube video description.
View Live Deployment (Placeholder) | Developer Portfolio
This repository is currently in the Product Specification & Architecture Design phase. The feature scope, technical stack choices, and data boundaries have been mapped below. Implementation is scheduled to begin next week.
Last Updated: August 29, 2026
This project follows an agile, phased release strategy. By decoupling core functionality from complex integrations, the roadmap minimizes risk, accelerates time-to-market for the MVP, and ensures engineering stability at every milestone.
βββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ
β Phase 1: Foundation ββ> β β Phase 2: AI Engine ββ> β β Phase 3: Ecosystem β
β CRUD & Local Exporters β β OpenAI & Formatting β β Analytics & Social Sync. β
βββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ
Objective: Establish core data contracts, state management, and basic local export utilities without external API dependencies.
- Data Architecture: Design and freeze the strict JSON schema for single-serving recipes (macros, ingredients, custom conversion units).
- Core UI Layer: Build the interactive recipe input wizard and state management engine in SvelteKit.
- Local Markdown Exporter: Write the client-side JavaScript utility to map raw JSON strings into clean, downloadable
.mdfiles. - Local PDF Engine: Implement the serverless HTML-to-PDF rendering pipeline for instant, print-ready document streaming.
Objective: Safely integrate generative AI to handle creative formatting workloads while maintaining strict data constraints.
- LLM Pipeline Integration: Connect the Next/Svelte serverless API routes to the OpenAI SDK using structured JSON outputs.
- YouTube SEO Engine: Develop the system prompts required to translate raw recipe steps into highly engaging, timestamped YouTube descriptions.
- Error & Rate Limit Handling: Implement robust client-side error states and server-side fallback text routines in case of third-party API timeouts or token limits.
Objective: Transition the app from a single-user workflow tool into a full-scale portfolio asset with user retention features.
- Etsy & Analytics Dashboard: (For the Crochet App sister project) Add simple tracking to monitor download success rates and export metrics.
- Cloud Persistence Layer: Integrate a lightweight database (e.g., Supabase or PostgreSQL) to allow creators to save, edit, and history-track past generated outputs.
- One-Click Clipboard Optimization: Introduce an interactive "Preview & Tweak" canvas allowing users to modify AI outputs before final copying.
ββββββββββββββββββββββββ
β Svelte Frontend β
ββββββββββββ¬ββββββββββββ
β (Recipe Input & Formatting Options)
βΌ
ββββββββββββββββββββββββ
β Node.js API Route β
ββββββββββββ¬ββββββββββββ
β
βββββββββββββββββββββΌββββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β LLM API (OAI) β β PDFKit / β β Markdown β
β Gen Description β β Puppeteer β β Formatter β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
- Frontend: Uses Svelte.js with Tailwind CSS
- Backend: Uses Node.js with Express
- Authentication: Standard JWT with username/password
- Data Structure: Store your raw recipe structured as JSON (e.g., fields for
title,description,ingredients[],instructions[], andmacros)
This requires no external APIs. Write a simple pure-JavaScript utility function that maps your recipe JSON template directly into a standard strings-based .md file format.
Use a lightweight server-side library like PDFKit or Puppeteer to render an HTML preview of the recipe directly into a clean, printable PDF download stream.
Integrate a structured LLM API call (like OpenAI or Anthropic). Pass the recipe JSON to the model with a strict system prompt instruction:
"Act as a YouTube SEO expert. Turn this recipe JSON into an engaging video description, complete with chapters/timestamps placeholders, a hook, and relevant hashtags."