ShipAny Page Builder (Dynamic Pages)
This skill creates new pages using ShipAny's dynamic page builder approach: a page is rendered from a JSON file (per-locale), and activated by registering that JSON path in localeMessagesPaths.
This skill is intentionally much simpler than shipany-quick-start: it only creates new dynamic pages.
v1 edit scope (hard limit)
For v1, you may only:
- Add new multi-language dynamic page JSON files:
src/config/locale/messages/en/pages/** (new page JSON files only)
src/config/locale/messages/zh/pages/** (new page JSON files only)
- Update
src/config/locale/index.ts:
- Append new
'pages/<slug>' entry to localeMessagesPaths (do not duplicate)
Hard rules:
- Do not modify any existing page JSON files (only create new ones).
- Do not touch routing code, layouts, components, or theme blocks.
- Do not add or edit any images under
public/. Use placeholder images in JSON only.
Dev workflow (required)
- Before starting: Ensure project skeleton is available
- Before starting: Verify route/slug parameters are normalized
- After finishing:
- Clear Next.js cache:
rm -rf .next
- Run
pnpm build to validate (ensure no errors)
- Verify new page is accessible
Inputs (normalize first)
Normalize user request into:
route: string (e.g. /features/ai-image-generator)
slug: string (derived from route, e.g. features/ai-image-generator)
keywords: string[] (3–10)
referenceCopy: optional raw text snippets, bullets, competitor copy, or notes
sectionsWanted: optional list of section keys (default: ["hero","introduce","benefits","features","faq","cta"])
See references/00-guide.md.
Execution order
- Normalize input + decide route/slug:
references/00-guide.md
- Generate locale files (based on configured
localeNames) and register 'pages/<slug>':
- Use
scripts/create_dynamic_page.py
- Quick validation checklist:
references/01-checklist.md
- Validate build (required):
Bundled script (recommended)
Use bundled script to create files + register message path:
scripts/create_dynamic_page.py
It is intentionally conservative:
- Creates missing folders
- Refuses to overwrite unless
--force
- Adds
TODO: markers for missing translations/content