Twenty-three pages that were really nine.
A food site needed recipe, technique, and source templates that a small team could fill in without a developer. I built the recipe one in an evening to show how, and it passes Google's Rich Results Test.
- Client
- A food and cooking site (proposal stage)
- Role
- Plugin design, development, schema
- Timeline
- One evening
- Deliverables
- WordPress plugin, live demo, recipe video

The brief
A prototype for a cooking site needed to become a production WordPress build: a cinematic homepage, recipe and technique templates, cookbook and editorial content, a pantry section, and the usual About and Contact pages. Twenty-three pages, with clean URLs, heading hierarchy, metadata controls, schema support, and strong mobile performance.
Read closely, 23 pages was nine. Ten were recipes, four were techniques, three were sources: seventeen pages sharing three templates. Price it as 23 unique builds and the client overpays. Build it as 23 unique pages and they're stuck with a site nobody can update. The right answer was three real templates, each driven by a form.
Constraints
- Editors with no WordPress experience had to be able to add a recipe
- Recipe schema had to validate, including ratings, video, and nutrition, without a paid plugin license
- Video and nutrition are optional per recipe and must not leave gaps when absent
- The card had to read as clean and modern, in the spirit of the meal-kit sites the client referenced
A home cook doesn't type a recipe into four columns. They type it the way they'd text it to a friend.
What I did
Rather than describe the approach in the proposal, I built it: FL Recipe Cards, a standalone plugin under the Fifteenth Labs label.
One guided form. Adding a recipe is a single screen, top to bottom: title, description, photo picker, times and servings, a Food or Drink switch that swaps the Course dropdown for a Drink type list, dietary tags as tappable chips, then ingredients and steps as plain text. The default WordPress editor, excerpt box, and taxonomy panels are hidden. There is nothing else to look at.
A parser that forgives how people type. Ingredients go in one per line, like "2 tbsp olive oil, divided". The plugin splits that into amount, unit, ingredient, and note on save, bolds the quantity on the card, and feeds the full line to schema. Steps go in one per paragraph; a short first line becomes the step title. Nothing the editor types is lost; anything the parser can't split stays as the ingredient name.
The card. Photo with course and difficulty badges, a stat strip for prep, cook, total, and servings, a sticky ingredient checklist that strikes items through as you cook, numbered steps, a chef's note, dietary tags, and a print button. Visitor star ratings under the description. Nutrition as a collapsible panel. Video embeds when a YouTube or Vimeo link is present and simply isn't there when it isn't. Fonts are bundled and served locally, so no third-party requests.
How it came together
-
01
Quote first, then build
Priced the 23 pages as nine builds plus fourteen template instances, then decided the proposal would land harder with a working demo than a paragraph.
-
02
Mockup and plugin in parallel
Designed the card as static HTML using the plugin's real stylesheet, so the mockup and the shipped card are the same CSS.
-
03
The admin was the hard part
The first version used repeater fields. It was confusing in thirty seconds. Replaced with plain-text entry and a parser, then rebuilt again as a single guided form with dropdowns and chips.
-
04
Schema, then proof
Added ratings, video, and full nutrition so the schema was complete, not basic. Ran the live demo through Google's Rich Results Test and attached the green checkmark to the proposal.
What this explored
The demo recipe passes Google's Rich Results Test with two valid items: Recipe and Review snippets. That's eligibility for stars and rich cards in search, out of the box, with no license fee.
For the client, it means adding recipe number eleven is a form, not a dev ticket, and the same pattern carries straight to technique and source templates. For the studio, it's a product: FL Recipe Cards joins the Fifteenth Labs line whether or not this bid lands.
See the live demoBuilt with
- WordPress
- PHP
- Custom post types
- Schema.org JSON-LD
- Vanilla JS
- Bricolage Grotesque + DM Sans
Got something similar?
Tell me what you're working on. If I'm not the right fit I'll say so, and I'll usually know who is.
Start a conversation