Repository navigation
Conversation
3 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is this PR about?
SEO improvements for the templates hub page and all individual template pages on
dokploy.com/templates.The
Templateinterface now supports three optional fields:seoTitle,seoDescription, andnewConfig. When present in the template data,seoTitleandseoDescriptionare used for the page<title>tag and<meta name="description">. When absent, the existing formula (Deploy {name} on Dokploy) is used as a fallback, so all 568 templates continue to work without changes.The
newConfigboolean flag enables dynamic configuration section text that includes the template name for specific templates.The templates hub page (
dokploy.com/templates) also has an updated title and meta description targeting the keyword "dokploy templates".This PR works together with Dokploy/templates PR #1212, which adds the actual
seoTitle,seoDescription, andnewConfigvalues to the templatemeta.jsonfiles.What changed
apps/website/lib/templates.ts: Added optionalseoTitle,seoDescription, andnewConfigfields to theTemplateinterfaceapps/website/app/templates/[id]/page.tsx:generateMetadata()now usesseoTitleandseoDescriptionwhen available, falls back to the existing formula otherwise. The configuration section text now checks thenewConfigflag to conditionally include the template name.apps/website/app/templates/page.tsx: Updated the hub page title to "Dokploy Templates: 500+ Open Source Apps" and the meta description to target relevant search keywordsWhy these changes?
Currently all template pages use the same title format ("Deploy {name} on Dokploy") and the meta description is auto generated by combining the template description with boilerplate text. This makes every page look the same to search engines and misses high volume keywords like "n8n self hosted" or "jellyfin docker compose".
With these changes, each template page can have a custom title and meta description optimized for the specific keywords people actually search for. The 484 templates without custom SEO fields are completely unaffected since the code falls back to the existing formula.
Why the newConfig conditional approach?
The configuration section text could have been made dynamic for all 568 templates by directly using the template name in the code. However, the original specification only requested this enhancement for 55 specific templates. To respect the defined scope and maintain explicit control over which templates receive this change, a conditional check on the
newConfigflag was implemented. This provides granular control while keeping behavior unchanged for templates not marked with the flag.Checklist
Before submitting this PR, please make sure that:
PR related
Works together with Dokploy/templates PR #1212, which adds the
seoTitle,seoDescription, andnewConfigdata to templatemeta.jsonfiles.Screenshots or Videos
No visual changes. This PR only updates how the page title, meta description, and configuration section text are generated for template pages.