Align branding, PWA manifest, and contact details with mim4u.org.

Unify logos (footer dark symbol), OG image URL, canonical phone/EIN in siteContent, and foundation copy in i18n, env example, and AI chat prompt.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
defiQUG
2026-05-27 20:21:12 -07:00
co-authored by Cursor
parent dc1281dc1f
commit 85b54e7f5b
18 changed files with 77 additions and 71 deletions
+16 -24
View File
@@ -5,31 +5,28 @@
VITE_GA_MEASUREMENT_ID=G-XXXXXXXXXX
VITE_ANALYTICS_ENABLED=true
# Contact Information
# Contact Information (canonical: src/content/siteContent.ts)
VITE_CONTACT_EMAIL=[email protected]
VITE_PHONE_NUMBER=+15551234567
VITE_ADDRESS="123 Community Way, Hometown, ST 12345"
VITE_PHONE_NUMBER=+18184916884
VITE_ADDRESS="Los Angeles County, California"
# Donation Processing
VITE_DONATION_ENDPOINT=https://api.donation-processor.com/v1
VITE_PAYPAL_CLIENT_ID=your_paypal_client_id
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_your_stripe_key
VITE_DONATION_ENDPOINT=
VITE_PAYPAL_CLIENT_ID=
VITE_STRIPE_PUBLISHABLE_KEY=
# Organization Details
VITE_EIN=12-3456789
VITE_ORG_NAME="Miracles In Motion"
VITE_ORG_DESCRIPTION="A 501(c)3 non-profit providing essentials for student success"
VITE_EIN=33-4887159
VITE_ORG_NAME="Miracles in Motion Foundation"
VITE_ORG_DESCRIPTION="Restoring hope through compassion, community, and faith. Serving Los Angeles County."
# Social Media
VITE_FACEBOOK_URL=https://facebook.com/miraclesinmotion
VITE_INSTAGRAM_URL=https://instagram.com/miraclesinmotion
VITE_TWITTER_URL=https://twitter.com/miraclesinmotion
VITE_LINKEDIN_URL=https://linkedin.com/company/miraclesinmotion
# Social Media (canonical Instagram: siteContent SOCIAL)
VITE_INSTAGRAM_URL=https://www.instagram.com/miraclesinmotionfoundation
# API Endpoints
VITE_API_BASE_URL=https://api.miraclesinmotion.org
VITE_VOLUNTEER_FORM_URL=https://forms.miraclesinmotion.org/volunteer
VITE_CONTACT_FORM_URL=https://forms.miraclesinmotion.org/contact
# API Endpoints (set when backend is deployed on mim4u.org)
VITE_API_BASE_URL=
VITE_VOLUNTEER_FORM_URL=
VITE_CONTACT_FORM_URL=
# Feature Flags
VITE_ENABLE_CHAT=false
@@ -38,9 +35,4 @@ VITE_ENABLE_EVENTS=true
VITE_ENABLE_BLOG=false
# Optional chat API override
# Default is same-origin /api/ai/chat via nginx proxy on the web container.
# VITE_CHAT_API_BASE_URL=https://mim4u.org
# Development
VITE_DEV_MODE=true
VITE_LOG_LEVEL=info
# VITE_CHAT_API_URL=
+1 -1
View File
@@ -62,7 +62,7 @@ function normalizeMessages(messages: ChatMessage[] | undefined): ChatMessage[] {
function buildSystemPrompt(pagePath: string): string {
return [
'You are the Miracles in Motion website assistant for MIM4U.',
'Answer as a warm, concise concierge for a nonprofit that supports students with school supplies, clothing, shoes, emergency support, volunteer coordination, donations, and sponsorships.',
'Answer as a warm, concise concierge for Miracles in Motion Foundation — a faith-centered nonprofit serving Los Angeles County with outreach, emergency assistance, resource navigation, wellness support, volunteer coordination, donations, and corporate partnerships.',
'Use only the provided context and the user messages. If you are unsure, say so and direct the user to [email protected].',
'Keep replies practical and short. Prefer bullets only when they improve clarity.',
'When relevant, guide users to these routes: #/donate, #/volunteers, #/request-assistance, #/impact, #/stories.',
+2 -2
View File
@@ -16,13 +16,13 @@
<meta property="og:description" content="Restoring hope through compassion, community, and faith." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://mim4u.org" />
<meta property="og:image" content="/og-image.png" />
<meta property="og:image" content="https://mim4u.org/og-image.png" />
<!-- Twitter Card Meta Tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Miracles in Motion Foundation" />
<meta name="twitter:description" content="Restoring hope through compassion, community, and faith." />
<meta name="twitter:image" content="/og-image.png" />
<meta name="twitter:image" content="https://mim4u.org/og-image.png" />
<!-- Favicon and Web App Manifest -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
+1 -1
View File
@@ -38,7 +38,7 @@
"type": "git",
"url": "https://github.com/Miracles-In-Motion/public-web.git"
},
"homepage": "https://miraclesinmotion.org",
"homepage": "https://mim4u.org",
"dependencies": {
"@fontsource/inter": "^5.2.8",
"@fontsource/playfair-display": "^5.2.8",
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 298 KiB

+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "Miracles In Motion Foundation",
"name": "Miracles in Motion Foundation",
"short_name": "MiM",
"description": "A 501(c)3 non-profit providing essentials for student success",
"description": "Restoring hope through compassion, community, and faith. Serving Los Angeles County.",
"start_url": "/",
"display": "standalone",
"background_color": "#1a3c34",
@@ -26,7 +26,7 @@
"purpose": "any"
}
],
"categories": ["education", "social", "non-profit"],
"categories": ["non-profit", "social", "charity"],
"lang": "en-US",
"dir": "ltr",
"orientation": "portrait-primary",
+2 -2
View File
@@ -501,7 +501,7 @@ function SEOHead({ title, description, image }: { title?: string, description?:
updateOGTag('og:title', title || `${SITE.name} — ${SITE.brandMessage}`)
updateOGTag('og:description', description || 'Faith-centered nonprofit bringing hope, outreach, emergency assistance, and wellness support to families in Los Angeles County.')
updateOGTag('og:image', image || '/og-image.jpg')
updateOGTag('og:image', image || `${SITE.url}/og-image.png`)
updateOGTag('og:type', 'website')
}, [title, description, image])
@@ -2659,7 +2659,7 @@ function AssistanceRequestPage() {
required
type="tel"
className={`input ${errors['contactInfo.phone'] ? 'border-red-500 dark:border-red-400' : ''}`}
placeholder="(555) 123-4567"
placeholder={SITE.phone}
value={formData.contactInfo.phone}
onChange={(e) => {
setFormData({ ...formData, contactInfo: { ...formData.contactInfo, phone: e.target.value } })
+1 -6
View File
@@ -120,12 +120,7 @@ export function Footer() {
<div className="mt-8 border-t border-secondary-200/50 pt-8 text-center text-xs text-neutral-600 dark:border-white/10 dark:text-neutral-400">
<p className="font-medium text-neutral-800 dark:text-neutral-200">{SITE.name}</p>
<p className="mt-1">{SITE.legalStatus}</p>
<p className="mt-1">
EIN:{' '}
<a href={`tel:${SITE.ein.replace(/-/g, '')}`} className="underline">
{SITE.ein}
</a>
</p>
<p className="mt-1">EIN: {SITE.ein}</p>
<p className="mt-2">
© {new Date().getFullYear()} {SITE.shortName}. All rights reserved. Donations may be
tax-deductible to the extent allowed by law.
+12 -12
View File
@@ -11,28 +11,28 @@ interface SEOProps {
}
export const SEO: React.FC<SEOProps> = ({
title = 'Miracles In Motion - Supporting Students in Need',
description = 'A 501(c)3 non-profit providing school supplies, clothing, and emergency assistance to students and families in need.',
keywords = ['nonprofit', 'charity', '501c3', 'student assistance', 'school supplies', 'donations'],
image = 'https://miraclesinmotion.org/og-image.png',
url = 'https://miraclesinmotion.org',
title = 'Miracles in Motion Foundation',
description = 'Restoring hope through compassion, community, and faith. Serving Los Angeles County with outreach, emergency assistance, and advocacy for families in crisis.',
keywords = ['nonprofit', 'charity', '501c3', 'miracles in motion', 'Los Angeles County', 'donations', 'volunteer'],
image = 'https://mim4u.org/og-image.png',
url = 'https://mim4u.org',
type = 'website'
}) => {
const structuredData = {
"@context": "https://schema.org",
"@type": "Organization",
"name": "Miracles In Motion",
"name": "Miracles in Motion Foundation",
"description": description,
"url": url,
"logo": "https://miraclesinmotion.org/logo.png",
"logo": "https://mim4u.org/logo-symbol.png",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-555-123-4567",
"contactType": "Customer Service"
"telephone": "+1-818-491-6884",
"contactType": "Customer Service",
"email": "[email protected]"
},
"sameAs": [
"https://facebook.com/miraclesinmotion",
"https://instagram.com/miraclesinmotion"
"https://www.instagram.com/miraclesinmotionfoundation"
]
}
@@ -62,7 +62,7 @@ export const SEO: React.FC<SEOProps> = ({
{/* Additional Meta Tags */}
<meta name="robots" content="index, follow" />
<meta name="author" content="Miracles In Motion" />
<meta name="author" content="Miracles in Motion Foundation" />
<link rel="canonical" href={url} />
</Helmet>
)
@@ -201,7 +201,7 @@ function PaymentForm({ amount, isRecurring = false, onSuccess, onError }: Paymen
value={customerInfo.phone}
onChange={(e) => setCustomerInfo(prev => ({ ...prev, phone: e.target.value }))}
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500"
placeholder="(555) 123-4567"
placeholder="(818) 491-6884"
/>
</div>
</div>
+9 -1
View File
@@ -50,10 +50,18 @@ export function LogoMark({ variant = 'nav', className = '' }: LogoMarkProps) {
className={['logo-mark', 'logo-mark--footer', className].filter(Boolean).join(' ')}
aria-hidden={true}
>
<img
src={BRAND.symbolSvg}
alt=""
className="logo-mark__img logo-mark__img--symbol hidden dark:block"
width={100}
height={99}
decoding="async"
/>
<img
src={BRAND.horizontal}
alt=""
className="logo-mark__img logo-mark__img--horizontal"
className="logo-mark__img logo-mark__img--horizontal block dark:hidden"
width={1024}
height={354}
decoding="async"
+4
View File
@@ -6,6 +6,10 @@ export const SITE = {
brandMessage: 'Restoring hope through compassion, community, and faith.',
email: '[email protected]',
emailHref: 'mailto:[email protected]',
phone: '(818) 491-6884',
phoneHref: 'tel:+18184916884',
phoneE164: '+18184916884',
url: 'https://mim4u.org',
ein: '33-4887159',
legalStatus: 'California Nonprofit Public Benefit Corporation',
serviceArea:
+4 -4
View File
@@ -37,17 +37,17 @@ export const AuthProvider: React.FC<{ children: ReactNode }> = ({ children }) =>
// Mock user data based on email
const mockUsers: Record<string, AuthUser> = {
'admin@miraclesinmotion.org': {
'admin@mim4u.org': {
id: '1',
email: 'admin@miraclesinmotion.org',
email: 'admin@mim4u.org',
role: 'admin',
name: 'Admin User',
lastLogin: new Date(),
permissions: ['all']
},
'volunteer@miraclesinmotion.org': {
'volunteer@mim4u.org': {
id: '2',
email: 'volunteer@miraclesinmotion.org',
email: 'volunteer@mim4u.org',
role: 'volunteer',
name: 'Volunteer User',
lastLogin: new Date(),
+6 -6
View File
@@ -13,9 +13,9 @@
"settings": "Settings"
},
"hero": {
"title": "Empowering Students with",
"titleHighlight": "Essential Support",
"subtitle": "A 501(c)(3) nonprofit providing students with school supplies, clothing, and emergency support to help them succeed in school and life.",
"title": "Restoring hope through",
"titleHighlight": "compassion & community",
"subtitle": "Miracles in Motion Foundation serves Los Angeles County with faith-centered outreach, emergency assistance, and wellness support for families in crisis.",
"primaryButton": "Make a Donation",
"secondaryButton": "Learn More",
"stats": {
@@ -88,11 +88,11 @@
},
"footer": {
"mission": "Our Mission",
"missionText": "Empowering students with essential resources for educational success and personal growth.",
"missionText": "Restoring hope through compassion, community, and faith.",
"quickLinks": "Quick Links",
"contact": "Contact Info",
"address": "123 Hope Street, Education City, EC 12345",
"phone": "+1 (555) 123-4567",
"address": "Los Angeles County, California",
"phone": "(818) 491-6884",
"email": "[email protected]",
"social": "Follow Us",
"newsletter": "Newsletter",
+6 -6
View File
@@ -13,9 +13,9 @@
"settings": "Configuración"
},
"hero": {
"title": "Empoderando Estudiantes con",
"titleHighlight": "Apoyo Esencial",
"subtitle": "Una organización sin fines de lucro 501(c)(3) que proporciona a los estudiantes útiles escolares, ropa y apoyo de emergencia para ayudarlos a tener éxito en la escuela y la vida.",
"title": "Restaurando la esperanza con",
"titleHighlight": "compasión y comunidad",
"subtitle": "Miracles in Motion Foundation sirve al condado de Los Ángeles con alcance centrado en la fe, asistencia de emergencia y apoyo de bienestar para familias en crisis.",
"primaryButton": "Hacer una Donación",
"secondaryButton": "Saber Más",
"stats": {
@@ -88,11 +88,11 @@
},
"footer": {
"mission": "Nuestra Misión",
"missionText": "Empoderando estudiantes con recursos esenciales para el éxito educativo y crecimiento personal.",
"missionText": "Restaurando la esperanza con compasión, comunidad y fe.",
"quickLinks": "Enlaces Rápidos",
"contact": "Información de Contacto",
"address": "123 Hope Street, Education City, EC 12345",
"phone": "+1 (555) 123-4567",
"address": "Condado de Los Ángeles, California",
"phone": "(818) 491-6884",
"email": "[email protected]",
"social": "Síguenos",
"newsletter": "Boletín",
+7 -1
View File
@@ -158,11 +158,17 @@
}
}
/* Footer: always horizontal */
/* Footer: horizontal on light; symbol on dark (horizontal PNG has opaque panel) */
.logo-mark--footer {
height: 2.75rem;
}
.logo-mark--footer .logo-mark__img--symbol {
height: 100%;
width: auto;
max-width: 3.25rem;
}
.logo-mark--footer .logo-mark__img--horizontal {
height: 100%;
width: auto;
+2 -1
View File
@@ -6,6 +6,7 @@ import { useDonationImpact } from '@/hooks/useDonationImpact'
import { useFormValidation } from '@/hooks/useDonationImpact'
import { formatCurrency } from '@/utils/helpers'
import { trackEvent, trackPageView } from '@/utils/analytics'
import { SITE } from '@/content/siteContent'
interface DonatePageProps {
className?: string
@@ -362,7 +363,7 @@ const TrustBadges: React.FC = () => (
<div className="mt-6 pt-4 border-t border-gray-200 dark:border-gray-700">
<p className="text-xs text-gray-500">
EIN: 33-4887159 • All donations are tax-deductible to the fullest extent allowed by law.
EIN: {SITE.ein} • All donations are tax-deductible to the fullest extent allowed by law.
</p>
</div>
</Card>