# Brentwood College School — Website Migration: Scope of Work

*Derived from the approved April 2026 proposal. Pricing, payment terms, retainer, and legal/
commercial terms have been removed — this is the scope-of-work record only. For the living project
context (decisions, stakeholders, open questions, schedule) see `../PROJECT-BRIEF.md`; for the
broad plan see `../PROJECT-PLAN.md`. Where this doc and the brief differ, **the brief is
authoritative** (it carries post-approval updates).*

---

# Objective

Migrate Brentwood's website to WordPress, preserving the current look and feel while solving the
editor friction, tracking gaps, and platform-risk issues that have built up over the years. Launch
ahead of the next enrollment ad cycle.

Priorities from conversations with Ian and Erin:

- Get off the current platform — the existing custom CMS is unmaintainable, which slows marketing
  and creates platform risk.
- Close the tracking gap between ad campaigns and applications.
- Preserve what's working and being used: the current look and feel, the 700+ student blogs (with an
  SEO uplift), the teacher bio workflow, and the content approval process.
- Hit the launch window to avoid disrupting the enrollment ad cycle.

# Scope

## Platform: WordPress on open-source PHP
WordPress runs ~40% of the web; any WordPress developer can pick it up, and non-technical staff can
manage general content. The plugin ecosystem keeps pace with new capabilities (AI-assisted SEO,
image optimization, advanced forms, etc.). Open-source PHP means no vendor lock-in. Since the
application platform (FinalSite) already covers the enrollment pipeline, WordPress at the front end
keeps the marketing surface fully under Brentwood's control.

## Design
This is a migration, not a redesign. Current visual identity and information architecture are
preserved; structural changes are limited to what the platform change requires. A design refresh can
be a future project.

## A note on FinalSite form integration (constraint)
Brentwood uses FinalSite for application processing. FinalSite does not appear to offer a public API
for submitting form data from third-party platforms, and their forms don't document support for
receiving custom hidden-field data. Data flows out of FinalSite, not in. Implications:

- **Inquiry forms tied to applications must be FinalSite forms**, embedded into WordPress as a code
  snippet. We can wrap and style them, but can't replace them with Gravity Forms.
- **First-party journey data** (campaign source, pages visited, multi-session history) can't be
  cleanly attached to inquiry submissions inside FinalSite. We can capture it in WordPress and
  reconstruct journey reporting in GA4 / Looker Studio via email-matching.
- **Custom thank-you pages / per-campaign conversion events** depend on what the FinalSite embed
  allows.
- **Gated downloads, RSVP forms, and other non-applicant forms** can use Gravity Forms freely.

Recommend a discovery call with FinalSite support (co-led with Tracy) to confirm embed and
hidden-field options before finalizing tracking add-ons.

## Template creation
All basic template elements: header, footer, template areas; consistent color palette, typography,
and spacing carried from the current site; reusable UI blocks and layouts. The template will be
clean and SEO-friendly, built on current WordPress + Gutenberg with a modern premium theme framework
(lifetime license), fully responsive (mobile-first), plugin-compatible, with a user-friendly backend
for non-technical staff, and templates for the various content types.

## Baseline structural SEO
Proper heading structure; schema markup (Organization, EducationalOrganization, Person/staff,
Course); technical accessibility; clean XML sitemap; thin-page blocking; Open Graph meta; a 301
redirect map for every legacy URL; site search.

## Performance, backups, and image optimization
- **Image auto-optimization** — automated resize/compression on upload (replaces the broken
  auto-compression tool that caused the "images aren't loading" issue).
- **Caching and CDN** — page caching plus a CDN layer for fast global loads and Core Web Vitals.
- **Backups** — daily database backups and weekly full-site backups, stored off-server and verified
  restorable.

## Content migration
Scripted extraction from the current database rebuilds content in WordPress, followed by a manual
cleanup pass on high-traffic pages.

- **~200 pages** — rebuilt as Gutenberg / ACF blocks
- **700+ student blog posts** — URL-preserved; author/date/tag preserved; tag-to-section
  relationships retained (athletics blogs continue to surface on the athletics page)
- **168 teacher bios** — migrated into a Staff custom post type
- **141 courses** — migrated into a Courses custom post type with department/grade taxonomy
- **Photo library** — scripted copy with alt text and captions preserved

## Post structure and setup
Index and individual templates (with thumbnail, categorization, excerpt, etc.) for:
- **Posts** (student blogs + news / events / announcements)
- **Staff** (teacher and staff bios, with self-service editing where included)
- **Courses** (departmental course catalogue)

## Calendar
The current calendar aggregates multiple Google Calendars (Brentwood, Socials, Admissions, Box
Office) into a unified styled view with per-source color coding, list/grid layouts, tag filtering,
and per-page header/body content. We'll replicate this functionality (see the Custom Features table
for the 1:1 custom-built option).

## Livestreams
- **Huddle** handles ~90% of streams (all sports) with its own player/embed — continue embedding as
  today, no custom integration.
- The current CMS has a **custom YouTube-based livestream module** for the remaining ~10%
  (graduation, regatta, TEDx, arts): banners, tags, scheduled date/time, automatic live/completed
  state, photo galleries, and reusable list blocks. This module (CPT + metadata, single page with
  auto live/completed state, Livestream List block with filtering) is included, along with migration
  of existing entries. Unused advanced features (real-time chat, RSVP/reminders, login-gated streams)
  are excluded; add later if confirmed used.

## User roles & permissions
Collapse the existing 100+ permission roles down to a small practical set: Admin (Developer and IT),
Marketing (Erin and Tracy), and Teachers (their own bios), plus WordPress core roles as needed. The
7–8 core admissions/brochure pages are locked to Marketing and Admin (everyone else read-only);
remaining pages stay on the existing trust-based model.

## Content approval workflow
Where content needs review before going live (most notably the teacher bio editor), edits save as a
"pending review" state using WordPress's built-in revision/publishing workflow. Marketing sees a
queue of pending changes, reviews/edits, and publishes in one click. Native WordPress behaviour,
configured to fit Brentwood's review process.

## Additional features & functionality
Itemized below. *Confirmed selections live in `PROJECT-BRIEF.md` §6 (authoritative).*

| Feature | Description | In? |
| :---- | :---- | :---- |
| Hard-Coded Timetable Page | Static HTML preserving the card-flip popup interactivity. *(Superseded: Brentwood chose a static image/PDF instead — see brief.)* | no |
| Custom Calendar to Match Existing Look | Custom calendar widget matching the existing Brentwood calendar 1:1 (multi-source aggregation, color coding, layouts, tag filtering), in place of a plugin. | yes |
| Per-Page Footer Images | ACF field for per-page footer image selection. | yes |
| Google Login | Users log in with a Google account (as they do now). | yes |
| Teacher Bio and Page Self-Service Editor | Each teacher gets an interface to edit only their bio / approved pages; changes submitted for marketing approval. | no |
| Video Hero Block | Autoplay, mute toggle, fallback image, documented for editors (matches the `/giving` example). | yes |
| Campaign-Variant Inquiry Forms + Thank-You Pages | Multiple form variants per campaign, each with its own thank-you URL and conversion event. *(FinalSite-constrained.)* | yes |
| Form Gated Download | Form-gated → one-time download link by email. *(FinalSite-constrained.)* | no |
| GA4 + GTM + Meta Pixel Baseline | Standard analytics install with per-form conversion events and cross-domain to the application platform. | yes |
| First-Party Journey Tracking | Captures landing page, UTMs, referrer, multi-session history into a first-party cookie; journey attaches to form submissions. *(FinalSite-constrained.)* | yes |
| Campaign Landing Page Template System | Editor self-serve template to clone a campaign landing page without developer help. | yes |
| Faculty Schema AI/GEO Uplift | Enhanced schema for AI authority-building on staff profiles. | no |
| Student Blog SEO Uplift | Schema, topic clustering, internal linking, author pages, Google News/Discover eligibility. | no |
| Looker Studio Reporting Dashboard | Ad spend → inquiry → application funnel, per campaign. | yes |
| Internal Announcements Module | Permissioned parent/staff-facing articles gated by email sign-in. | no |

*(Added post-approval, not in the original table — see brief §6: **Blog auto-archiving** — filter
posts older than a configurable N years out of on-site queries while keeping them published and
search-reachable.)*

## Content entry / cleanup
Migration handles the bulk transfer; a manual cleanup pass covers high-traffic pages where automated
extraction needs a human eye. Brentwood marketing remains responsible for new content. Placeholder
content can be inserted where helpful. Clean up orphaned images.

## Training & handover
- 2-hour editor training session (5–10 staff), recorded
- Dedicated tutorial video for the photojournalism teacher on the student blog workflow
- Documented image/video specs with upload validation (resolution, bitrate, length, file size)
- Living admin documentation covering custom blocks, forms, and tracking
- 30-day post-launch bug-fix window

## Launch
Targeted ahead of the enrollment ad cycle. Includes redirect verification, SEO continuity check,
tracking validation, and form testing. *(Current target date: see `PROJECT-BRIEF.md`.)*

## Hosting & maintenance
Brentwood uses DigitalOcean, which can host WordPress and is a reasonable long-term home given an IT
department familiar with the setup. WordPress requires little day-to-day support; most content work
is handled by Brentwood staff directly. Ongoing support is available post-launch (terms handled
separately).

# Assumptions & exclusions

**Assumptions:**
- Hosting on DigitalOcean (other options can be proposed).
- FinalSite form integration is constrained by FinalSite's platform (see the FinalSite section).
- Existing third-party platforms remain on their current systems and are not in scope: LMS/Moodle,
  advancement/`giving.brentwood.ca`, Huddle (sports streams), MySchool SIS, MailChimp parent
  newsletter.
- Brand assets (logos, typography, approved photography) are available from Brentwood.

**Not included:**
- Visual redesign or new information architecture
- School store / e-commerce (future project)
- Work on existing third-party platforms beyond integration touchpoints
- New photography or video production
- Paid-media strategy (the tracking add-on makes future strategy measurable)
