Marketing + enrollment site for Mindful Resilience, a non-profit offering
Compassion-Based Resilience Training (CBRT). Built in plain PHP (no framework)
using the same front-controller + clean-URL routing pattern as the sibling
nonform project on this host.
Target domain: mindfulresilienceinitiative.org · Local dev URL: https://localhost/mri/
htdocs/
├─ config_mri.php ← all secrets + editable constants (OUTSIDE the web folder)
└─ mri/
├─ .htaccess ← HTTPS + clean-URL rewrite to index.php
├─ index.php ← front controller (route table lives here)
├─ cohort.json ← editable "next cohort" data (written by the admin screen)
├─ home.php ← storytelling homepage (hero, stats, tiers, testimonials…)
├─ individuals.php / business.php / communities.php ← the 3 audience paths
├─ reserve.php ← Reserve-your-seat flow (primary CTA, individuals only)
├─ privacy.php ← policies + privacy notice
├─ admin.php ← login + cohort editor
├─ includes/
│ ├─ main.php ← bootstrap: loads config, starts hardened session
│ ├─ functions.php ← routes(), url(), send_mail(), SEO schema, header/footer
│ ├─ cohort.php ← read/write the cohort.json store
│ ├─ contact-section.php ← reusable contact block
│ ├─ contact-handler.php ← AJAX: contact form → email
│ ├─ reserve-handler.php ← AJAX: reservation → emails (+ optional Stripe)
│ └─ admin-handler.php ← AJAX: admin login / save cohort
├─ css/ (design-system.css = tokens, index.css = components)
├─ js/ (main.js = loader, nav, reveals, count-up, Calendly modal, AJAX)
├─ images/ (og-cover.svg)
└─ lib/ (phpmailer, stripe, google, tcpdf — already vendored)
Everything that changes often is a constant in htdocs/config_mri.php:
organisation name, contribution tiers, Zelle details, Calendly link, mail settings,
and the admin login.
The rotating cohort (title, start date, schedule, seats, open/closed) is edited
without touching code at /admin:
https://localhost/mri/adminmindful / resilience2026 ← change before launchadmin_pass_hash:
php -r "echo password_hash('NEW-PASSWORD', PASSWORD_DEFAULT);"stripe_enabled to true and add stripe_public_key / stripe_secret_key
in config_mri.php. A Checkout Session is created automatically.Transactional email uses PHPMailer over SMTP (settings in config_mri.php).
For testing these point at tom@reppedfitness.com. Before launch, switch the SMTP
account, notification_email, mail_from, and scholarship_email to the client’s
Gmail.
The secondary CTA opens a Calendly modal (lazy-loaded). Set the booking link via
calendly_url in the config.
Organization/NGO, WebSite, Course, FAQPage)
is emitted on every page for Google + AI answer engines — see mri_schema().<title>, meta description, canonical, Open Graph + Twitter cards.robots.txt and sitemap.xml are included.The whole palette is CSS custom properties in css/design-system.css (calm
pine/sage/cream + clay accent, with the soft multi-stop footer gradient). Re-theme
the entire site by editing the tokens at the top of that file.
config_mri.php to the server root (one level above the site folder) and
set base_url to https://mindfulresilienceinitiative.org/..htaccess, change RewriteBase /mri/ to RewriteBase /.