Working research for the ETS27 site redesign. Gathered on 2026-10-13 from public sources only. Nothing was written to any of them.
Companion files: ets-data-model.md (proposed schema, source mapping, concierge questions) and ../prototype/data/ets.sample.json (render fixture).
| Source | How it was read | What it gave |
|---|---|---|
| energythoughtsummit.com HTML | curl of 22 public pages, converted to text | Page copy, navigation, footer, forms, embeds |
WordPress REST (/wp-json/wp/v2/) |
curl, paginated | 21 pages, 91 "Speaker" records, 50 speaker categories, 5 posts, media, Content Blocks, post types, taxonomies |
| Whova public endpoints behind the lineup and agenda widgets | Loaded the widget iframes in headless Chrome, logged the XHR calls, replayed the JSON | ETS26 lineup (147 speakers) and agenda (68 sessions) |
| Eventbrite ETS27 event page | Server-rendered JSON-LD, plus the view-only ticket panel in headless Chrome | ETS27 dates, description, ticket classes and prices. No checkout step was submitted |
Speaker pages (/speaker/{slug}/) |
One pass over all 91 rendered pages | Job title and organization, which REST does not expose (see finding 5) |
Browsers opened for this research were closed afterwards. robots.txt declares Crawl-delay: 10; the single pass over 91 speaker pages was a one-off, and the build should read REST and Whova snapshots, not scrape HTML.
Read these first. Items 1 to 5 differ from, or go beyond, the working assumptions in the project brief.
portfolio records are tagged ets25 (90), ets24 (41), speakers-23 (35), speakers (69), featured (8) and tloy (1). There is no ets26 category. Records were created 2019-08 to 2025-05 and last edited 2025-08-27./lineup/ and /agenda/ contain no speaker or session text in WordPress at all, only Whova embed widgets (a 900 px iframe each). The data is public JSON on whova.com: 147 speakers and 68 sessions. Whova sends no CORS headers, so only a server-side job can read it.{company-title} and {company-name}, backed by custom fields that REST does not expose (meta returns only footnotes and a MonsterInsights flag). content.rendered is raw, unexecuted WPBakery shortcode with the tokens unresolved. Only the bio survives inside [vc_column_text]. Recovery used the rendered page (<span class="company-title">, <span class="company-name">). The durable fix is register_post_meta(..., 'show_in_rest' => true) on the portfolio type./about/ is an unedited Uncode demo template, and /sponsor/ still says "start@ETS19".| Layer | What | Evidence |
|---|---|---|
| CMS and theme | WordPress, Uncode theme with the zpryme-child child theme, WPBakery shortcodes in post content |
Asset paths /wp-content/themes/uncode/ and /zpryme-child/; [vc_row] shortcodes in REST content |
| Hosting and edge | WP Engine origin behind Cloudflare | x-powered-by: WP Engine, server: cloudflare, cf-cache-status headers |
| Plugins seen | Yoast SEO, MonsterInsights (GA4), Gravity Forms (+ reCAPTCHA add-on), WP Engine cache and sign-on, Post Duplicator | REST namespaces yoast/v1, monsterinsights/v1, wpe/cache-plugin/v1, wpe_sign_on_plugin/v1, post-duplicator/v1; page markup |
| Lineup and agenda | Whova event app, embedded | whova-speaker-widget.js on /lineup/, embedagenda.js on /agenda/ |
| Ticketing | Eventbrite, organizer Zpryme, affiliate parameter aff=oddtdtcreator |
Register links, event page |
| Newsletter | Mailchimp (eepurl link and a footer email field) | Footer |
| Video | YouTube channel, "LoFi" playlist, news posts are YouTube embeds | Footer, /news/ |
| Hotels | Passkey booking link | /venue/ |
| Organizer and siblings | Zpryme (zpryme.com), etsinsights.com (research) | Eventbrite organizer text, footer copyright |
21 WordPress pages plus archives. Scope labels: ETS27, ETS26, Evergreen, Archive (past edition, still true), Stale (wrong now), Junk (not ETS content).
| Path | WP id | What it holds | Content source | Scope | Modified |
|---|---|---|---|---|---|
/ (page slug ets26) |
77812 | Hero from Content Block 78148: "FREE YOUR MIND", "...coming soon", "May 3-6, 2027 / Austin, Tx", Register button (ETS27 Eventbrite). Below it the ETS26 body: "Join us April 27-30 in San Antonio, TX > Boeing Tech Center", the 13th-ETS paragraph, a second Register link ("// REGISTER_TODAY") to the ETS26 Eventbrite event, "2026 Thought Leaders" link to /lineup/, a partner logo strip (17 unlinked tiles), five news video cards, a "We Know Events" YouTube video, the "hack_the_planet" mission paragraphs, "// VIEW_AGENDA" |
WPBakery plus Content Blocks | Mixed: ETS27 hero over ETS26 body | 2026-08-26 |
/lineup/ |
77996 | "Lineup" heading, Whova speaker widget, "Call for proposals" link to Whova abstract management | Whova embed | ETS26 | 2025-10-16 (widget is live) |
/agenda/ |
77999 | "Agenda is Tentative - Subject to Change", Whova agenda widget titled "Event Schedule" with four day tabs | Whova embed | ETS26 | 2025-10-23 (widget is live) |
/venue/ |
72289 | Boeing Center at Tech Port, 3331 General Hudnell Dr, San Antonio, TX 78226, phone, website; Hotel Contessa overflow with Passkey link; Westin room block "now full"; shuttle statement; a named Zpryme events contact email | WPBakery | ETS26 | 2026-04-06 |
/partners/ |
72384 | Six tiers, 39 logo images; "Become a partner" paragraph ("...leading up to April"); Gravity form (name, email, involvement interest, message) | WPBakery plus media | ETS26 logos, stale copy | 2026-04-27 |
/gallery/ |
75769 | 55 photos in a lightbox grid, all uploaded August 2023 | WPBakery plus media | Archive (ETS23 photography) | 2023-08-14 |
/contact/ |
72295 | Phone, fax, shared email, Gravity form with Subject list | Gravity Forms | Evergreen | 2024-07-03 |
/news/ |
n/a | Blog archive: five video posts dated 2024-09-24 (ETS14, 15, 16, 17 and 23 recaps) | post type |
Archive | 2024-09-30 |
/ets25/ |
76844 | "2025 Thought Leaders" grid: 90 speaker cards (photo, name, optional "TLOY yyyy" label, title, org). The only WordPress-rendered speaker grid. Nav item "ETS25 Speakers" | portfolio index |
Archive | 2025-08-27 |
/ets24/, /ets24-highlights/ |
75717, 76491 | ETS24 microsite: theme "Imagine", Mon-Thu agenda authored as tabs, 43 speaker cards, highlights page | WPBakery | Archive | 2024-07-03, 2024-05-15 |
/ets23/, /agenda23/, /lineup23/ |
74766, 72523, 72367 | ETS23 microsite: 10th anniversary, Hotel ZaZa Austin, "keep earth weird" theme, four-day tabbed agenda with room names (the agenda page is 1.8 MB of HTML) | WPBakery | Archive (the ETS23 header still shows ETS24 dates) | 2023-08 |
/chicago/, /sacramento/, /at/ |
76737, 76897, 76294 | "ets@events" one-day regional events: Chicago 2024-07-17, Sacramento 2024-10-24, Miami Feb 2025, Research Triangle Jul 2025; media kit PDF; Eventbrite links | WPBakery | Archive | 2024-07 to 2024-11 |
/sustainability-promise/ |
75523 | Sustainability commitments written for an Austin edition (Hotel ZaZa, Cap Metro Austin), exclusive sustainability sponsor SEW | WPBakery | Evergreen with edits | 2023-03-24 |
/sponsor/ |
72294 | "Become a partner" and form; text says "start@ETS19" and "leading up to October" | WPBakery | Stale | 2022-06-02 |
/volunteer/ |
77755 | Gravity form asking availability "5/19-5/22" (ETS25 dates) | Gravity Forms | Stale | 2025-04-29 |
/live/ |
75671 | A heading and nothing else | none | Junk (empty) | 2023-04-06 |
/about/ |
44894 | Uncode demo template ("Informed Creativity", "Demo media", placeholder team photos). The nav "About" item points at #about, not this page |
none | Junk | 2022-05-29 |
/speaker/, /speaker/{slug}/ |
n/a | Portfolio archive and 91 single pages. A single page shows photo, name, company-title, company-name, bio |
portfolio type |
Archive | 2025 |
The REST API lists no other published pages. Sitemaps exist for post, page, portfolio, portfolio_category, page_category and author.
#about), Gallery, Partners, 2026 Lineup, Agenda, Hotel & Venue, Contact, ETS25 Speakers (/ets25/#lineup), Register (button, ETS27 Eventbrite)./contact/?opt=Nominate Thought Leader), Sponsor (/contact/?opt=Sponsor), Partners, Gallery, Contact, LoFi (YouTube playlist), six social icons (Facebook, X, YouTube, Google+ which is dead, Instagram, Mailchimp), "(c) Zpryme".<title>. The home page meta description and one of two Open Graph blocks say "ETS25 | Ethos | May 19-21 2025"; the second Open Graph block has the ETS26 description. There is no usable social image on the home page./wp-json/wp/v2/menus and /menu-items return 401 to anonymous callers.| Endpoint | Anonymous result | Notes |
|---|---|---|
/wp-json/wp/v2/portfolio?per_page=100&page=N&_fields=... |
200, 91 records (x-wp-total: 91) |
REST name for speakers. Max per_page is 100. About 380 KB with content for all 91 |
/wp-json/wp/v2/portfolio_category?per_page=100 |
200, 50 terms | See 6.3 |
/wp-json/wp/v2/pages?per_page=50&_fields=id,slug,title,link,modified,status |
200, 21 pages | Titles and links only; page bodies are WPBakery |
/wp-json/wp/v2/posts |
200, 5 posts | All five are one YouTube iframe each; empty excerpts |
/wp-json/wp/v2/media/{id}?_fields=id,source_url |
200 for 88 of 91 speaker images | media_details (sizes) is stripped from responses. Featured images for Jason Handley (73553), Amy Atchley (74520) and John D. Hewa (75231) return 401 |
/wp-json/wp/v2/uncodeblock |
200, 147 blocks | About ten are real ETS blocks (hero, header, tickets); the rest are Uncode theme demos |
/wp-json/wp/v2/menus, /menu-items |
401 | Navigation must be mirrored by hand |
/wp-json/wp-abilities/v1/abilities |
401 | WordPress Abilities API is present but not public |
Cross-origin: access-control-allow-origin echoes the caller's Origin with credentials allowed, so a browser can call WordPress REST from another origin. Responses carry cache-control: max-age=600, served via Cloudflare.
portfolio (speaker) field mapping| REST field | Holds | Target field | Gotchas |
|---|---|---|---|
id |
WordPress post id | wp.id |
|
slug |
URL slug, permalink is /speaker/{slug}/ |
slug |
john-d-hewa-copy is actually Janet Rehberg (a cloned post that was never re-slugged) |
title.rendered |
Name | name |
HTML-encoded (’); decode |
content.rendered |
Raw WPBakery shortcodes | bio |
See the parsing recipe below |
excerpt.rendered |
First words of the shortcode text | none | Useless; ignore |
featured_media |
Attachment id | photo (via media/{id} source_url) |
3 of 91 return 401; no alt text anywhere |
portfolio_category |
Term ids | categories, edition tags |
See 6.3 |
menu_order |
Sort weight | none | 73 of 91 are 40; effectively unsorted |
date, modified |
Created and edited | wp.created, wp.modified |
Range 2019-08-15 to 2025-08-27 |
(not in REST) {company-title}, {company-name} |
Job title, organization | title, org |
Recover from the rendered page or expose via register_post_meta |
| (not in REST) "TLOY yyyy" label | Thought Leader of the Year honor | honors[] |
Label in markup only: Paul Lau 2021, Emeka Anyanwu 2022, Nancy Bui-Thompson 2025. The tloy term holds one record |
yoast_head_json |
SEO tags | none | Titles read "Name - hack_the_planet [INITIATE]" (pipe-separated in the markup) |
Parsing recipe for content.rendered: decode HTML entities; replace the texturized quote characters that WordPress turned the shortcode delimiters into (U+201C, U+201D and U+2033) with plain quotes; take the text inside [vc_column_text ...] ... [/vc_column_text]; strip tags. Result: 77 of 91 records have a bio (median 158 words, range 40 to 360). The other 14 contain only the template (about 2,000 characters) and no bio. back_image inside [vc_row] is the header background image id; vc_single_image dynamic="yes" means "use the featured image".
| Term | Meaning | Records |
|---|---|---|
ets25 |
ETS25 lineup tag | 90 |
ets24 |
ETS24 tag | 41 |
speakers |
General speaker tag | 69 |
speakers-23 |
ETS23 tag with 44 child terms: 32 match ETS23 session titles verbatim (for example "Outage Prediction and AI"), the other 12 are slot labels (for example "330 Keynote Monday", "Wednesday 840") | 35 |
featured |
Curated highlight | 8 (Paul Lau, Emeka Anyanwu, Nancy Bui-Thompson, Shaun Hoyte, Kimberly M. Britton, Erin Autin, Raiford Smith, David Wade) |
tloy |
Thought Leader of the Year | 1 |
The ETS23 child terms are the only structured speaker-to-session link in WordPress, and they cover 2023 only. One record (Hebah Bukhari) is ETS23-only; 40 are ETS25-only.
| WordPress archive | Whova ETS26 | |
|---|---|---|
| Records | 91 | 147 (123 scheduled, 24 not yet scheduled) |
| Fields | name, bio (inside shortcode), photo, categories; title and org via page scrape | pid, name, title, company, bio, photo, confirmed sessions with role |
| Bios | 77 | 43 |
| Real photo | 88 (3 return 401) | 100 uploaded, 47 generic default avatar |
| Edition | ETS23 to ETS25 | ETS26 |
| Sessions linked | ETS23 only, through category terms | Yes, every scheduled speaker, with Speaker or Moderator role |
Whova speakers by session count: 24 have none, 109 have one, 11 have two, 2 have three, 1 has six. Whova flags 12 "highlight speakers"; all have two or more sessions (14 speakers do), including Zpryme CEO Jason Rodriguez, who has six.
Data-quality items seen in these sources:
'), so strip and decode all Whova text.loc is free text, sometimes a street address, a company, or "Nashville,New York,Ohio". Do not display it raw.| Day | Date | Sessions | Hours |
|---|---|---|---|
| Monday | Apr 27 | 17 | 08:15 to 21:00 (registration, opening, panels, lunch, reception) |
| Tuesday | Apr 28 | 20 | 08:15 to 20:00 (includes parallel breakouts) |
| Wednesday | Apr 29 | 22 | 08:15 to 20:00 (includes parallel breakouts) |
| Thursday | Apr 30 | 9 | 08:30 to 12:30 (half day, closing session, event close) |
| Format | Sessions | Typical length |
|---|---|---|
| Keynote | 12 | 10 to 15 min |
| Panel | 12 | 45 min (a few at 15 to 30) |
| Fireside Chat | 9 | 30 min (15 to 45) |
| Breakout | 6 | 45 min |
| ETS Talk | 3 | 10 to 15 min |
| Town Hall | 3 | 45 min |
| Workshop | 1 | 45 min |
| Feature Short-Doc | 1 | 10 min |
| No format (registration, meals, breaks, receptions, openings and closings) | 21 | 5 min to 8 h 45 min |
sponsors array is empty on every session.type code: 1 for 66 sessions, 10 for the first two receptions, but the third reception is 1. Do not use it to classify.The agenda was typed into Monday-Thursday tabs as lines of "time | title | room" with names and affiliations below. ETS24 marketing framed the event as Imagine, Dream, Create, and used five themes (Decarbonization, Resilience, Equity, Analysis, Modernization) as labels on panels and fireside chats ("Analysis Panel", "Resilience Fireside Chat", "Equity Panel", "Decarbonization Fireside Chat"). ETS23 and ETS24 opened Monday with the EnergyTech University Prize pitch event and workshops. ETS26 dropped the thematic labels, added Town Hall and Feature Short-Doc formats (neither word appears in the ETS23 or ETS24 agendas), and moved to Whova.
/partners/ (display order): Platinum (2), Vanguard (1), Trident (1), Gold (10), Silver (8), Bronze (17). 39 logos. Vanguard and Trident look like single-slot named tiers. The page does not state prices or benefits.bidgley-uai-258x194.jpg) and are cross-checked against ETS26 speaker affiliations and session text; name_confidence marks the uncertain ones (EDO, Bloom, Vision, Bridgewater, Motive and NPUC, ELM, NVIDIA and Oracle)./sustainability-promise/); ETS26 opening reception (SBS), Day 2 reception (Sendero), Wednesday lunch (Itron), named only in session text.-uai-258x155 and -uai-258x194 crops; the originals live at the same path without the suffix./partners/ (interest: Media, Sponsor, Partner, Other), the /sponsor/ form, and /contact/?opt=Sponsor. The copy promises "a personalized campaign" and says "leading up to April".| Action | Where | Notes |
|---|---|---|
| Register | Nav button and home hero go to Eventbrite event 1997048303234 (ETS27). The home body still links to ETS26 event 1549733918869. | Two Register CTAs with different events on the same page |
| Tickets | Eventbrite | Four classes in two audiences and two price phases (below). Hidden tickets exist (hasAvailableHiddenTickets: true). No refunds. Ticket sales end 2027-05-07 23:59 CT per the ticket API (JSON-LD says 2026-12-23) |
| Speak or nominate | /contact/ Subject list, Whova "Call for proposals" link on /lineup/ |
The Whova call is an ETS26 artifact |
| Sponsor | /partners/, /sponsor/, /contact/?opt=Sponsor |
|
| Volunteer | /volunteer/ |
Stale ETS25 dates |
| Newsletter | Footer email field, Mailchimp | |
| Hotel | Passkey link on /venue/ |
ETS26 |
| Contact | Shared email, phone, fax, Gravity form | Subject options: Endorse Thought Leader of The Year, Nominate Thought Leader, Attend, Media, Sponsor, Speak, Other |
ETS27 ticket classes as read on 2026-10-13 (prices include Eventbrite fees; base price is price minus fee):
| Audience | Phase | Price with fees | Fee | Base | Window |
|---|---|---|---|---|---|
| Industry | 1 | $907.78 | $58.78 | $849.00 | On sale, ends Nov 19, 2026 |
| Government & Utility | 1 | $320.89 | $21.89 | $299.00 | On sale, ends Nov 19, 2026 |
| Industry | 2 | $1,227.91 | $78.91 | $1,149.00 | Starts Nov 20, 2026 |
| Government & Utility | 2 | $374.25 | $25.25 | $349.00 | Starts Nov 19, 2026 |
What a ticket includes is not published.
| Content | Class | For ETS27 |
|---|---|---|
| Dates, venue, hotel, shuttle, room names | ETS26 | Replace |
| Lineup, agenda, "2026 Thought Leaders", "Call for proposals" | ETS26 | Replace; new Whova event or CMS |
| Partner logos and tiers | ETS26 | Replace; keep the tier names if still used |
| "hack_the_planet" hero canvas (29 KB raw HTML, includes the 1986 Hacker Manifesto text), tagline, mission copy, #LoveYourEnergy | ETS26 | Retire; hashtag may carry over (Eventbrite ETS27 copy uses it) |
| Home body (13th ETS paragraph, ETS26 Register link) | Stale once the hero changes | Replace |
| ETS27 hero, Eventbrite listing, ticket tiers | ETS27 | Keep; single source needed |
| Contact details, form subjects | Evergreen | Keep |
| Zpryme and ETS descriptions, "We Know Events" video | Evergreen | Keep, refresh |
| Sustainability Promise | Evergreen (Austin-era text) | Revise names and sponsor |
| Gallery (2023 photos), news videos, ETS23 to ETS25 microsites, ets@events pages | Archive | Keep as "past editions"; fold into one archive |
| Thought Leader of the Year honorees | Evergreen program | Keep as a model entity |
/about/, /live/ |
Junk | Delete or rewrite |
/sponsor/, /volunteer/ copy |
Stale | Rewrite |
| Press logos on ETS23 and ETS24 pages (Texas Tribune, TechCrunch, NYT, NBC, Houston Chronicle, Forbes, Chicago Tribune, Bloomberg Businessweek, Austin Statesman, ABC) | Evergreen claim, unverified | Confirm with Zpryme before reuse |
| Gap | Why it matters | Likely source | Interim in prototypes |
|---|---|---|---|
| Venue name, address, rooms, accessibility, parking | Most common visitor question | Zpryme events team | venue.placeholder: true, say "to be announced" |
| Host hotel, room block, booking link, deadline | Second most common | Zpryme (ETS26 used a Passkey link) | FAQ placeholder |
| Travel and local transport | Out-of-town attendees | Zpryme, Austin local content | Sustainability Promise text |
| Lineup (names, titles, orgs, bios, photos) | Core of the site | ETS27 Whova event or CMS | ETS26 speakers flagged as stand-ins |
| Agenda (days, sessions, rooms) | Core of the concierge | ETS27 Whova event | ETS26 program relabeled to ETS27 dates |
| Sponsors and tiers for ETS27 | Revenue and trust | Zpryme partnerships | ETS26 partners flagged as stand-ins |
| Ticket inclusions, group rates, press and speaker rates | Conversion | Zpryme | Listed as "not published" |
| FAQ (dress, accessibility, wifi, refunds, children, dietary needs) | Self-service | Zpryme | 8 starter items, 3 placeholders |
| New Whova event for ETS27 (eid) and call for proposals | Data feed | Zpryme (organizer account) | None |
| Theme story and imagery for "Free Your Mind" | Experience design | Design | Out of scope here |
| SEO and social metadata (title, tagline, description, og:image) | Every share today says ETS25 or ETS26 | Content owner | Out of scope here |
| About page | Trust | Zpryme | Use the home mission copy and Eventbrite organizer text |
Prior Austin context that may help: ETS23 was at Hotel ZaZa, Austin; the ETS24 pages reviewed do not name a venue.
The WordPress site can stay the CMS and the new front end can read it over REST. That works only if four things are done:
company-title and company-name fields (and a TLOY field) on the portfolio type with show_in_rest, and add a public endpoint for navigation. Without the first change, the front end must scrape rendered pages.Operating principles:
ets-data-model.md section 5.1.All URLs are public. The Whova event ids below are public embed identifiers from the page source.
WordPress https://energythoughtsummit.com/wp-json/wp/v2/portfolio?per_page=50&page=1&_fields=id,slug,title,content,excerpt,featured_media,portfolio_category,date,link,menu_order,modified
https://energythoughtsummit.com/wp-json/wp/v2/portfolio_category?per_page=100
https://energythoughtsummit.com/wp-json/wp/v2/pages?per_page=50&_fields=id,slug,title,link,parent,menu_order,modified,status
https://energythoughtsummit.com/wp-json/wp/v2/uncodeblock/78148
Whova https://whova.com/xems/apis/event_webpage/speaker/public/get_speaker_webpage_data/?event_id=r4mBuGC626Esj8gQSgbHcrXZruHCw5gTny4Uh8CMiKU%3D
https://whova.com/xems/apis/event_webpage/agenda/public/get_agendas/?event_id=SX1lc1KEBY2FSjxT1zzey0KCp4cyMTC%403Zg0EYVuZxY%3D
Eventbrite https://www.eventbrite.com/e/ets27-tickets-1997048303234
https://www.eventbrite.com/e/api/1997048303234/ticket-information (called by the page; returns class count, price range, sale window)
The speaker widget and the agenda widget use two different embed ids; both resolve to the event named "Energy Thought Summit (ETS) 2026". The fixture builder joined speakers to sessions through the Whova session id, kept in each fixture session under source.whova_session_id.