← All playbooks · Raw API
pages
# Pages — point.me
General playbook for **marketing pages** on the Vercel site (not Insights articles or author profiles). Use specialized playbooks when the page type is known:
| Page type | Playbook |
|-----------|----------|
| Insights hub / tag listings (not pages) | `cms-edit://customer/insights-hub-pages` |
| Insights article | `cms-edit://customer/articles` |
| Author profile (Person) | `cms-edit://customer/people` |
| Partnerships / Gateway | `cms-edit://customer/partnerships-pages` |
| Concierge | `cms-edit://customer/concierge-pages` |
| Campaign landers (`/l/`) | `cms-edit://customer/campaign-landers` |
| Legal / policy | `cms-edit://customer/legal-policy-pages` |
| Plan picker | `cms-edit://customer/plan-picker` |
## When to use
- New or updated pages under `/`, `/about/`, `/partnerships/`, `/concierge/`, `/l/`, `/small-business/`, `/reviews/`, `/press/`, `/explore/`, `/credit-card-quiz/`
- Cloning structure from an existing page before tailoring copy
- Importing a brief into CMS components
Read `cms-edit://customer/routing` and `cms-edit://customer/production-site` before editing. Fetch live markdown with `.md` appended to the **public** path (e.g. `https://www.point.me/about.md`).
**Homepage:** CMS slug is **`index`** (public URL `/`). Open with `cms-edit open /` or `--page-slug /index`.
**Out of scope — product app:** Do **not** create or edit AWS product routes (`/home`, `/search`, `/app`, authenticated account). Those are not this Next.js marketing site. **Search trip** / **Search results** components are product-adjacent — only use them on marketing pages that already embed them (e.g. Explore).
## Templates
```bash
cms-edit list --type template
```
Inspect template `preContent` / `postContent` with `peek --id <template-id>`. Do **not** duplicate nav/footer blocks that already live on the template.
## Reference pages (clone sources)
| Public path | Category | Notes |
|-------------|----------|-------|
| `/` | Home | Search-hero variants, proof, CTAs — clone only for homepage-scale work |
| `/about/` | About | Hero + image/text story + stats + careers CTA |
| `/partnerships/` | B2B / Gateway | See `partnerships-pages` — HubSpot demo, not Iterable |
| `/partnerships/financial-institutions/` | Partnership L2 | Clone for a new partner audience page |
| `/partnerships/travel-and-loyalty-partners/` | Partnership L2 | Loyalty / airline partner narrative |
| `/concierge/points-consult/` | Concierge | See `concierge-pages` — not `/cc-consult` |
| `/l/explore/` | Campaign | See `campaign-landers` — not marketing `/explore/` or AWS `/search` |
| `/small-business/` | Audience LP | How-it-works + plan CTA |
| `/reviews/` | Social proof | Trustpilot / review embeds |
| `/explore/` | Explore marketing | Search-hero variants — do not confuse with AWS `/search` |
Use `cms-edit://customer/task-clone-page` when the new page should mirror an existing layout.
## Document section → component mapping
Map brief sections to **registered** types (`cms-edit://customer/components-index` / `collections-index`):
| Brief section | Component / collection | Notes |
|---------------|------------------------|-------|
| Hero (H1 + subhead + CTA) | **Hero text left** or **Hero centered text** | Search-on-hero: `Hero * search top/bottom/signup/results` — match an existing page |
| Body copy | **Content**, **Rich text**, or **Simple centered content** | |
| Image + copy | **Left image right text** / **Right image left text** (narrow + heading-with variants) | |
| Feature / story | **Feature card**, **Story module** | |
| Stats | **Statistics** collection | |
| FAQ | **FAQs** collection | |
| Logo strip | **Logo row**, **Logo grid**, or **Logo ticker** | |
| Services / cards | **Services**, **Centered cards**, **Content grid tight** | |
| Destinations | **Destination cards landscape** / **portrait** | |
| Pricing | **Pricing plans** + **Sticky plan selector** | Small-business / plans |
| Primary CTA | **CTA**, **CTA with email**, **Rail CTA** | |
| Article promo band | **Article CTA** or **Article list CTA** | Not a city or airline “type” — those strings are mock labels, not CMS types |
| Form | **Hubspot form**, **Iterable form**, or **Typeform** external | Partnerships demo = HubSpot |
| Reviews widget | **Trustpilot** external | |
| Spacing / theme break | **Spacer \*** or **Section change** | |
Prefer **reusing existing component entries** (`list --type component`) when copy is unchanged.
## Creating pages
1. Read `cms-edit://customer/tasks-index` → `task-create-page` or `task-create-from-document`
2. `cms-edit index sync` if templates or assets may be stale
3. Pick template; set `slug`, `title`, `description`, `featuredImage` as needed
4. Build content stack with `add` + `set` / `rtf`, or `create from-json --dry-run --strict` first
5. After each `add`, set `heading` then `cmsLabel` (never leave `New Generic`)
6. `diff` → `save` (draft only)
**Test / campaign pages:** `indexed: false`. Paths under `/l/` use `cms-edit://customer/campaign-landers`.
## After save — preview
```bash
cms-edit preview urls <slug>
```
Open **staging** (`https://develop-marketing-site.vercel.app`) for drafts. Production shows published content only.
## Publish handoff
`save` creates drafts only — publish in Contentful UI when approved. See `cms-edit://customer/task-publish-handoff`.