Benson Theatre — Rebuild Plan
A phased plan for rebuilding bensontheatre.org from the scraped content into a clean custom WordPress theme owned by Benson Theatre. No code is being lifted from the existing Shape Society theme.
30-day delivery target (from PROPOSED-AGREEMENT.md)
The proposal commits to a 30-day window from contract signing to public launch. Phases below map to the four-week schedule:
| Week | Calendar window | Phases covered | Internal milestones |
|---|---|---|---|
| Week 1 | Days 1-7 | Phase 0 close-out, Phase 2 Theme scaffold, Phase 3 Content architecture | Local scaffold, plugins installed, ACF + event CPT registered, brand tokens applied, header/footer/base templates |
| Week 2 | Days 8-14 | Phase 4 Page build, Phase 5 Tech replacements (start), Phase 6 Media migration | All KEEP pages built and content-populated, donate + memberships live, Gravity Forms set up, all 66 images in media library |
| Week 3 | Days 15-21 | Phase 5 Tech replacements (finish), Phase 7 SEO + redirects, internal QA | Schema, legal pages (Termly + customizations), accessibility statement, /policies rewrite, 301 redirect map, security plugins config, soft launch on staging for Jim's review |
| Week 4 | Days 22-30 | Phase 1 Working session feedback applied, Phase 8 Launch | Client review feedback incorporated, final QA, DNS cutover, post-launch monitoring |
Phase 1 (KEEP/KILL/MERGE working session with Jim) happens BEFORE day 1 — that's the May 11 session. Phase 9 (Post-launch) starts day 30 and runs into the ongoing retainer.
Slippage rule: if Jim's feedback during week 3 review takes longer than two business days at any checkpoint, launch shifts day-for-day.
Phase 0 — Access & Setup
Goal: Stop being blocked by infrastructure. Get the keys to the kingdom in our hands.
- [ ] Jim logs into GoDaddy with the new password and stores it in a place we can both reach (1Password shared vault, ideally)
- [ ] Eric gets added to GoDaddy as a delegate or shared user
- [ ] Pull a backup snapshot of the GoDaddy account: domain expiry, DNS records, any add-on products still on file (so we don't lose anything when we change nameservers later)
- [ ] Confirm DNS records for bensontheatre.org match what's in tech-stack.md (MX → Google Workspace, A record → Flywheel/Fastly)
- [ ] Add a TXT record for Google Workspace domain verification — kicks off the Workspace super admin recovery (24-48 hr wait). Lower priority than the rebuild but worth starting in parallel.
- [ ] Decide hosting target for the new site:
- Option A: New Flywheel site under G&M's account (matches G&M default workflow)
- Option B: Kinsta (some clients have moved here for performance)
- Option C: Spin up a fresh Local site for development, decide hosting at launch
- [ ] Confirm with Jim who owns the PayPal merchant account — is it Benson Theatre's, or Shape Society's, or someone's personal account?
Phase 1 — Working Session With Jim
Goal: Decide what's IN and what's OUT before we build anything.
- [ ] Sit down (in person or screenshare) and walk every page in
site-scrape/pages/ - [ ] Mark each page: KEEP / KILL / MERGE
- [ ] Confirmed cuts so far (per Eric, May 7):
- The "bar section" —
/event/the-broadway-bar-lands-at-the-benson-theatre,/the-bar, related promo - "Whole bunch of additional crap" — TBD list
- [ ] Eric will do "his own take" on the design rather than copy Shape Society's — the existing layout is a starting reference, not a target
Phase 2 — Theme Scaffold
Goal: A working WordPress theme on Local that loads at all.
- [ ] Use
/wordpress-theme-setupskill to scaffold a custombenson-theatretheme (different folder name from the existing Shape Society one to avoid collision) - [ ] Tailwind + ACF + ACFE flex modules baseline
- [ ] G&M
.tailwind-scopewrapper convention - [ ] Project tokens: brand colors, type, spacing — extracted from the existing site's stylesheet, refined
- [ ] Header / footer blocks
- [ ] 404, search, archive base templates
Phase 3 — Content Architecture
Goal: Define every CPT, taxonomy, and ACF module needed.
- [ ] CPTs:
- [ ]
event— replace The Events Calendar with a lightweight custom CPT- Date field (ACF date picker)
- Time field
- Buy Tickets URL (text field, NOT ACF
url) - Featured image
- Short description
- Long description (flex content)
- Category taxonomy (re-use the existing 7 terms or trim down)
- [ ]
press_article— for editorial / news / press hits, OR keep as default WP posts categorized bybt-news/bt-press - [ ] Taxonomies:
- [ ]
event_category— featured, free, hosted, collaborative, education, community-partner, private (decide which to keep) - [ ] ACF Options pages:
- [ ] Site settings (phone, email, address, social URLs, NAM/Candid badges)
- [ ] Footer content
- [ ] Membership tier definitions (per CLAUDE.md anti-pattern note: don't hardcode the tier list)
Phase 4 — Page Build
Goal: Static pages from the KEEP list, populated with scraped content.
- [ ] Home (events feed, featured news, mission, donate/volunteer CTAs)
- [ ] About / Who we are / History (likely merge into one page)
- [ ] Staff & Leadership
- [ ] Programming
- [ ] Education
- [ ] Booking & Rentals (currently
/booking-information) - [ ] The Tech / The Catering Room / Parking — keep, kill, or roll into Booking
- [ ] Policies
- [ ] Volunteer (with new Gravity Forms volunteer application)
- [ ] Donate (PayPal hosted button + pitch copy)
- [ ] Memberships (6 tiers + Student free tier with PayPal subscription buttons + Google Form for student tier OR new Gravity Form)
- [ ] News (archive of editorial posts)
- [ ] Press (archive of press articles + outbound links to MBJ, KIOS, Metro Magazine)
- [ ] Contact (no current contact page — add one with Gravity Forms general inquiry)
Phase 5 — Tech Replacements
Goal: Replace what we said we'd replace in tech-stack.md.
- [ ] Forms: Volunteer + Student Membership signup → Gravity Forms
- [ ] Calendar: Custom CPT-driven calendar view (could use FullCalendar.js for the grid, or hand-built Tailwind grid)
- [ ] Ticketing: Per-event "Buy Tickets" button reading from ACF text URL
- [ ] Donations: Keep PayPal hosted button. New theme styles around it.
- [ ] Memberships: Keep PayPal subscription plan IDs. New page styles. Confirm merchant account ownership in Phase 0.
- [ ] Newsletter: Decide with Jim — Mailchimp, Brevo, or ConvertKit. Add a signup widget to the footer.
Phase 6 — Media Migration
Goal: Pull all images off the live site, upload to new media library.
- [ ] Pull every URL in
media-inventory/all-images.md(66 images) - [ ] Filter ExactDN URLs back to their original
wp-content/uploads/source - [ ] Run any hash-named images through
/image-namingskill for SEO-friendly filenames - [ ] Re-attach images to event posts, page heroes, etc.
- [ ] Add alt text — review each one for accessibility (the current site likely has gaps here)
Phase 7 — SEO & Redirects
Goal: Don't lose any existing organic traffic + clean up the spam compromise.
- [ ] Add Yoast SEO (or RankMath — G&M default)
- [ ] Generate sitemap and submit to Google Search Console
- [ ] Critical: 301 every old URL to its new equivalent. The current site has been compromised with pharmacy spam links — Google has likely deprioritized the domain. A clean rebuild + reindex request is the recovery path.
- [ ] Submit a disavow file in GSC for the spam outbound links if they show up in the link profile
- [ ] Set up Google Analytics 4 + verify GSC ownership (DNS TXT verification)
Phase 8 — Launch
Goal: DNS cutover, old site retired.
- [ ] Final QA on Local + cross-device test (
/testingskill) - [ ] Launch checklist: WP-Optimize config (
/wp-optimizeskill), backup plugin, security plugin - [ ] Move the Local site to chosen hosting
- [ ] Update GoDaddy DNS to point at new host
- [ ] Verify SSL, email DNS records (don't accidentally break MX/SPF/DKIM)
- [ ] Monitor for 48 hrs post-cutover
Phase 9 — Post-launch
Goal: Hand off to a Benson Theatre team that can actually maintain the site.
- [ ] Train Miranda Hindman (new GM) on adding events, news posts, and updating page copy
- [ ] Document admin credentials in masterdoc
- [ ] Configure Admin Columns Pro for events + posts (
/admin-columnsskill) - [ ] Decide on a maintenance cadence (G&M quarterly maintenance contract option?)
Open questions for Jim
These need answers before/during the working session in Phase 1:
- Who owns the PayPal merchant account that's collecting donations + memberships today?
- How is the "quarterly insider newsletter" actually sent? (Mailchimp? Manually from Gmail?)
- Are there more email mailboxes than we know about? (We've seen admin@, booking@, info@, paul@, volunteer@, possibly maddie@, miranda@)
- Is the Bar genuinely going away as a programming concept, or just the Broadway Bar event? (
/the-barpage implies the bar IS a product — the catering room and tech are listed alongside it as "The Space") - What's the appetite for a new visual design vs. matching the existing look-and-feel closely?
- Who, on the Benson Theatre side, will be the day-to-day site administrator after launch?
What this rebuild is NOT
- Not a migration. We're not pulling any code or DB content from Shape Society's Flywheel install.
- Not a redesign-only project. The infrastructure (hosting, ticketing, forms, donations) is moving with the rebuild.
- Not blocked on Workspace recovery. Email recovery happens in parallel and is lower priority than a working website.