Etienne Sharkey
Menu

Career

  • Overview
  • RAC
  • Forth
  • BAE Systems

Projects

  • Portfolio Site
  • PhotoMapper
  • Meal Planner

Meal Planner

Image with description

A recipe collection app with AI-powered scraping. Paste any recipe URL and the app automatically extracts the title, ingredients, and instructions — or paste an Instagram or Facebook Reel link and Google Gemini 2.5 Flash reads the recipe directly from the caption using yt-dlp.

Recipes are saved to your personal Supabase-backed collection. Select multiple recipes to generate a combined shopping list with automatic quantity merging, ingredient normalisation, and imperial-to-metric conversion — so a list of recipes becomes a single, clean list ready for the supermarket.

View Meal Planner
Gemini 2.5AI-powered recipe extraction
yt-dlpInstagram & Facebook Reel support
SupabaseAuth, recipes & shopping lists
Imperial → MetricAutomatic unit conversion
FrontendContentBFFServicesDataRecipe scraping pipeline
Next.js App
/api/scrape-recipe
Cheerio Scraper
Reel Pipeline
Supabase Postgres
Recipe Sources
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

Tech Stack

Frontend

Server-rendered pages with interactive client components for recipe selection and shopping list management.

Next.js 16React 19TypeScriptTailwind CSSLucide React

AI & Scraping

Two-path scraping pipeline: Cheerio for standard recipe sites using schema.org/Recipe JSON-LD, and yt-dlp + Gemini for social media content.

Google Gemini 2.5 FlashCheerio 1.0yt-dlpfraction.js

Backend & Auth

Supabase provides auth, Postgres, and a scrape cache. RLS policies restrict recipe and shopping list access to the owning user.

Next.js API RoutesSupabaseSupabase AuthRow-Level Security

Get in touch

Open to new opportunities and interesting projects. Feel free to reach out.

EmailGitHubLinkedIn
Download CV