Stop Retyping Recipes From Websites
Find a recipe on a website. Read it through. Decide you want to save it. Switch to your recipe app. Create a new recipe. Manually type the title. Manually type the ingredients. Manually type the steps. Manually go back and check the quantities.
This is what "saving a recipe" looks like for a depressingly large number of people. It is also a workflow that has been solvable for at least a decade and is still not solved in several widely used recipe apps.
The web has structured recipe data
Most recipe websites publish their recipes in a structured machine-readable format. When a food blogger writes a recipe post, the publishing software (WordPress, Squarespace, Substack) usually embeds the recipe as JSON-LD with Schema.org Recipe markup. An invisible block of structured data that Google reads for search results, and that any recipe app can read to import cleanly.
So when you find a chicken thigh recipe on a food blog, the recipe is already structured. Ingredients separated. Steps numbered. Cooking time noted. All a recipe app has to do is fetch the page, find the JSON-LD block, and parse it. Five seconds of work.
An app that does this well takes you from "saw the recipe" to "recipe is in my collection" in one tap.
What URL import should do
A good URL import has a few specific properties.
It works on the first try. Paste a URL, the recipe appears. No "we couldn't parse this site" failures on the major food sites. NYT Cooking, Food Network, Serious Eats, Bon Appetit, AllRecipes, Smitten Kitchen, anything on Substack, anything on WordPress should just work.
It preserves the source. The recipe links back to the original page, with the author and publication credited. This is good etiquette and useful when you want to revisit the original.
It pulls the photo. Recipes have photos because the photo is a useful reference. The import brings it.
It handles structured and unstructured content. If the site uses JSON-LD, the import is clean. If the site is older or uses unusual markup, the import falls back to extracting recipe-like content from the page.
It does not require a browser extension. Some apps insist on one. That is a usability tax not everyone wants to pay.
Flour Power's URL import handles all of this. Paste the URL, the recipe is parsed and previewed, you confirm it looks right, it lands in your collection.
Photo import
URL import covers websites. It does not cover the recipes that are not on a website.
The handwritten card from your grandmother. The clipping from a magazine. The recipe on the back of a flour bag. The page from a cookbook you do not want to keep digitizing the same way every time.
For these, you need photo import. Take a picture. The app runs OCR, parses the result, adds it to your collection.
OCR quality varies. Good implementations handle handwritten recipes (not just printed ones), separate the ingredient list from the instructions, keep the original photo alongside the parsed text in case the OCR misread, and let you correct mistakes before the recipe is finalized.
Bad implementations dump raw OCR text into a single field. That is barely better than typing.
OCR does not have to be perfect. It just has to get you 90% of the way there, so you are correcting a few small things instead of typing the whole recipe. The first 90% was the friction.
What imports should not do
Four common failures.
They silently lose photos. If the source has a photo, the import should have a photo. They strip your notes. Your annotations are part of the recipe. They garble the structure, concatenating everything into a wall of text. They require you to know JSON-LD exists. You should not have to. The import should just work.
Bulk import
If you are moving from another app, you probably have more than one recipe. A good workflow handles file imports too.
Paprika file. CopyMeThat export. Pepperplate dump. A folder of Markdown recipes. A spreadsheet from someone in your family who kept recipes in Excel. All legitimate sources.
If your source format is something the destination does not handle directly, run it through MoveMyRecipes first to convert, then import the standard format. Flour Power supports direct import for Paprika, CopyMeThat, and Pepperplate formats, plus generic JSON, XML, and TXT inputs.
The honest caveat
URL import is only as good as the source. A blog post that does not include structured data forces the parser to fall back to heuristics, and heuristics get things wrong. OCR on a faded handwritten card produces partial garbage. You will sometimes need to clean up after the import. "Sometimes clean up" is much smaller work than "type every recipe from scratch."
Good import keeps the collection alive. The marginal cost of adding a recipe should be approximately zero, because the marginal benefit of any single new recipe is also approximately zero. You add fifty, you find six that become regulars, the collection compounds.