PRC Platform 1.14 is the Religious Projections soft-launch. It also ships Contact Manager, first-login wp-admin tours, Chart Builder 3.15, Quiz Builder 4.4, and Email Builder 1.4. Linear: PRC Platform v1.14.0 (target 31 August 2026).
Highlights
- Religious Projections pages: world template, timeline play/pause, jump-to navigation, navigation list mega-menu, religion icons, and region/religion data tables
- Data Table Builder controls for alignment, bold columns, CSV download, mobile cards, and searchable filters
- Chart Builder 3.15: screenshot providers, legend controls, color-vision preview, and chart downloads
- Email Builder: send-on-publish, subject/preview limits, a Build audience hub (including CSV upload), and Mandrill engagement stats
- Quiz Builder: complex results tables, histogram editing, and stronger live feedback
- Contact Manager (CRM) with form upsert and email activity
- First-login tours, a welcome splash, and grouped wp-admin menus
Religious Projections
This is the headline of 1.14 (Linear 1.14.0).
- World gets its own template instead of reusing the Region layout (#4746). Entity templates resolve by hyphenated slugs that match URL paths (
region/world→region-world) (#4817). - Shared patterns refresh home and entity templates; Explore More buttons follow curated
explore_morelinks (#4744, #4791, #4792). - Available Destinations religion button labels use religion colors. World, country, and region links stay black (#4904).
- Available Destinations has a Religion icons style: seven 60×60 circle links to religion pages (#4904).
- Religion, region, and country pages get a breadcrumb trail that starts with a home icon (Religious Projections root) and a dropdown (Religions, Regions, or the parent region) so readers can jump to a sibling page (PRC-54, #4899, #4927).
- Projections: Sentence Name reads “Religion in {name}” on country and region pages. Religion pages still use the group label only (for example Jews) (#4923).
- Extra country top-10 bullets now sit in the main bullets list (for example Argentina, Australia, Bangladesh) (#4906).
- Jump-to search and a keyed navigation tree help readers move between countries, religions, and regions (#4680, PRC-607).
- Timeline scrubbers play and pause, reload the correct year when the religion changes, and stay live after in-app navigation (PRC-832, #4708). Play/pause is a circular outlined button (#4811).
- Age pyramids show 2020 and 2070 under-age-5 callouts; globe locators fade with the country name; charts size to their grid cell (PRC-832).
- Region and religion pages use Data Table presentation: sheet-aware titles, mobile card headers, pastel mobile cell colors, and CSV downloads for reader-facing charts (PRC-727, #4697).
- Religion pages can show an SVG icon beside the title. Table header accents use the matching religion icon color when Header styling is on. Year and Total columns stay plain (#4879, #4889, #4943).
- Country and religion templates can show an extra-religion details toggle when both title and content exist (for example Jewish identity on Jews/Israel) (#4879). Add the bound icon and toggle to existing templates; new inserts get them from the pattern files.
- A Projections: Logo pattern binds the brand mark without a route path (#4889).
A Navigation Panels block supports the projections mega-menu layout (#4687). A Navigation List block fills that menu from context (alphabetized groups, preformatted sections, popular links) and closes the mega-menu on in-app navigation (PRC-604, #4707). The mega-menu pattern (prc-religious-projections/mega-menu) ships those blocks together: country/territory search, popular searches, Browse by Religion, and Explore by Region with locator globes and a World country list (#4823). Browse by Religion uses plugin-hosted SVG icons (#4879, #4889). The header mega-menu select opens the dialog and focuses in-menu search, so readers can type without a second click (#4891). Country results stay hidden until the reader types. Congo and Micronesia use alphabetized labels; “DRC” and “Congo-Kinshasa” match the Democratic Republic (#4914).
Data tables
Data Table Builder is the table engine behind projections pages and other table blocks (PRC-602, #4540).
- Separate header and body alignment; center text on mobile (#4750, #4751).
- Bold selected columns (PRC-727).
- Download the current table as CSV, with sheets merged (#4728).
- Optional desktop number abbreviation (K/M/B/T) (#4728).
- Per-sheet dropdown columns and a highlighted active filter row (PRC-55, #4672).
- Filter Select can let readers type to narrow a long option list (#4858).
- Data tables remount after in-app navigation so the correct table stays on screen (#4902).
- Data tables use theme colors in dark mode. Mobile heatmap cells pick contrasting ink (#4932).
- Header styling is one toggle. Religion columns pick the icon color automatically; per-column color pickers are gone (#4943).
- Data Table Key can show a reset item that clears the active key filter (#4858).
- Column sort stays when readers filter, switch keys, or change sheets (#4858).
- Iceland and Slovenia ISO codes pass validation (#4711).
Chart Builder 3.15
Chart Builder 3.14 shipped in 1.13. 1.14 bumps the plugin to 3.15.0. Existing published charts keep their look unless an author edits them.
- Chart PNG capture can use ScreenshotOne (auto-detect default), Cloudflare Browser Rendering, the Firebase
screenshotElementrender function, or a signed HTTP endpoint (PRC-625, #4713). Pin a slug withPRC_PLATFORM_CHART_SCREENSHOT_PROVIDER. Firebase reuses the Print Engine headless Chromium function; it is not a second Puppeteer service. - Charts → Settings → Screenshot Settings lets admins pick a provider (when the VIP constant is not set) and set capture defaults: selector, delay, scale, padding, and fallback chart size (#4946).
- Legend customization and annotation position controls (PRC-823, #4678).
- Color-vision preview and workflow status in the chart publish step (PRC-816, #4642).
- Research Teams taxonomy on chart posts (PRC-806, #4639).
- Download from chart-provider assemblies (PRC-841, #4709).
- Nested freeform charts use a slim picker and scale in preview (PRC-820, PRC-821).
- Decimal Places is the authority for tooltip and label rounding (PRC-819, #4650).
- Diff columns keep authored plus signs (for example
+3) instead of dropping them on save (PRC-866, #4787). - Small-multiple custom labels render again on column, bar, and pie charts (PRC-872, #4787).
- Pie category-ring labels use Chart Builder custom text instead of the raw category value (PRC-909, #4957).
- Map threshold legends keep
<and>after save instead of showing HTML entities (PRC-877, #4787). - Network diagram block for interactives (#4643, #4595).
Email Builder and newsletters
Email Builder is 1.4.0 on 1.14.
- Optional send on publish for Mailchimp campaigns, with a setting to turn it off (#4379, #4718). A second editor save after publish no longer unlinks the campaign or creates a duplicate Mailchimp draft (PRC-889, #4861).
- Subject line is required before publish or send (#4717).
- Live character counts on subject (78) and preview text (120) (#4719).
- Newsletter list archives inherit Mailchimp audience and segment; Latest Newsletter Preview follows that list (#4723, PRC-855).
- Newsletter Lists can pin a Preview newsletter for that archive. Empty still shows the latest published campaign (#4855).
- Newsletter list is a Block Area taxonomy, so modules can resolve on list archives such as
/newsletter/the-briefing/(#4720). - A 24-hour Slack follow-up posts Mailchimp opens, clicks, and bounces in the same publish-announcement thread (#4809).
- Transactional and system emails show opens, clicks, and volume in the Engagement panel and the email library from full-audience Mandrill data, not only CRM contact history (#4824).
Build audience hub
#4774 adds one Build audience hub on Emails → Transactional. This is on release/1.14. Editors can build Mandrill recipient lists from:
- Firebase Auth email domains
- Quiz group creators
- Dataset downloaders
- A CSV file of email addresses (#4833)
The build runs in the background. You can leave the screen. When a list is ready, Create transactional email still opens a draft. Quiz and dataset inspector panels use the same job path, so those screens no longer sit on a long request.
Built-audience cards use DataForm. Each card has Update (was Rebuild). Create email draft and Delete sit in More actions (#4822).
Firebase audience functions should deploy before WordPress starts those jobs. Hard-refresh Emails → Transactional after deploy so list CSS reloads.
Quiz Builder
Quiz Builder is 4.4.0 on 1.14 (1.13 shipped 4.3.0).
- Complex result table style with per-answer population percentages, a DataViews modal for demographic breaks, and a mobile card layout (#4777, #4793).
- Public-score histogram bins edit from the Quiz Controller (Edit Histogram Data); the Result Histogram block is the chart only (#4797).
- Live feedback on single-choice and thermometer questions now highlights the correct answer when the participant is wrong.
- Groups Enabled inserts a locked Group Results block; turning groups off asks whether to keep or delete it.
- Quiz editors can generate a Mandrill audience of group creators and open a transactional email draft (#4715).
- Click a month on the year heatmap in quiz submission analytics to open that month’s daily view. The month dropdown still works (PRC-600, #4852).
- Progress Circles gain a skip control; designers can pin the bar with block Position → Sticky.
- Working on filter works on Quizzes → All Quizzes.
- Knowledge quizzes that score 0 (for example every answer Not sure) now save instead of failing with “No score provided” (PRC-895, #4883).
Contact Manager
1.14 adds PRC CRM as a new plugin (#4684).
- Browse contacts in DataViews, save named segments, and compose Email Builder messages to one contact or a group.
- Quick add creates a contact from the list without leaving the screen.
- Forms can Create CRM Contact on submit (upsert on matching email). The Forms Responses list can do the same for selected rows.
- Contact field editing lives in a locked Gutenberg block; email and share activity stay in the sidebar.
- Mandrill opens, clicks, unique rates, and
?crmShare=hit counts attach to the contact.
Emails, Forms, and Contacts group together in wp-admin (#4743).
wp-admin: tours, lists, and menus
- First-time editors get product tours for DataViews and Email Builder (PRC-856, #4721).
- First login shows a welcome splash with Create a post and Create a chart (#4727).
- Later overlays can load from a Splash Screen block on these release notes so existing editors see each new tour (#4739, #4741).
- Sidebar items group into eleven editorial clusters (Decoded, RP, Toplines, A/B Testing, and others) (#4759).
- DataViews lists show color status pills: Published, Draft, Scheduled, Private (PRC-836, #4703). List appearance (layout, density, columns, last-used filters) stays in the browser per post type (#4810). Admin bar flyouts (for example Visit Site) stay above the left menu on those lists (#4918).
- Drafts that are future-revision forks show Future Revision; the published parent shows Has Future Revision (PRC-879, #4784).
- Help Center searches the docs site instead of the retired wiki (#4763). Get Help bug reports post to Slack
#prc-platform-support(Asks), not a new Linear issue. Search, preview, and “me too” stay on Linear (#4856).
Publishing, files, and research products
- Publish Workflows owns the publication checklist. Other plugins register checks with it (#4783).
- Workspace shelves can link one Linear project and one Asana project, then show live issues and tasks (#4917). Tracker rows stay full height when a project has many items (#4930).
- Editors can drag workspace shelf panels (Files, Add link, Search, Linear, Asana) into a new order. The order stays in the browser. Reset panel order restores the default stack (#4949).
- Workspaces accept Site Editor template and template-part links the same way they accept synced patterns (#4921).
- Reports with multi-section chapters can Watch child posts. The toggle adds you to each chapter, not every parent watcher (#4831, #4844). Watcher pipeline alerts are Slack-only; staff without a Slack user ID no longer get email (#4828). The WordPress profile has Connect Slack / Reconnect Slack to fill that ID from the profile email (#4872).
- Private Files block and user-account DRM for zip, images, and other downloadables. Dataset download uses that grant (PRC-878, #4765). Signed-in readers can search the list, download a zip of every file in the block, and star files on their account (#4951). Download stats in the inspector are per block instance, not one ledger for the whole post (#4956).
- Social message copy lives in paragraphs inside the platform preview. Editors can leave markdown comments that do not publish. Legacy
contentmigrates when the post is opened (#4948). - Dataset download stats: click a month on the year heatmap to open that month’s daily view (#4852).
- Roper iPoll questions store as private
survey-questionposts; Dataset Options lists associated questions (PRC-240, #4706, #4733). - Topic page ledes show the content format (for example Report) instead of the primary topic (PRC-870, #4732).
- Homepage screenshot can become the featured image (#4531).
- WordPress is 7.1 on this line (#4725).
- Slack chat and publish notices go through one PRC Nexus agent (PRC-837, #4704). A Parse.ly first-day stats reply can thread under the publish notice. Sent Mailchimp campaigns get a 24-hour stats reply in the same thread (#4809). Hosted staging can opt into
#publish/#decodednotices under Settings → PRC Slack; production always sends (#4827).
Also in this release
- Print
/printno longer 404-guesses onto unrelatedprint-*posts (#4802). - Print cover type matches the spec: Abril title and subtitle, Franklin Gothic BY, a 285px logo, and a running header with a bold page number plus gray PEW RESEARCH CENTER (#4870, #4801).
- Print body headers, About this research, chapter H3s, and italic Georgia H5s follow the type spec. Chapter titles lose the gold underline (#4870).
- Print loads the full-resolution file for
size-200-wide,size-310-wide,size-420-wide, andsize-640-widecharts (#4870). - Headings inside
core/detailsstay smaller than the summary (#4786). - Forms can submit when they omit the captcha block, instead of waiting forever.
- Form Input Select search finds countries by common names (“america” / “usa” → United States, “uk” → United Kingdom, “DRC” → Congo, Democratic Republic) (#4884, #4914).
- Form Input Select dropdowns stay readable in dark mode (#4959).
- Grid-aware group dividers run horizontally when columns stack, instead of leaving a vertical line on the lower child (#4924).
- Slideshow carousels keep wide slides (for example two-column Key Findings) inside the track, so the page does not scroll sideways (#4885).
- On small viewports, slideshow arrows sit at the block edges and the play control is hidden. Dot indicators stay centered and tappable (#4895).
- Carousel slides have a Stretch to fill vertical alignment so columns and groups can use leftover height (#4898).
- Carousel arrows and dots stay visible in dark mode (#4910).
- Breadcrumbs can start with a home icon and include a clickable dropdown crumb. Regular article trails stay the same when those options are off (#4899).
- Breadcrumb dropdowns open on click only, not on hover. Escape and outside click still close the menu (#4911).
- Breadcrumb dropdowns close when a reader clicks a submenu link, including in-page / hash navigation (#4915).
- Breadcrumb dropdown panels use the theme surface color in dark mode (#4934).
- Link-style core buttons show an underline on hover and keyboard focus (#4900).
- Staff bylines, publication listings, SlideShare embeds, and combobox option commits have reliability fixes.
- Report Materials skips broken meta so the list does not print “Array” as a link label (#4859).
- Contractors can use dedicated media groups with a WP-CLI lifecycle (#4770).
- Roper question search year filters read Start and End instead of After and Before (PRC-689, #4820).
- Apple News editor preview keeps type at ANF point size instead of shrinking to fit the phone frame (#4838).
- Apple News editor preview scrolls from the article title instead of clipping the top. Layout conditionals use the iPhone frame width (PRC-617, #4877).
- Floated and inline HTML images in Apple News become photo components. They center on phone and keep column floats on iPad and desktop (#4877).
- Following paragraphs wrap around left/right Apple News images, so iPad and desktop no longer show an empty column beside the photo (PRC-617, #4881).
- Report packages with chapters publish to Apple News as one article. Chapters are inlined in order, not listed as “Also in This Report” (#4839).
- Apple News update pushes persist revision and share URL after a successful API call, instead of failing on the return type (#4840).
- Essay templates no longer get a second title or byline in Apple News. Report packages get one template table of contents after chapter stitch (#4848).
- Block Visibility has an Apple News control: hide on Apple News, Apple News only, or default (web and Apple News) (#4849).
- Delete from Apple News asks in a Cancel/Delete dialog instead of the browser confirm box (#4857).
Before you start
- Religious Projections is a soft-launch. Confirm the templates and navigation you need before you treat a page as final. Existing religion and country templates need an editor pass to add the bound title icon, extra-religion details, and logo if you want those chrome pieces (#4879, #4889).
- Chart Creation wizard from 1.13 is still optional under Charts → Settings.
- Print Engine remains a staff beta on the primary site.
- Send-on-publish is a Newsletter Builder setting. Turn it off if authors should send from Campaign Setup only.
- Hard-refresh Emails → Transactional and All Posts after deploy, so list CSS reloads.
Technical activation
These steps are for operators. They are new or different from 1.13. Commands and file paths are in the changelog. It is crucial to review these changes to ensure a smooth transition and proper system operation.
Firebase Cloud Functions
1.14 adds audience HTTP functions that 1.13 does not have: enqueueAuthDomainAudience, enqueueDatasetAudience, enqueueQuizGroupOwnersAudience, plus the RTDB worker runAuthDomainAudience. Redeploy the default audience codebase on staging and production with firebase/bin/deploy-audience-functions.sh. That script also locks IAM (no allUsers).
Redeploy render (screenshotElement now honors deviceScaleFactor) with firebase/bin/deploy-render-functions.sh.
Redeploy vip-logs (shipVipLogsToProfound) with firebase/bin/deploy-vip-logs-functions.sh so typed GCS folders classify correctly.
VIP Log Shipping
After the 1.14 drain is live, open the VIP Dashboard for production → Logs → Log Shipping. Switch Shipping Contents to the modern typed format so objects land under pewresearch/production/http_requests_edge/ and pewresearch/production/http_requests_origin/ (VIP log shipping).
The drain still accepts legacy dated paths (…/YYYY/MM/dd/…). It now skips slow-query, application, and batch objects instead of treating every production path as HTTP. Do not enable those extra types unless you want skip traffic in function logs.
If the WordPress Profound plugin is still writing agent_analytics_logs, turn Enable Logging off. Do not dual-write. See firebase/functions-vip-logs/CUTOVER.md.
Slack app (PRC Nexus)
1.14 unifies chat and notices into one PRC Nexus app (#4704). 1.13 used the Trending News Slack app and different webhook paths.
- After WordPress is live, apply
plugins/prc-slack/manifest.production.yml(orwp prc-slack manifest --env=production). Staging usesmanifest.staging.yml. - Point Event Subscriptions and Interactivity at
/wp-json/prc-slack/v1/eventsand/wp-json/prc-slack/v1/interactions. Old TNA and Nexus paths ACK for one release and sendDeprecation: true. - Confirm bot scopes include
assistant:write,chat:write,im:write,app_mentions:read,reactions:write, andusers:read.email. Turning on agent_view on a live Slack app is irreversible. Re-apply the manifest after 1.14 so Help Center Asks can add the ticket reaction (#4856). - Invite PRC Nexus to
#publish,#decoded, and#prc-platform-support. Production usesPRC_PLATFORM_SLACK_TOKENonly. - Watcher pipeline alerts are Slack-only. Staff need a
prc_slack_user_idprofile field or they get no alert (#4828). After the app hasusers:read.email, they can use Connect Slack on their WordPress profile (#4872). - Hosted staging (alpha, beta, canary): Settings → PRC Slack → Enable publish notices if that site should post to
#publish/#decoded. Production always sends. Local never sends (#4827).
Cursor Origin app (Platform Factory)
1.14 posts Cursor Origin pull request events to Slack (author DMs, reviewer requests, trunk merges, backport merge button). This is a Cursor Origin app, not a second Slack app. WordPress is the app (#4832).
- Create an internal app at codebase app settings. Generate a PKCS#8 Ed25519 pair locally. Upload only the public key.
- Copy Origin webhook URL from Settings → PRC Slack (
/wp-json/prc-slack/v1/origin/webhooks). Subscribe topull_request.created,pull_request.reviewer.added,pull_request.reviewer.rerequested,pull_request.review.submitted, andpull_request.merged. - Install the app on the Pew Research codebase with
repository:pull_requests:readandrepository:contents:write. Copy the installation ID (i_…). - Store
PRC_PLATFORM_ORIGIN_APP_ID,PRC_PLATFORM_ORIGIN_APP_KEY_ID(optional),PRC_PLATFORM_ORIGIN_APP_PRIVATE_KEY, andPRC_PLATFORM_ORIGIN_INSTALLATION_IDin Platform Secrets / VIP env vars. Do not paste the private key into settings. Constants load on the next deploy. - Invite PRC Nexus to the private engineering channel. Set the
C…channel ID, bot logins, and optionallogin = emailroster. Confirm Settings shows Origin API credentials: Configured. Then turn on Enable Platform Factory notifications.
Factory messages use the same notice gate as publish notices. Full steps: Register the Origin app.
Chart screenshots
1.14 Chart Builder can call the Firebase screenshotElement function (same Print Engine Chromium job as /print). Redeploy render functions first. Provider order is VIP constant → Charts → Settings → Screenshot Settings → auto-detect (ScreenshotOne → Cloudflare → Firebase → endpoint). Pin PRC_PLATFORM_CHART_SCREENSHOT_PROVIDER to firebase if you want Firebase on every site. prc-firebase must be active and prc_platform_firebase_render_endpoints must include screenshot_element.
ScreenshotOne remains the auto-detect default when its keys are set. Confirm PRC_PLATFORM_SCREENSHOTONE_ACCESS_KEY and PRC_PLATFORM_SCREENSHOTONE_SECRET_KEY. Rotate those keys if production logs already captured a signed /take URL (#4819).
After WordPress deploy
- Hard-refresh Emails → Transactional and list screens so DataViews CSS reloads.
- Confirm PRC CRM is network-active if the site does not auto-enable new plugins. Tours load through the plugin loader.
- Existing published charts do not change until an author edits them.
- Workspace Linear and Asana trackers need
PRC_PLATFORM_LINEAR_API_KEYandPRC_PLATFORM_ASANA_TOKENin VIP (#4917).
Learn more
- Changelog: changelog.md
- Firebase functions: firebase/README.md
- Slack Nexus migration: docs/plugins/prc-slack/migration-guide.md
- Origin Factory app: docs/plugins/prc-slack/architecture.md
- Linear release: PRC Platform v1.14.0
- Compare:
origin/release/1.13...origin/release/1.14(1.13 cut 10 August 2026; 1.14 cut 26 August 2026) - Previous release notes: 1.13 announce