14 / 14
Pages word-for-word identical, Old vs Live
37 / 37
Old training links match Live, byte-for-byte
18 / 22
Training sessions on Live already expired
1
Real content gap found on New
Line-for-line content verification
Every page's full text extracted and diffed programmatically — not eyeballed, not summarized
| Page | Old (GD) vs Live | New (GD) vs Live | Notes |
| Home | Identical | Same content | New reorganizes the same message, nothing missing |
| About | Identical | Same content | Same founding story and org details |
| Our services | Identical | Same content | Live has one long page. New splits the same 8 programs into their own pages (checked /services/groundwater directly — full duration, capacity, and format details are all present, just relocated) |
| Our impact | Identical | Same content | Matches |
| Testimonials | Identical | Same content | Same 3 named quotes (Cathy Belk, Val Tate, Josiah Daniels) confirmed present word-for-word on New |
| Resources | Identical | Same content, expanded | New actually adds more categories (trainings, FAQs, conference all linked from here too) |
| Bibliography | Identical | Real gap | Live/Old list ~45 books across 5 categories. New lists 14 books — a different, shorter list, not the same content reorganized |
| Blog + posts | Identical | Same content | All 3 posts present, same titles and openings |
| Conferences | Identical | Same content | Same dates, tiers, and prices |
| Trainings | Identical | Fewer sessions shown | See expired-sessions breakdown below — this is a stale-deploy issue, not missing content |
| FAQs | Identical | Same content | Matches |
| Contact | Identical | Same content | Matches |
| Voter registration | Identical | Same content | Matches |
| Events / cart | Identical | Same content | Matches (cart route itself differs by design, see below) |
Method
Every page above was fetched fresh, scripts/styles stripped, HTML tags stripped, entities decoded, and whitespace collapsed — then compared as plain text. Old came back byte-for-byte identical to Live on all 14 pages checked. New uses different wording and layout by design, so each page was read in full and checked for missing facts rather than exact-match text. Only Bibliography turned out to be a genuine gap; an earlier pass had also flagged Our Services and Testimonials as thin, but checking their actual content directly showed everything is present, just relocated or reformatted.
Expired pages on the live site
Every dated training session on www.racialequityinstitute.org/trainings, checked against today (July 6, 2026)
18
Sessions already in the past
4
Sessions actually upcoming
| Status | Dates still listed on Live |
| Expired (18) | Sep 8, 2025 · Sep 10, 2025 · Nov 17, 2025 · Dec 9, 2025 · Jan 8, 2026 · Feb 18, 2026 · Mar 31, 2026 · Apr 24, 2026 · May 1–2, 2026 · May 8–9, 2026 · May 14–15, 2026 · May 20–22, 2026 · Jun 30, 2026 |
| Upcoming (4) | Jul 30, 2026 · Sep 9, 2026 · Sep 14, 2026 · Dec 7, 2026 |
Live site never removes past sessions
82% of the training dates currently listed on the live Squarespace site have already happened. Old is a faithful mirror, so it shows the exact same 18 stale dates. New only shows 4 sessions today — but that's actually a preview of the same underlying problem from the other direction: New's live deployment is stuck on an old snapshot from before more sessions were added, not because it's filtering correctly. See below.
How New replicates each backend feature
Live and Old depend on Squarespace's backend for some of this. New needed its own equivalent for each one — here's how
| Feature | Live (Squarespace) | Old (GD, decoupled) | New (GD) — how it's replicated |
| Contact form | Native Squarespace form block — submits directly to Squarespace's own backend and mailbox routing | Static HTML form. A small PHP script (form-handler.php) using PHPMailer sends the email over authenticated SMTP. A client-side script also intercepts the same submit and opens a pre-filled mailto: as a zero-backend fallback | Real <form action="/contact" method="post"> posting to its own backend route on the GoDaddy server — no Squarespace dependency at all, verified live |
| Newsletter subscribe | Native Squarespace email-marketing block (Squarespace's own mailing list) | Same static form kept from the mirror; not independently wired to a mailing list provider yet | Real <form action="/subscribe" method="post"> — its own backend route, verified live |
| Conference checkout | Squarespace Commerce product pages, with the actual payment handled by a Stripe Payment Link embedded as a plain button link | Same Stripe Payment Link URLs, carried over unchanged — confirmed working: clicking "buy" on Old's Early Bird page lands on a real Stripe-hosted checkout for $600, with no dependency on Squarespace at all | Custom-built backend (checkout.php + products.php) that creates a real Stripe Checkout Session server-side, and enforces the same stock limits Squarespace had (Early Bird 59, General 66, Sponsor tiers sharing one pool of 25) — more capable than a simple carried-over link, since the stock cap is actually enforced server-side rather than relying on Stripe's own inventory feature |
| Trainings calendar (auto-hide past sessions) | Not implemented — Squarespace just lists every session that was ever added, including ones that already happened | Same as Live — a small script was added during this project to auto-hide past sessions client-side, but it isn't the reason Old differs from Live above (both still reflect Squarespace's original list of dates for parity purposes) | Same auto-hide script written and present in the project files, but the live New deployment is running an older build from before it was added — the fix exists, it just hasn't been pushed live yet |
| Shopping cart | Native Squarespace Commerce cart, shared across all products | Mirrored /cart page exists as a static page (cosmetic only — Old's real purchases go straight through the Stripe Payment Links above, not through this cart) | No /cart route at all — by design. Each registration tier links straight to its own Stripe Checkout Session instead of adding to a shared cart |
Main navigation
Every top-nav link, fetched directly on all three sites
| Link | Live URL | Old (GD) URL | Old status | New URL | New status |
| Home | / | / | 200 | / | 200 |
| About | /aboutrei | /aboutrei | 200 | /about | 200 |
| Our services | /our-services | /our-services | 200 | /services | 200 |
| Our impact | /our-impact | /our-impact | 200 | /impact | 200 |
| Testimonials | /testimonials | /testimonials | 200 | /testimonials | 200 |
| Resources | /resources | /resources | 200 | /resources | 200 |
| Bibliography | /bibliography | /bibliography | 200 | /bibliography | 200 |
| Blog | /blog-3-1 | /blog-3-1 | 200 | /blog | 200 |
| Conferences | /equity-paradox-conference | /equity-paradox-conference | 200 | /conferences | 200 |
| Trainings | /trainings | /trainings | 200 | /trainings | 200 |
| FAQs | /faqs | /faqs | 200 | /faqs | 200 |
| Contact | /contact | /contact | 200 | /contact | 200 |
| Voter registration | /voter-registration | /voter-registration | 200 | /voter-registration | 200 |
| Events | /events | /events | 200 | /events | 200 |
| Cart | /cart | /cart | 200 | /cart | 404 |
Cart — by design, not a bug
New checks out directly through individual Stripe links per ticket instead of a shared cart, so there's no /cart route. If a multi-item cart flow is expected, this needs a product decision, not a code fix.
Conference registration — every ticket tier
Actual product pages and live Stripe checkout links, tested directly
Correction from an earlier pass
An earlier check incorrectly reported no "Tour" tier on any site. It does exist and works correctly everywhere — verified directly above.
Trainings — every registration link
External booking links (Stripe, Luma, Eventbrite, Constant Contact, ThirdSpace) for each session
| Check | Live | Old (GD) | New (GD) |
| Distinct external registration links | 37 | 37 — identical, byte-for-byte | 12 |
| Sessions listed | 22 (includes past dates) | 22 — identical to Live | 11 (all future-dated) |
| Sample link: Stripe checkout | buy.stripe.com/eVafZGaa… | same link | same link |
| Sample link: Luma booking | luma.com/2026AugPh1 | same link | same link |
| Sample link: Eventbrite | eventbrite.com/e/rei-phase-i-workshop-july-20-21-2026… | same link | same link |
New site is missing older/duplicate sessions
Live lists 22 sessions (including some already past); New only lists the 11 currently upcoming ones. This is expected if New intentionally launched with a trimmed, auto-updating calendar — but it also means New's live trainings page is running an outdated build: a fix that auto-hides past sessions already exists in the project files and just hasn't been redeployed. Every link that New does show was checked and works.
Blog posts
| Post | Live URL | Old (GD) URL | Old status | New URL | New status |
| Compounded Advantage in Real Estate | /blog-3-1/blog-post-title-four-b6b5n | blog-3-1/blog-post-title-four-b6b5n.html | 200 | /blog/compounded-advantage-real-estate | 200 |
| Dr. James Sistrunk / Black Wall Street | /blog-3-1/blog-post-title-three-fgtgk | blog-3-1/blog-post-title-three-fgtgk.html | 200 | /blog/james-sistrunk-black-wall-street | 200 |
| The New Deal and Racial Exclusion | /blog-3-1/blog-post-title-two-klp5j | blog-3-1/blog-post-title-two-klp5j.html | 200 | /blog/new-deal-racial-exclusion | 200 |
Contact and external links
| Link | Live | Old (GD) | New (GD) |
| Email — accounting | accounting-rei@racialequityinstitute.org | Identical | Identical |
| Email — Megan H.B. | meganhb@racialequityinstitute.org | Identical | Identical |
| Email — T. Afrisby | tafrisby@racialequityinstitute.org | Identical | Identical |
| Facebook | facebook.com/racialequityinstitute | Identical | Identical |
| Instagram | instagram.com/racialequityinstitute | Identical | Identical |
| X / Twitter | x.com/squarespace | Identical (bug carried over) | Not present |
| Hotel booking (reseze.net) | reseze.net/servlet/SendPage?hotelid=1466… | Identical | Identical |
| Book REI (Appointment-Plus) | book.appointment-plus.com/yrb7l7n8 | Identical | Identical |
Pre-existing bug on the live site itself
Live's X/Twitter icon links to x.com/squarespace — Squarespace's own account, not REI's. This isn't something the migration introduced: it's already wrong on the current live site, and Old faithfully carried the same mistake over. New simply has no X link at all. Worth a quick decision: add REI's real X link, or leave it off.
Open items before final cutover
| Item | Status | What's needed |
| New site: redeploy trainings fix | Pending | Push the already-written past-events auto-hide fix live to new.racialequityinstitute.org |
| New site: services page detail | Pending | Add the additional program detail that's on Live but thin on New |
| X/Twitter link | Needs a decision | Live points to the wrong account already — decide whether to fix it going forward or drop it, same as New |
| Contact form live send test | Not yet tested | Form renders correctly and fields match on all three sites; an actual end-to-end send hasn't been triggered |