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 tolocaleMessagesPaths(do not duplicate)
- •Append new
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 buildto validate (ensure no errors) - •Verify new page is accessible
- •Clear Next.js cache:
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
- •Use
- •Quick validation checklist:
references/01-checklist.md - •Validate build (required):
- •Build:
pnpm build
- •Build:
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