- Add uload project with apps/web structure
- Reorganize from flat to monorepo structure
- Remove PocketBase binary and local data
- Update to pnpm and @uload/web namespace
- Add picture project to monorepo
- Remove embedded git repository
- Unify all package names to @{project}/{app} schema:
- @maerchenzauber/* (was @storyteller/*)
- @manacore/* (was manacore-*, manacore)
- @manadeck/* (was web, backend, manadeck)
- @memoro/* (was memoro-web, landing, memoro)
- @picture/* (already unified)
- @uload/web
- Add convenient dev scripts for all apps:
- pnpm dev:{project}:web
- pnpm dev:{project}:landing
- pnpm dev:{project}:mobile
- pnpm dev:{project}:backend
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
11 KiB
Prompt Templates Collection - Documentation
Overview
The Prompt Templates collection provides a comprehensive system for managing and displaying reusable AI image generation prompt templates. Users can browse, filter, search, and use pre-built prompt templates to generate high-quality images faster.
Collection Schema
Located in: /apps/landing/src/content/config.ts
Core Fields
Required Fields
- title (string) - The name of the template
- description (string) - Brief description of what the template creates
- icon (string) - Emoji icon for visual identification
- promptTemplate (string) - The template string with
{variable}placeholders - category (enum) - Main category for organization
- difficulty (enum) - beginner, intermediate, or advanced
- recommendedModel (string) - Best AI model for this template
Template Variables
- variables (array) - List of variable definitions:
name- Variable identifier in the templatedescription- User-friendly labelplaceholder- Example values separated by/required- Whether the variable must be filled
Organization
- category - Main category (social-media, product-photography, character-design, etc.)
- tags - Array of searchable tags
- difficulty - Skill level required
- subcategory - Optional subcategory for finer organization
Recommendations
- recommendedModel - Primary AI model
- alternativeModels - Array of alternative models
- recommendedSettings - Object with:
aspectRatio- Optimal image dimensionssteps- Generation stepsguidanceScale- Prompt adherencenegativePrompt- What to avoid
Examples & Variations
- exampleImages - Array of example outputs:
url- Image pathprompt- Exact prompt usedvariables- Values used (optional)
- variations - Alternative template versions:
title- Variation nameprompt- Modified templatedescription- What makes it different
Engagement Metrics
- uses (number) - Total usage count
- likes (number) - User likes
- saves (number) - Times saved
- rating (number, 0-5) - Average rating
- successRate (number, 0-100) - Success percentage
Status Flags
- featured (boolean) - Show in featured section
- popular (boolean) - Mark as popular
- trending (boolean) - Currently trending
- premium (boolean) - Requires premium access
Metadata
- publishDate (date) - First published
- lastUpdated (date) - Last modification
- language (string) - Content language (en, de, fr, etc.)
Content & Guidance
- useCases - Array of use case strings
- idealFor - Array of target audience strings
- tips - Array of helpful tips
- commonMistakes - Array of things to avoid
- doAndDont - Object with
doanddontarrays - relatedTemplates - Array of related template slugs
- seoKeywords - Array of SEO keywords
File Structure
apps/landing/src/content/promptTemplates/
├── en/
│ ├── instagram-product-showcase.md
│ ├── logo-design-modern.md
│ ├── cinematic-portrait.md
│ ├── fantasy-landscape.md
│ ├── abstract-wallpaper.md
│ └── character-design-rpg.md
├── de/
│ └── ... (German versions)
└── fr/
└── ... (French versions)
Template Format Example
---
title: "Product Photography for Instagram"
description: "Create stunning product shots optimized for Instagram"
icon: "📸"
promptTemplate: "Professional product photography of {product}, {style} style, {lighting} lighting, on {background}, {angle} angle, high detail, commercial quality"
variables:
- name: "product"
description: "The product to photograph"
placeholder: "sneakers / watch / coffee mug"
required: true
- name: "style"
description: "Photography style"
placeholder: "minimalist / editorial / lifestyle"
required: true
category: "product-photography"
tags:
- "product"
- "instagram"
- "commercial"
difficulty: "beginner"
recommendedModel: "flux-1-1-pro"
alternativeModels:
- "flux-dev"
recommendedSettings:
aspectRatio: "1:1"
steps: 2
guidanceScale: 3.5
featured: true
popular: true
trending: false
premium: false
uses: 15234
likes: 3421
saves: 2876
rating: 4.8
publishDate: 2025-01-20T00:00:00Z
lastUpdated: 2025-01-20T00:00:00Z
successRate: 95
---
## Create Professional Product Shots
Your content here...
Utility Functions
Located in: /apps/landing/src/utils/promptTemplates.ts
Template Retrieval
getAllPromptTemplates()- Get all templates, sorted by usesgetFeaturedTemplates(limit)- Get featured templatesgetPopularTemplates(limit)- Get popular templatesgetTrendingTemplates(limit)- Get trending templatesgetTemplateBySlug(slug)- Get single template
Filtering
getTemplatesByCategory(category)- Filter by categorygetTemplatesByDifficulty(difficulty)- Filter by difficultygetTemplatesByTag(tag)- Filter by taggetTemplatesByModel(model)- Filter by AI model
Search & Sort
searchTemplates(query)- Full-text searchsortTemplates(templates, sortBy)- Sort by various criteriagetMostUsedTemplates(limit)- Top used templatesgetHighestRatedTemplates(limit)- Top rated templatesgetMostSavedTemplates(limit)- Most saved templates
Analytics
getAllCategories()- Get categories with counts and iconsgetAllTags()- Get tags with usage countsgetTemplateStats()- Comprehensive statistics
Template Manipulation
fillTemplate(template, variables)- Replace {variables} with valuesextractVariables(template)- Get all {variables} from templatevalidateTemplateVariables(template, providedVariables)- Validate inputs
Related Content
getRelatedTemplates(currentTemplate, limit)- Get related templates
UI Helpers
formatCategoryName(category)- Format for displaygetDifficultyColor(difficulty)- Get badge color
Components
Located in: /apps/landing/src/components/promptTemplates/
TemplateCard.astro
Reusable card component for displaying template summaries.
Props:
template- PromptTemplateEntryfeatured- boolean (optional)compact- boolean (optional)
Features:
- Icon and title
- Difficulty badge
- Status badges (featured, popular, trending)
- Description
- Category and tags
- Engagement stats (likes, views, rating)
- Recommended model
PromptBuilder.astro
Interactive form for building prompts from templates.
Props:
template- PromptTemplateEntry
Features:
- Dynamic form fields based on template variables
- Real-time prompt generation
- Copy to clipboard functionality
- CTA to open in app
- Required field validation
CategoryGrid.astro
Grid display of all categories.
Props:
categories- Array of category objectsinteractive- boolean (enables click-to-filter)
Features:
- Icon and category name
- Template count
- Hover effects
- Interactive filtering (when enabled)
TemplateFilters.astro
Filter and sort controls.
Props:
categories- Array of categoriesdifficulties- Array of difficulty levelsmodels- Array of AI modelsstats- Statistics object
Features:
- Category filter dropdown
- Difficulty filter dropdown
- Model filter dropdown
- Sort options (popular, recent, rating, uses)
- Active filters display
- Custom events for filter changes
FeaturedSection.astro
Section component for displaying featured templates.
Props:
templates- Array of PromptTemplateEntrytitle- string (optional)description- string (optional)
Features:
- Responsive grid layout
- Uses TemplateCard components
- Customizable heading
Pages
Index Page
Path: /apps/landing/src/pages/prompt-templates/index.astro
Sections:
- Hero with search and stats
- Filter bar (sticky)
- Featured templates section
- All templates grid with filtering
- Category browser
- CTA section
Features:
- Real-time client-side filtering
- Search functionality
- Sort options
- Active filters display
- No results state
- Responsive grid layouts
Detail Page
Path: /apps/landing/src/pages/prompt-templates/[slug].astro
Sections:
- Hero with template info and stats
- Two-column layout:
- Main Content:
- Interactive prompt builder
- Example prompt
- Markdown content
- Use cases
- Tips & best practices
- Common mistakes
- Template variations
- Sidebar:
- Recommended settings
- Success rate
- CTA button
- Ideal for audience
- Tags
- Share buttons
- Main Content:
- Related templates section
- CTA section
Features:
- Interactive prompt builder with live preview
- Copy to clipboard
- Breadcrumb navigation
- Related template suggestions
- Social sharing
- Responsive layout
SEO & Best Practices
Title Format
{Template Title} - AI Prompt Template | Picture
Description Format
Keep under 160 characters, focus on benefits and use cases.
URL Structure
/prompt-templates - Index page
/prompt-templates/{slug} - Detail page
/prompt-templates?category={category} - Category filter
/prompt-templates?tag={tag} - Tag filter
Content Guidelines
- Title - Clear, descriptive, 3-7 words
- Description - One sentence benefit statement
- Icon - Relevant emoji
- Variables - 3-8 variables, clear placeholders
- Tags - 3-6 relevant tags
- Tips - 3-6 actionable tips
- Use Cases - 3-6 specific scenarios
Engagement Tips
- Set realistic success rates
- Use clear, specific placeholders
- Include example images when possible
- Link related templates
- Add variations for flexibility
Naming Conventions
File Names
Use kebab-case with descriptive names:
instagram-product-showcase.mdcharacter-design-rpg.mdcinematic-portrait.md
Category Slugs
Use kebab-case:
product-photographycharacter-designsocial-media
Variable Names
Use snake_case:
product_typelighting_stylecolor_scheme
Adding New Templates
- Create markdown file in appropriate language folder
- Copy template structure from existing file
- Fill in all required fields
- Test the prompt template with various inputs
- Add example outputs if available
- Link related templates
- Verify SEO fields are complete
Integration with Main App
The prompt templates are designed to integrate with the main Picture app:
- User browses/searches templates on landing site
- User fills in variables using PromptBuilder
- User clicks "Open Picture App" CTA
- Prompt is copied to clipboard
- User pastes into app to generate
Future enhancement: URL parameters to pass prompt directly to app.
Performance Considerations
- All templates are static at build time
- Client-side filtering for instant results
- Images lazy-loaded
- Optimized collection queries
- Cached template statistics
Localization
Templates support multiple languages:
- Each language has its own folder
- Translations should maintain same slug structure
- Variables can be localized
- Keep English as base language
Analytics Tracking
Consider tracking:
- Template views
- Template uses (prompt generation)
- Copy to clipboard events
- CTA clicks to app
- Search queries
- Filter usage
- Sort preferences
Future Enhancements
Potential improvements:
- User-submitted templates
- Template ratings/reviews
- Save to favorites
- Template collections
- A/B testing different prompts
- AI-powered template suggestions
- Community templates marketplace