diff --git a/.github/reports/2026-10-23-dev-live-launch-audit.md b/.github/reports/2026-10-23-dev-live-launch-audit.md new file mode 100644 index 00000000..04e4b53b --- /dev/null +++ b/.github/reports/2026-10-23-dev-live-launch-audit.md @@ -0,0 +1,103 @@ +# DEV vs LIVE launch-readiness audit + +Date: 2026-10-23. Read-only audit. LIVE: lightspeedwp.agency. DEV: ls-agency.lightspeedwp.dev. Nothing was edited on either site. + +## Summary + +- LIVE has 69 published pages, 151 published posts, 19 published projects. +- **Posts:** all 151 present on DEV at identical URLs. +- **Pages:** 65 of 69 resolve on DEV (one via a 301). **4 do not (404).** +- **Projects:** all 19 resolve via 301 from `/portfolio//` to `/work//`. The `/portfolio/` archive itself 404s. +- **Redesign status of the 65 resolving pages:** 16 redesigned clean, 9 redesigned with defects, **40 still old, broken or blank.** + +## Blockers: LIVE URLs that 404 on DEV + +| LIVE URL | DEV state | +|---|---| +| /briefing/request-a-quote/ | DEV page 45865 exists but is DRAFT | +| /client-intake-form/ | DEV page 38058 exists but is DRAFT (its published child /client-intake-form/thank-you/ works) | +| /free-woo-consultation/ | DEV page 51498 exists but is DRAFT, no content | +| /briefing/about-page-content/ | DEV page 46015 exists but slug is `about-us-page` (no redirect) | +| /portfolio/ (projects archive) | DEV equivalent is /work/; no redirect from /portfolio/ | + +Handled by redirect already: /solutions/hosting/ → /services/hosting/ and all 19 /portfolio// → /work//. + +Taxonomy archives on LIVE sitemap that 404 on DEV (low priority): /portfolio-group/elearning/, 5 × /project-type/*, /project-tag/branding/, /project-tag/content-management/, /project-tag/featued/. Post tags (24) and authors (3) all resolve. + +## Pages that still need the redesign (old, broken or blank) + +| LIVE path | Status | Note | +|---|---|---| +| /briefing/woo/ | BROKEN | Form text dark-on-black, unreadable | +| /briefing/wordpress/ | OLD | Unstyled Gravity form | +| /client-feedback/ | OLD | Default checkboxes/button | +| /client-intake-form/thank-you/ | OLD | Legacy thank-you layout | +| /contact/thank-you/ | OLD | Legacy thank-you layout | +| /free-consultation/thank-you/ | OLD | Legacy thank-you layout | +| /getting-started-with-lightspeed/ | OLD | Plain text, no hero | +| /mailpoet-manage-your-subscription/ | OLD | Legacy layout | +| /mailpoet-re-engangement-page/ | OLD | Legacy layout | +| /mailpoet-unsubscribe-confirmation/ | BROKEN | Raw [mailpoet_page] shortcode text visible; unreadable button | +| /mailpoet-unsubscribe-success-page/ | OLD | Legacy layout | +| /policies/ | OLD | Plain text | +| /policies/corrections/ | OLD | Plain text | +| /policies/diversity-content/ | OLD | Plain text | +| /policies/diversity-staffing/ | OLD | Plain text | +| /policies/ethics/ | OLD | Plain text | +| /policies/feedback/ | OLD | Plain text | +| /policies/ownership-funding/ | OLD | Plain text | +| /policies/publishing-principles/ | OLD | Plain text | +| /referrals/ | BROKEN | Overlapping buttons/logo strip, unstyled form | +| /referrals/thank-you/ | OLD | Legacy thank-you layout | +| /services/content/audit/ | BROKEN | Overlapping CTA/logo strip, unreadable button | +| /services/content/collection/ | OLD | Legacy layout, dark-on-dark button | +| /services/content/strategy/ | OLD | Legacy layout, empty white band | +| /solutions/lsx/ | BROKEN | Unreadable "Key Features" text; "Couldn't load plugin" PDF embed | +| /team/ | OLD | Old team page; titles differ from new /about/team/ | +| /testimonials/ | BROKEN | Testimonial cards are blank white boxes (no quotes/images) | +| /thank-you-content-audit-post/ | OLD | Legacy thank-you layout | +| /thank-you-for-subscribing/ | OLD | Legacy thank-you layout | +| /thank-you-newsletter-subscribe/ | OLD | Legacy, duplicate headings | +| /wcct-sticker-competition/ | OLD | Legacy layout | +| /website-development-project-terms-conditions/ | OLD | Plain legal text | +| /website-packages/ | BROKEN | Package blocks have no visible text; empty boxes | +| /why/ | BLANK | Title + one image only | +| /why/lightspeed/ | OLD | Legacy layout | +| /why/lsx/ | BROKEN | Overlapping cards, lorem ipsum in LSX Tour Operators card | +| /why/mailchimp/ | BROKEN | Page titled Mailchimp shows Mailpoet content; invisible logo | +| /why/tour-operator/ | OLD | Content is actually WooCommerce copy | +| /why/woo/ | OLD | Legacy layout | +| /why/wp/ | BROKEN | Sparse, overlapping buttons | + +Notes on likely replacements (inferred, please confirm): `/policies/*` probably maps to the blank new pages under `/about/` (privacy-and-terms, diversity, publishing-principles-ai-ethics); `/team/` to `/about/team/`; `/solutions/lsx/` to `/lsx/` (currently blank "being rebuilt"); `/why/*` is unclear. If these are meant to be replaced, they need redirects as well as content. + +## Redesigned pages with defects to fix + +| Path | Defect (from visual review) | +|---|---| +| /blog/ | Stat cards ("18/12/24") look like placeholder data | +| /contact/ | FAQ is about design systems (wrong topic); Email field split into two inputs | +| /services/ | Hero colour-swatch panel (hex codes) looks like leftover design-doc content | +| /services/content/ | ~100px empty gap before FAQ; no case study | +| /services/email-marketing/ | Blank dark band before FAQ (empty case-study slot?) | +| /services/security/ | Large empty band before FAQ | +| /services/support/ | Case-study block labelled "Discovery in practice" (wrong copy) | +| /services/training/ | Blank dark band after "What you receive"; "See training in practice" link has no target | +| /solutions/ | 7th card (AI Chatbots) orphaned | + +## Redesigned and clean + +/, /about/, /about/culture/, /about/history/, /about/process/, /free-consultation/, /privacy-policy/, /services/design/, /services/development/, /services/discovery/, /services/migrations/, /solutions/hosting/, /solutions/tour-operators/, /solutions/woocommerce/, /solutions/wordpress/, /terms-conditions/ + +## DEV-only pages that are published but blank (title only) + +These do not exist on LIVE, but they would go live empty: /faq/, /faq-2/ (duplicate), /pricing/ and 5 children (foundation, growth, enterprise, how-we-price-work, pricing-principles), /guarantees/, /systems/ and 3 children, /solutions/ai-readiness/, /about/ai-governance/, /about/community-events/, /about/diversity/, /about/publishing-principles-ai-ethics/, /about/privacy-and-terms/, /book-a-call/, /services-landing/, /woocommerce-redesign/, /wordpress-redesign/, /woocommerce-solutions/, /tour-operators-solutions/, and /lsx/ + 2 children ("being rebuilt"). 28 pages in total. Also /briefing/ and /briefing/about-us-page/ are old content. + +Draft-only on LIVE (not blockers): 9 pages, including 6 Mailchimp pages and a Website Briefing page. + +## Method and limits + +- Page and post lists from both MCPs plus LIVE Yoast sitemaps; every LIVE URL requested on DEV (GET only). +- Content state from rendered HTML (overlap of LIVE text on DEV), theme `ls-` classes, and a read-only DB query on DEV. +- Visual review: 179 full-page screenshot segments at 1280px, reviewed by four sub-agents. Their defect notes are observations from screenshots; spot-check before acting. +- Popups: LIVE has 2, DEV has 3 (not public URLs, not compared). Server-level redirects were inferred from HTTP responses only. diff --git a/.github/reports/2026-10-23-pre-launch-todo.md b/.github/reports/2026-10-23-pre-launch-todo.md new file mode 100644 index 00000000..a0e4dced --- /dev/null +++ b/.github/reports/2026-10-23-pre-launch-todo.md @@ -0,0 +1,58 @@ +# Pre-launch to-do (DEV vs LIVE) + +Date: 2026-10-23. Based on the DEV/LIVE audit and the decisions made in chat. Items marked CONFIRM are my defaults and need a yes/no. + +## 1. Redirects to set up (no page build needed) + +| From (LIVE URL) | To | Note | +|---|---|---| +| /portfolio/ | /work/ | Individual /portfolio// projects already redirect | +| /briefing/request-a-quote/ | /free-consultation/ | Form 3 is retired; brief popup replaces it | +| /client-intake-form/ | /free-consultation/ | Same as above | +| /client-intake-form/thank-you/ | /free-consultation/thank-you/ | Only used by retired form 3 | +| /free-woo-consultation/ | /free-consultation/ | Same consultation form (form 4) | +| /briefing/woo/ | /briefing/wordpress/ | Woo marketing copy retired | +| /briefing/about-page-content/ | /briefing/about-us-page/ | Slug changed on DEV (CONFIRM page still needed) | +| /team/ | /about/team/ | New team page is built | +| /why/lightspeed/ and /why/ | /about/ | Also update the footer link | +| /why/wp/ | /solutions/wordpress/ | | +| /why/woo/ | /solutions/woocommerce/ | | +| /why/tour-operator/ | /solutions/tour-operators/ | LIVE page is a copy of the Woo page | +| /why/lsx/ | /solutions/design-systems/ | CONFIRM | +| /why/mailchimp/ | /services/email-marketing/ | | +| /policies/diversity-content/, /policies/diversity-staffing/ | /about/ | Diversity page dropped for launch (CONFIRM) | +| /policies/, /policies/publishing-principles/, /policies/ethics/, /policies/corrections/, /policies/feedback/, /policies/ownership-funding/ | /about/publishing-principles-ai-ethics/ | Needs that page filled (CONFIRM mapping) | +| /solutions/lsx/ | /solutions/design-systems/ or /lsx/ | /lsx/ is blank today (CONFIRM) | + +## 2. Pages to redesign before launch (17) + +- Thank-you: /contact/thank-you/, /free-consultation/thank-you/, /thank-you-content-audit-post/, /thank-you-newsletter-subscribe/, /referrals/thank-you/ +- MailPoet: /mailpoet-manage-your-subscription/, /mailpoet-unsubscribe-confirmation/ (raw shortcode visible), /mailpoet-unsubscribe-success-page/, /thank-you-for-subscribing/ +- Content and utility: /testimonials/, /getting-started-with-lightspeed/, /client-feedback/, /website-development-project-terms-conditions/, /briefing/wordpress/ +- Kept by decision: /website-packages/ (broken, no text), /referrals/ (live form 5), /services/content/collection/ + +## 3. Fix defects on redesigned pages (9) + +- /services/support/: case-study block labelled "Discovery in practice" +- /services/email-marketing/, /services/security/, /services/training/: empty band before FAQ; training "See training in practice" link has no target +- /services/content/: empty gap before FAQ +- /contact/: FAQ about design systems; Email field split in two +- /solutions/: 7th card orphaned +- /services/: leftover colour-swatch panel in hero +- /blog/: stat cards look like placeholder numbers + +## 4. Unpublish and clean up navigation + +- Unpublish: /pricing/, /pricing/foundation/, /growth/, /enterprise/, /how-we-price-work/, /pricing-principles/, and /guarantees/ (CONFIRM it counts as pricing); /about/diversity/ +- Remove the Pricing mega menu and the Diversity link from the header and footer, or they will 404 +- Website packages sits inside the Pricing mega menu: give it a new menu home; /contact/ and /free-consultation/ also link to it + +## 5. Other blank DEV-only pages that are published + +Not on LIVE, publicly reachable and empty: /faq/, /faq-2/, /book-a-call/, /services-landing/, /woocommerce-redesign/, /wordpress-redesign/, /woocommerce-solutions/, /tour-operators-solutions/, /systems/ (+3 children), /solutions/ai-readiness/, /about/ai-governance/, /about/community-events/, /about/privacy-and-terms/, /lsx/ (+2 children). Unpublish or fill before launch. + +## 6. After launch (not blockers) + +- /wcct-sticker-competition/ (kept in the build, restyle later) +- /mailpoet-re-engangement-page/ +- Taxonomy archives that 404 on DEV (project-type, project-tag, portfolio-group) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6450d3d..dafc57ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --- +## [Unreleased] — Rebuild the thank-you pattern as a reusable confirmation section (LSA-198) + +### Added + +- `patterns/sections/thank-you-confirmation.php` (Section - Thank You Confirmation): one reusable confirmation section for every thank-you page, with neutral copy to overwrite per page. It has a Yoast breadcrumb, a success status badge, an H1, a lead paragraph and a home button, a "What happens next" card with a tick list, and a "While you wait" row of three whole-card links below a top border. The hero, the card and the cards row sit in one centred 900px column. + +### Changed + +- The success colour reads the `status.success` token, which has its own light and dark values. The card, list and button reuse the existing Card - Plain, Card - Service Tile and Tick Accent styles and the core Button, with no new SCSS. +- `styles/blocks/lists/tick-accent.json`: the tick now stays on the first line of a list item that wraps (`align-items: first baseline`), instead of sitting in the middle. This also applies to `work-discuss-project-list` and `section-card-services`. +- `.github/reports/`: added the 2026-10-23 DEV vs LIVE launch-readiness audit and the pre-launch to-do list. + +### Removed + +- `patterns/thank-you-consultation.php`: replaced by the new pattern. It had a hardcoded "Free consultation" breadcrumb, consultation-only copy, unused `ls-thank-you*` classes and a `core/separator` that the editor flagged as invalid content. + +([#159](https://github.com/lightspeedwp/ls-theme/pull/159)) + +--- + ## [Unreleased] — Add the Team page patterns (LSA-109) ### Added diff --git a/patterns/sections/thank-you-confirmation.php b/patterns/sections/thank-you-confirmation.php new file mode 100644 index 00000000..143b2ad7 --- /dev/null +++ b/patterns/sections/thank-you-confirmation.php @@ -0,0 +1,162 @@ + 'users', + 'title' => __( 'Meet the team', 'ls-theme' ), + 'text' => __( 'The people you’ll likely be speaking with.', 'ls-theme' ), + 'label' => __( 'Say hello', 'ls-theme' ), + 'path' => '/about/team/', + ), + array( + 'icon' => 'lightbulb', + 'title' => __( 'Our culture', 'ls-theme' ), + 'text' => __( 'How we work, and what we care about.', 'ls-theme' ), + 'label' => __( 'Take a look', 'ls-theme' ), + 'path' => '/about/culture/', + ), + array( + 'icon' => 'buildings', + 'title' => __( 'About LightSpeed', 'ls-theme' ), + 'text' => __( 'A bit more on who we are and how we started.', 'ls-theme' ), + 'label' => __( 'Read more', 'ls-theme' ), + 'path' => '/about/', + ), +); +?> + +
+ + +
+ + + + + + +
+ + +
+ + +
+ + + +

+ +
+ + + +

+ + + +

+ + + +
+ +
+ +
+ +
+ + + +
+ +

+ + + +
    + + +
  • + + +
+ +
+ + + +
+ + +
+ +

+ + + +

+ +
+ + + +
+ + + +
+ +
+ +
+ + + +
+ +

+ + + +

+ +
+ + + + + +
+ + +
+ +
+ + +
+ +
+ +
+ diff --git a/patterns/thank-you-consultation.php b/patterns/thank-you-consultation.php deleted file mode 100644 index e1d83243..00000000 --- a/patterns/thank-you-consultation.php +++ /dev/null @@ -1,204 +0,0 @@ - - -
- - -
- -

- - - -

/

- - - -

- -
- - - -
- -
- -
- - - -

- -
- - - -

- - - -

- - - -
- -

- - - -
- -
- - - -

- -
- - - -
- - - -

- -
- - - -
- - - -

- -
- -
- -
- - - - - - - -
- - - -
- -

- - - -

- -
- - - -
- - -
- -
- -
- - - -
- -

- - - -

- -
- - - - - -
- - - -
- -
- -
- - - -
- -

- - - -

- -
- - - - - -
- - - -
- -
- -
- - - -
- -

- - - -

- -
- - - - - -
- - -
- - -
- diff --git a/styles/blocks/lists/tick-accent.json b/styles/blocks/lists/tick-accent.json index 0b539bca..c601ca53 100644 --- a/styles/blocks/lists/tick-accent.json +++ b/styles/blocks/lists/tick-accent.json @@ -11,7 +11,7 @@ "color": { "text": "var:custom|color|text|default" }, - "css": "&{list-style:none;margin-left:0;padding-left:0;text-align:left;} & li{display:grid;grid-template-columns:1.2rem minmax(0, 1fr);align-items:center;column-gap:var(--wp--preset--spacing--10);} & li::before{content:\"\\2713\";display:grid;place-items:center;inline-size:1.2rem;block-size:1.2rem;border-radius:var(--wp--preset--border-radius--500);background:var(--wp--custom--color--icon--background);color:var(--wp--custom--color--icon--color);font-size:var(--wp--preset--font-size--100);font-weight:700;line-height:1;}", + "css": "&{list-style:none;margin-left:0;padding-left:0;text-align:left;} & li{display:grid;grid-template-columns:1.2rem minmax(0, 1fr);align-items:first baseline;column-gap:var(--wp--preset--spacing--10);} & li::before{content:\"\\2713\";display:grid;place-items:center;inline-size:1.2rem;block-size:1.2rem;border-radius:var(--wp--preset--border-radius--500);background:var(--wp--custom--color--icon--background);color:var(--wp--custom--color--icon--color);font-size:var(--wp--preset--font-size--100);font-weight:700;line-height:1;}", "typography": { "fontFamily": "var:preset|font-family|body", "fontSize": "var:preset|font-size|200",