Strategy: shuttlelab-handbook/playbooks/01-saas-funnel-strategy.md Execution playbook: shuttlelab-handbook/playbooks/00-new-saas-project.md
- Hub site (navigation only)
- Free tool
- Paid SaaS
- Overseas (English-primary)
- Domestic Chinese (Chinese-primary)
- Global (both)
- Processor: None (free tool)
- Pricing: Free
- Refund window: N/A
- Implementation: URL-based with next-intl (
localePrefix: "as-needed") - Default locale:
en(at/) - Secondary locale:
zh(at/zh) - Layer 4 language: English only
- Layer 1:
/— Homepage with DiffEditor tool (500+ words) - Layer 3:
/about— About page with FAQPage + HowTo schemas - Layer 3:
/privacy— Privacy policy - Layer 3:
/terms— Terms of service
All five Layer 4 pages are complete: each has 4 JSON-LD schemas (TechArticle + HowTo + FAQPage + BreadcrumbList), absolute canonical with trailing slash, hreflang (en/zh/x-default), and the full section layout (sr-only h1 + visible h1
- How to + Why + Common Scenarios + Tips + Compared to Alternatives + FAQ + CTA). Word counts below are measured (visible body ≈ tag-stripped render region; total = whole file).
| Page | Primary keyword | Schemas | Visible words | Total words |
|---|---|---|---|---|
/tools/text-diff |
"compare two texts online" | 4 | ~1150 | ~2056 |
/tools/code-diff |
"compare code online" | 4 | ~1320 | ~2295 |
/tools/json-diff |
"compare JSON online" | 4 | ~1221 | ~2200 |
/tools/csv-diff |
"compare CSV files online" | 4 | ~1237 | ~2221 |
/tools/image-diff |
"compare images / image diff" | 4 | ~1129 | ~2145 |
Note:
image-diffis written honestly as a "coming soon" page. The project has no image comparison implementation (DiffEditor reads files as text viareadAsText, no image extensions inSUPPORTED_EXTENSIONS, no image diff mode). The page explains image diffing, recommends external tools for raster images, and routes users to the existing Text Diff for SVG/base64 markup. It must be updated with real upload-and-compare instructions if/when a visual image feature ships.
- SoftwareApplication (root layout)
- FAQPage (about page + all 5 Layer 4 pages)
- HowTo (about page + all 5 Layer 4 pages)
- TechArticle (all 5 Layer 4 pages)
- BreadcrumbList (all 5 Layer 4 pages)
-
app/layout.tsx— Root metadata + JSON-LD SoftwareApplication -
app/[locale]/layout.tsx— hreflang + x-default -
app/sitemap.ts— All public pages with alternates.languages -
app/robots.ts— Allow /, disallow /api -
app/opengraph-image.tsx— Dynamic OG image -
app/manifest.ts— PWA manifest -
app/icon-192.png/route.tsx— PWA icon 192 -
app/icon-512.png/route.tsx— PWA icon 512 -
app/not-found.tsx— Custom 404 with cross-promotion
-
image-diff: no real image comparison feature shipped; page is an honest "coming soon" explainer. Build the visual diff feature (or keep the page truthful) — do not let it drift into claiming functionality that does not exist. - Product screenshot needed for Layer 1
- Google Search Console verification code needed
- Bing Webmaster Tools submission needed