LaunchPad ships with built-in recipes for blogs, businesses, and portfolios (plus additional Pro recipes), but many developers need custom recipes for specific industries, client niches, or unique requirements. A custom real estate recipe. A nonprofit recipe. A photography studio recipe with portfolio galleries. Creating these custom LaunchPad recipes unlocks LaunchPad’s full potential for specialized use cases.

The recipe system is extensible by design—developers can add unlimited custom recipes that appear alongside built-in options. According to WordPress developer surveys, 68% of developers customize plugins for client-specific needs. LaunchPad makes customization systematic through documented APIs and filters.
This advanced developer guide reveals complete custom LaunchPad recipes creation including recipe JSON format and structure, PHP hooks and filters available, custom page template implementation, branding field configuration, plugin and theme recommendations, content template variables, and distribution methods. Master these concepts and you’ll create specialized recipes solving specific industry problems.
Understanding Recipe Structure
Before creating custom recipes, understand how LaunchPad processes recipe data during site setup.
Recipe File Location
LaunchPad loads recipes from: launchpad-lite/recipes/ (built-in free recipes), launchpad-pro/recipes/ (built-in Pro recipes), custom plugin via launchpad_custom_recipes filter (developer recipes).
The filter approach is cleanest—create dedicated plugin containing custom recipes, avoiding core plugin modifications.
JSON Recipe Format
Recipes are JSON files with standardized structure:
{
"site_type": "real-estate",
"name": "Real Estate Agency",
"description": "Complete real estate website with property listings",
"icon": "dashicons-admin-home",
"category": "business",
"pro_only": false,
"theme": "launchpad-bundle",
"theme_options": { },
"plugins": ["wordpress-seo", "contact-form-7"],
"pages": ["home", "listings", "about", "contact"],
"options": { },
"features": [ ],
"branding": { },
"content_templates": { },
"branding_fields": [ ]
}
Each property serves specific purpose in site generation.
Required vs. Optional Fields
Required recipe properties: site_type (unique identifier, slug format), name (display name in wizard), description (shown to users), pages (array of pages to create).
Optional but recommended: icon (Dashicon class for visual identification), category (grouping in UI), theme (recommended theme), plugins (recommended plugins list), theme_options (Customizer preset values), branding_fields (custom input fields).
Pro-specific: pro_only (boolean, requires valid Pro license), AI-related properties (Pro feature configurations).
Creating Your First Custom Recipe
Step-by-step process for custom LaunchPad recipes development.
Recipe Planning Worksheet
Before coding, document: target industry/niche (who is this for?), unique requirements (what makes this different from standard recipes?), required pages (what pages does this site type need?), recommended plugins (what functionality is essential?), branding elements (what customization options should users have?).
Example: Real Estate Recipe planning: Target: real estate agents and agencies. Unique: property listings, agent profiles, IDX integration. Pages: home, listings, featured properties, agents, about, contact, testimonials. Plugins: IMPress Listings, Yoast Local SEO, WPForms. Branding: office location, license numbers, MLS affiliations.
Creating Recipe JSON File
Create real-estate.json in your custom plugin:
{
"site_type": "real-estate",
"name": "Real Estate Agency",
"description": "Professional real estate website with property listings, agent profiles, and lead generation forms. Optimized for real estate professionals and agencies.",
"icon": "dashicons-admin-home",
"category": "business",
"pro_only": false,
"theme": "launchpad-bundle",
"plugins": [
"wordpress-seo",
"contact-form-7",
"impress-listings"
],
"pages": [
"home",
"listings",
"featured-properties",
"our-agents",
"about",
"contact",
"testimonials"
]
}
Start simple. Add complexity incrementally.
Registering Recipe via Filter
Create plugin to register your recipe:
<?php
/**
* Plugin Name: Custom LaunchPad Recipes
* Description: Adds real estate recipe to LaunchPad
* Version: 1.0.0
*/
add_filter('launchpad_custom_recipes', 'add_real_estate_recipe');
function add_real_estate_recipe($recipes) {
$recipe_file = plugin_dir_path(__FILE__) . 'recipes/real-estate.json';
if (file_exists($recipe_file)) {
$recipe_data = json_decode(file_get_contents($recipe_file), true);
if ($recipe_data) {
$recipes[] = $recipe_data;
}
}
return $recipes;
}
Activate plugin, your custom LaunchPad recipe appears in wizard.
Advanced Recipe Features
Beyond basic structure, recipes support advanced customization.
Theme Options Configuration
Pre-configure Customizer settings via theme_options:
"theme_options": {
"primary_color": "#2563EB",
"secondary_color": "#7C3AED",
"hero_layout": "split",
"show_breadcrumbs": true,
"homepage_sections": {
"hero": true,
"services": true,
"testimonials": true,
"cta": true
}
}
These apply automatically during setup, configuring theme without manual Customizer work.
Content Templates with Variables
Define page content templates using variables replaced during setup:
"content_templates": {
"home": {
"title": "Find Your Dream Home with {{site_name}}",
"content": "<p>Welcome to {{site_name}}, your trusted real estate partner in {{city}}. We specialize in helping you find the perfect home.</p>"
}
}
Variables like {{site_name}}, {{city}}, {{tagline}} get replaced with user-provided values.
Custom Branding Fields
Collect industry-specific information via branding fields:
"branding_fields": [
{
"id": "office_location",
"label": "Office Location",
"type": "text",
"placeholder": "123 Main St, City, State",
"required": true
},
{
"id": "license_number",
"label": "Real Estate License Number",
"type": "text",
"required": false
},
{
"id": "mls_affiliation",
"label": "MLS Affiliation",
"type": "select",
"options": ["NCAR", "GCAR", "TCAR"],
"required": false
}
]
These fields appear in wizard, values accessible via get_option('launchpad_branding_data').
PHP Hooks and Filters
LaunchPad provides hooks for programmatic recipe customization.
Available Filter Hooks
Key filters for custom LaunchPad recipes: launchpad_custom_recipes (add recipes), launchpad_recipe_data (modify recipe before processing), launchpad_page_content (customize generated page content), launchpad_plugin_list (modify recommended plugins), launchpad_theme_options (adjust theme settings).
Example modifying recipe data:
add_filter('launchpad_recipe_data', 'customize_recipe_for_client', 10, 2);
function customize_recipe_for_client($recipe_data, $recipe_slug) {
if ($recipe_slug === 'real-estate') {
// Add client-specific plugin
$recipe_data['plugins'][] = 'custom-idx-integration';
}
return $recipe_data;
}
Action Hooks
Available actions: launchpad_before_recipe_build (runs before site generation), launchpad_after_recipe_build (runs after completion), launchpad_page_created (runs after each page creation), launchpad_plugin_installed (runs after each plugin installation).
Example post-build actions:
add_action('launchpad_after_recipe_build', 'setup_real_estate_data', 10, 2);
function setup_real_estate_data($recipe_slug, $branding_data) {
if ($recipe_slug === 'real-estate') {
// Create sample listings
// Configure IDX settings
// Set up lead capture forms
}
}
Page Template System
Recipes define which pages to create. Control page content via templates.
Page Slug Definitions
Pages array in JSON uses slugs: "pages": ["home", "services", "about", "contact"]
LaunchPad matches slugs to internal templates. For custom pages, provide content via content_templates.
Custom Page Content
Define custom page content in recipe:
"content_templates": {
"featured-properties": {
"title": "Featured Properties",
"content": "<p>Browse our hand-picked selection of exceptional properties.</p>[property_listings featured='true']",
"template": "page-properties.php"
}
}
Supports shortcodes, HTML, variables.
Template Hierarchy
LaunchPad checks for page templates in order: recipe content_templates definition, theme-specific template file, LaunchPad default template, WordPress default page.
Create theme templates matching recipe pages for full control.
Plugin and Theme Recommendations
Recipes recommend plugins and themes. Users can accept or decline.
Plugin Array Format
Specify plugins by slug: "plugins": ["wordpress-seo", "contact-form-7", "impress-listings"]
LaunchPad attempts installation from WordPress.org. For custom plugins, use hooks to handle installation differently.
Required vs. Optional Plugins
Distinguish plugin importance:
"plugins": {
"required": ["wordpress-seo", "contact-form-7"],
"recommended": ["impress-listings", "wpforms-lite"],
"optional": ["elementor", "wp-rocket"]
}
(Note: This extended format requires custom handling via filters)
Theme Specifications
Recommend specific themes: "theme": "launchpad-bundle" (default), "theme": "astra" (WordPress.org theme), "theme": "custom-real-estate-theme" (custom theme).
LaunchPad attempts theme installation if not already available.
Distribution Methods
Share custom LaunchPad recipes with clients or community.
Plugin Distribution
Package recipes in standalone plugins: create plugin with recipes in /recipes/ folder, register via launchpad_custom_recipes filter, distribute as zip file or via WordPress.org.
This keeps recipes separate from LaunchPad core, making updates manageable.
Recipe Marketplace Potential
Developers could create: niche-specific recipe plugins, industry template collections, client-specific recipe packages for agencies.
Distribute via WordPress.org, sell via marketplaces, or provide client-exclusive.
Open Source Contributions
Contribute recipes to LaunchPad project via GitHub pull requests. Widely useful recipes may be included in core or Pro versions.
Key Takeaways
- Custom LaunchPad recipes use JSON format with required fields (site_type, name, description, pages) and optional advanced features (theme_options, branding_fields, content_templates)
- Register recipes via
launchpad_custom_recipesfilter in custom plugin, avoiding core modifications and enabling clean distribution - Advanced features include PHP hooks for programmatic customization (launchpad_after_recipe_build), custom branding fields, and content templates with variable replacement
Extend LaunchPad for Your Needs
You’ve learned comprehensive custom LaunchPad recipes development covering JSON structure, PHP integration, advanced features, and distribution methods. Creating custom recipes unlocks LaunchPad for specialized industries and unique client requirements.
Whether building recipes for your agency’s niche, creating client-specific solutions, or contributing to the community, the recipe system provides flexible, documented APIs.
Ready to create custom recipes? Study the LaunchPad GitHub repository for complete code examples and contribute your recipes back to the community. For Pro features and advanced recipe capabilities, explore LaunchPad Pro.

