How It Works

1. Add a Database to Notion

Create a Notion database with the properties your page needs. The template auto-detection system scores your database schema against 12 registered templates and picks the best match. A Case Studies database with “Client Name”, “Industry”, “Challenge”, “Solution”, “Results” properties automatically maps to the case study pattern.

2. Connect & Sync

Register the database in Settings > Voyager Blocks > Notion with an alias. Run wp voyager notion sync --database=case-studies and WordPress creates notion_page posts at /n/{slug}/ with all Notion properties stored as post meta.

3. Pages Render Automatically

Each notion_page post uses the voyager/notion block binding source to pull live data from Notion. The pattern template renders headings, body text, buttons, and badges — all bound to Notion properties. Edit the Notion row, and the page updates on the next cache cycle (up to 15 minutes via polling, or instant via manual flush).

12 Page Types

Every page type has a single-page template (for individual entries at /n/{slug}/) and most have an archive pattern (for listing pages). All live with real data on this site.

Content & Marketing

Support Articles — Knowledge base with interactive category filters. 3 articles, 3 categories.

Case Studies — Portfolio grid with industry pills, metrics, and challenge snippets. Links to full case study pages.

Changelog — Reverse-chronological release feed with type badges (Feature, Fix, Improvement) and product tags.

Ad Landing Pages — High-conversion pages with A/B headline testing, geo-personalized eyebrows, and Notion-managed CTAs.

Business Operations

Pricing — Dynamic pricing grid with popular tier highlight. Prices and features managed in Notion.

Events — Upcoming/past split with registration and recording links. Auto-classifies by date.

Careers — Jobs board grouped by department, filtered to open positions only.

Team — Photo grid with roles, department badges, and fun facts. Edit in Notion, site updates.

Client Dashboard — Private status pages with sprint details, deliverables, milestones, and KPIs per client.

The Technology

Block Bindings

WordPress 6.5+ Block Bindings API lets any block attribute resolve from a data source at render time. Our voyager/notion binding source connects to Notion’s API, caches results, and resolves 14 Notion property types (title, rich_text, select, multi_select, date, number, checkbox, url, email, phone, relation, formula, rollup, files).

Multi-Source Bindings

A single page can combine multiple binding sources. The ad landing page uses 4 sources simultaneously: voyager/notion (headlines, CTAs), voyager/geo (city name), voyager/ab-test (headline variant), and voyager/site-data (phone, email). See the Block Bindings Showcase for all 12 sources.

Auto-Sync & Cache

Three-layer freshness: Triple-layer caching (in-memory, row transient, page transient) keeps pages fast. 15-minute polling via WP-Cron checks each database’s last_edited_time and flushes stale caches automatically. Manual flush from admin or CLI for instant updates. The voyager_notion_synced action hook lets other systems react to sync events.

Cursor Pagination

All 6 PHP-rendered archive patterns use Notion API cursor-based pagination. No 50-item cap — the system fetches all pages until has_more is false. This means your changelog can have 500 entries and they’ll all render.