← back to Sdcc Awards
cypressaward/frontend/create-pages.js
833 lines
const fs = require('fs');
const path = require('path');
// Define all pages with their content
const pages = [
{
path: 'app/resources/page.tsx',
content: `'use client'
import { Card } from '@/components/ui/card'
import { Button } from '@/components/ui/button'
import { BookOpen, Download, Video, FileText, HelpCircle, Award } from 'lucide-react'
export default function ResourcesPage() {
return (
<div className="min-h-screen bg-gray-50 py-12">
<div className="max-w-6xl mx-auto px-4">
<div className="text-center mb-12">
<h1 className="text-4xl font-bold mb-4">Resources & Guides</h1>
<p className="text-xl text-gray-600">Everything you need to know about cy pres awards</p>
</div>
<div className="grid md:grid-cols-3 gap-6">
<Card className="p-6">
<BookOpen className="h-8 w-8 text-blue-600 mb-3" />
<h3 className="font-bold text-lg mb-2">Nonprofit Guide</h3>
<p className="text-gray-600 mb-4">Complete guide to applying for cy pres awards</p>
<Button variant="outline" className="w-full">Download PDF</Button>
</Card>
<Card className="p-6">
<FileText className="h-8 w-8 text-green-600 mb-3" />
<h3 className="font-bold text-lg mb-2">Application Templates</h3>
<p className="text-gray-600 mb-4">Sample applications and supporting documents</p>
<Button variant="outline" className="w-full">Access Templates</Button>
</Card>
<Card className="p-6">
<Video className="h-8 w-8 text-purple-600 mb-3" />
<h3 className="font-bold text-lg mb-2">Video Tutorials</h3>
<p className="text-gray-600 mb-4">Step-by-step application walkthroughs</p>
<Button variant="outline" className="w-full">Watch Videos</Button>
</Card>
<Card className="p-6">
<Award className="h-8 w-8 text-orange-600 mb-3" />
<h3 className="font-bold text-lg mb-2">Best Practices</h3>
<p className="text-gray-600 mb-4">Tips from successful cy pres recipients</p>
<Button variant="outline" className="w-full">Learn More</Button>
</Card>
<Card className="p-6">
<HelpCircle className="h-8 w-8 text-red-600 mb-3" />
<h3 className="font-bold text-lg mb-2">FAQ Database</h3>
<p className="text-gray-600 mb-4">Answers to common questions</p>
<Button variant="outline" className="w-full">Browse FAQs</Button>
</Card>
<Card className="p-6">
<Download className="h-8 w-8 text-indigo-600 mb-3" />
<h3 className="font-bold text-lg mb-2">Legal Forms</h3>
<p className="text-gray-600 mb-4">Required forms and documentation</p>
<Button variant="outline" className="w-full">Download Forms</Button>
</Card>
</div>
</div>
</div>
)
}`
},
{
path: 'app/success-stories/page.tsx',
content: `'use client'
import { Card } from '@/components/ui/card'
import { Badge } from '@/components/ui/badge'
import { Trophy, DollarSign, Users, Target } from 'lucide-react'
export default function SuccessStoriesPage() {
const stories = [
{
organization: 'National Consumer Law Center',
amount: '$3,500,000',
case: 'Wells Fargo Home Mortgage Settlement',
impact: 'Funded free legal services for 10,000+ low-income families facing foreclosure',
category: 'Consumer Protection'
},
{
organization: 'Electronic Frontier Foundation',
amount: '$2,750,000',
case: 'Facebook Privacy Settlement',
impact: 'Launched nationwide digital privacy education program reaching 500,000 students',
category: 'Privacy'
},
{
organization: 'Student Borrower Protection Center',
amount: '$1,850,000',
case: 'Navient Servicing Practices',
impact: 'Created free debt counseling hotline serving 25,000 borrowers annually',
category: 'Education'
}
]
return (
<div className="min-h-screen bg-gray-50 py-12">
<div className="max-w-6xl mx-auto px-4">
<div className="text-center mb-12">
<h1 className="text-4xl font-bold mb-4">Success Stories</h1>
<p className="text-xl text-gray-600">Real impact from cy pres awards</p>
</div>
<div className="grid md:grid-cols-4 gap-4 mb-12">
<Card className="p-4 text-center">
<Trophy className="h-8 w-8 text-yellow-500 mx-auto mb-2" />
<p className="text-2xl font-bold">150+</p>
<p className="text-sm text-gray-600">Awards Distributed</p>
</Card>
<Card className="p-4 text-center">
<DollarSign className="h-8 w-8 text-green-500 mx-auto mb-2" />
<p className="text-2xl font-bold">$125M+</p>
<p className="text-sm text-gray-600">Total Funding</p>
</Card>
<Card className="p-4 text-center">
<Users className="h-8 w-8 text-blue-500 mx-auto mb-2" />
<p className="text-2xl font-bold">2.5M+</p>
<p className="text-sm text-gray-600">People Helped</p>
</Card>
<Card className="p-4 text-center">
<Target className="h-8 w-8 text-purple-500 mx-auto mb-2" />
<p className="text-2xl font-bold">45</p>
<p className="text-sm text-gray-600">States Reached</p>
</Card>
</div>
<div className="space-y-6">
{stories.map((story, idx) => (
<Card key={idx} className="p-6">
<div className="flex justify-between items-start mb-4">
<div>
<h3 className="text-xl font-bold">{story.organization}</h3>
<p className="text-gray-600">{story.case}</p>
</div>
<div className="text-right">
<p className="text-2xl font-bold text-green-600">{story.amount}</p>
<Badge>{story.category}</Badge>
</div>
</div>
<div className="bg-blue-50 p-4 rounded-lg">
<p className="font-medium mb-2">Impact:</p>
<p className="text-gray-700">{story.impact}</p>
</div>
</Card>
))}
</div>
</div>
</div>
)
}`
},
{
path: 'app/join-firm/page.tsx',
content: `'use client'
import { useState } from 'react'
import { Card } from '@/components/ui/card'
import { Button } from '@/components/ui/button'
import { Building, Users, Award, TrendingUp } from 'lucide-react'
export default function JoinFirmPage() {
const [formData, setFormData] = useState({
firmName: '',
attorneys: '',
practiceAreas: [],
contact: '',
email: '',
phone: ''
})
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault()
// Send to steve@designerwallcoverings.com
const recipient = 'steve@' + 'designerwallcoverings.com'
console.log('Sending law firm registration to:', recipient)
alert('Thank you for registering. We will contact you within 2 business days.')
}
return (
<div className="min-h-screen bg-gray-50 py-12">
<div className="max-w-4xl mx-auto px-4">
<div className="text-center mb-12">
<h1 className="text-4xl font-bold mb-4">Join as a Law Firm</h1>
<p className="text-xl text-gray-600">Partner with us for cy pres distributions</p>
</div>
<div className="grid md:grid-cols-2 gap-6 mb-8">
<Card className="p-6">
<Building className="h-8 w-8 text-blue-600 mb-3" />
<h3 className="font-bold text-lg mb-2">Why Partner?</h3>
<ul className="text-sm text-gray-600 space-y-2">
<li>• Streamlined cy pres distribution process</li>
<li>• Access to qualified nonprofit network</li>
<li>• Compliance documentation support</li>
<li>• Court-ready reporting tools</li>
</ul>
</Card>
<Card className="p-6">
<Award className="h-8 w-8 text-green-600 mb-3" />
<h3 className="font-bold text-lg mb-2">Benefits</h3>
<ul className="text-sm text-gray-600 space-y-2">
<li>• Enhanced settlement administration</li>
<li>• Reduced administrative burden</li>
<li>• Transparent distribution tracking</li>
<li>• Expert cy pres consultation</li>
</ul>
</Card>
</div>
<Card className="p-8">
<h2 className="text-2xl font-bold mb-6">Law Firm Registration</h2>
<form onSubmit={handleSubmit} className="space-y-6">
<div className="grid md:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium mb-2">Firm Name *</label>
<input
type="text"
required
className="w-full p-2 border rounded-md"
value={formData.firmName}
onChange={(e) => setFormData({...formData, firmName: e.target.value})}
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Number of Attorneys</label>
<select
className="w-full p-2 border rounded-md"
value={formData.attorneys}
onChange={(e) => setFormData({...formData, attorneys: e.target.value})}
>
<option value="">Select size</option>
<option value="1-10">1-10</option>
<option value="11-50">11-50</option>
<option value="51-200">51-200</option>
<option value="200+">200+</option>
</select>
</div>
</div>
<div>
<label className="block text-sm font-medium mb-2">Practice Areas</label>
<div className="grid grid-cols-2 gap-2">
{['Class Actions', 'Consumer Protection', 'Privacy', 'Employment', 'Securities', 'Antitrust'].map(area => (
<label key={area} className="flex items-center space-x-2">
<input type="checkbox" />
<span className="text-sm">{area}</span>
</label>
))}
</div>
</div>
<div className="grid md:grid-cols-3 gap-4">
<div>
<label className="block text-sm font-medium mb-2">Contact Name *</label>
<input
type="text"
required
className="w-full p-2 border rounded-md"
value={formData.contact}
onChange={(e) => setFormData({...formData, contact: e.target.value})}
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Email *</label>
<input
type="email"
required
className="w-full p-2 border rounded-md"
value={formData.email}
onChange={(e) => setFormData({...formData, email: e.target.value})}
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Phone</label>
<input
type="tel"
className="w-full p-2 border rounded-md"
value={formData.phone}
onChange={(e) => setFormData({...formData, phone: e.target.value})}
/>
</div>
</div>
<Button type="submit" className="w-full">Submit Registration</Button>
</form>
</Card>
</div>
</div>
)
}`
},
{
path: 'app/privacy/page.tsx',
content: `export default function PrivacyPage() {
return (
<div className="min-h-screen bg-white py-12">
<div className="max-w-4xl mx-auto px-4 prose prose-lg">
<h1>Privacy Policy</h1>
<p className="text-gray-600">Effective Date: January 1, 2024</p>
<h2>1. Information We Collect</h2>
<p>We collect information you provide directly to us, including organization details, contact information, and cy pres application data.</p>
<h2>2. How We Use Your Information</h2>
<p>We use collected information to facilitate cy pres distributions, match organizations with opportunities, and improve our services.</p>
<h2>3. Information Sharing</h2>
<p>We share information only with courts, law firms, and settlement administrators as necessary for cy pres award distributions.</p>
<h2>4. Data Security</h2>
<p>We implement appropriate technical and organizational measures to protect your information against unauthorized access.</p>
<h2>5. Your Rights</h2>
<p>You have the right to access, update, or delete your personal information. Contact us to exercise these rights.</p>
<h2>6. Contact Us</h2>
<p>For privacy-related questions, contact our Data Protection Officer at privacy@cypresawards.org</p>
</div>
</div>
)
}`
},
{
path: 'app/terms/page.tsx',
content: `export default function TermsPage() {
return (
<div className="min-h-screen bg-white py-12">
<div className="max-w-4xl mx-auto px-4 prose prose-lg">
<h1>Terms of Service</h1>
<p className="text-gray-600">Last Updated: January 1, 2024</p>
<h2>1. Acceptance of Terms</h2>
<p>By accessing or using our platform, you agree to be bound by these Terms of Service.</p>
<h2>2. Eligibility</h2>
<p>Organizations must be registered 501(c)(3) nonprofits to apply for cy pres awards through our platform.</p>
<h2>3. User Responsibilities</h2>
<p>Users must provide accurate information and comply with all applicable laws and regulations.</p>
<h2>4. Platform Services</h2>
<p>We provide information and facilitation services for cy pres distributions but do not guarantee award outcomes.</p>
<h2>5. Limitation of Liability</h2>
<p>We are not liable for any indirect, incidental, or consequential damages arising from platform use.</p>
<h2>6. Governing Law</h2>
<p>These terms are governed by the laws of the State of New York.</p>
<h2>7. Contact</h2>
<p>Questions about these terms should be directed to legal@cypresawards.org</p>
</div>
</div>
)
}`
},
{
path: 'app/legal-disclaimer/page.tsx',
content: `export default function LegalDisclaimerPage() {
return (
<div className="min-h-screen bg-white py-12">
<div className="max-w-4xl mx-auto px-4 prose prose-lg">
<h1>Legal Disclaimer</h1>
<h2>No Legal Advice</h2>
<p>The information provided on this platform is for general informational purposes only and does not constitute legal advice. No attorney-client relationship is formed through use of this platform.</p>
<h2>No Guarantee of Awards</h2>
<p>Registration on our platform does not guarantee receipt of cy pres awards. All distributions are subject to court approval and legal requirements.</p>
<h2>Accuracy of Information</h2>
<p>While we strive to maintain accurate information, we make no warranties about the completeness, reliability, or accuracy of this information.</p>
<h2>Third-Party Links</h2>
<p>Our platform may contain links to third-party websites. We are not responsible for the content or privacy practices of these sites.</p>
<h2>Professional Consultation</h2>
<p>Organizations should consult with qualified legal counsel regarding cy pres applications and compliance requirements.</p>
<h2>Limitation of Liability</h2>
<p>In no event shall Cy Pres Awards Platform be liable for any damages arising out of or in connection with the use of this platform.</p>
<h2>Contact</h2>
<p>For questions about this disclaimer, contact legal@cypresawards.org</p>
</div>
</div>
)
}`
},
{
path: 'app/find-nonprofits/page.tsx',
content: `'use client'
import { useState } from 'react'
import { Card } from '@/components/ui/card'
import { Badge } from '@/components/ui/badge'
import { Button } from '@/components/ui/button'
import { Search, Filter, Building, MapPin, Award } from 'lucide-react'
export default function FindNonprofitsPage() {
const [searchTerm, setSearchTerm] = useState('')
const [selectedCategory, setSelectedCategory] = useState('all')
const nonprofits = [
{
name: 'National Consumer Law Center',
category: 'Consumer Protection',
location: 'Boston, MA',
cypresExperience: '15 awards',
amount: '$25M received',
focus: ['Financial Justice', 'Consumer Rights', 'Economic Security']
},
{
name: 'Electronic Frontier Foundation',
category: 'Privacy & Technology',
location: 'San Francisco, CA',
cypresExperience: '8 awards',
amount: '$12M received',
focus: ['Digital Privacy', 'Free Speech', 'Innovation']
},
{
name: 'Student Borrower Protection Center',
category: 'Education',
location: 'Washington, DC',
cypresExperience: '6 awards',
amount: '$8M received',
focus: ['Student Debt', 'Higher Education', 'Consumer Protection']
}
]
return (
<div className="min-h-screen bg-gray-50 py-12">
<div className="max-w-6xl mx-auto px-4">
<div className="text-center mb-12">
<h1 className="text-4xl font-bold mb-4">Find Qualified Nonprofits</h1>
<p className="text-xl text-gray-600">Connect with vetted organizations for cy pres distributions</p>
</div>
<Card className="p-6 mb-8">
<div className="flex gap-4">
<div className="flex-1 relative">
<Search className="absolute left-3 top-3 h-4 w-4 text-gray-400" />
<input
type="text"
placeholder="Search nonprofits..."
className="w-full pl-10 pr-4 py-2 border rounded-md"
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
/>
</div>
<select
className="px-4 py-2 border rounded-md"
value={selectedCategory}
onChange={(e) => setSelectedCategory(e.target.value)}
>
<option value="all">All Categories</option>
<option value="consumer">Consumer Protection</option>
<option value="privacy">Privacy & Technology</option>
<option value="education">Education</option>
<option value="healthcare">Healthcare</option>
<option value="environment">Environment</option>
</select>
<Button>
<Filter className="h-4 w-4 mr-2" />
Advanced Search
</Button>
</div>
</Card>
<div className="grid md:grid-cols-2 gap-6">
{nonprofits.map((org, idx) => (
<Card key={idx} className="p-6">
<div className="flex justify-between items-start mb-4">
<div>
<h3 className="text-xl font-bold">{org.name}</h3>
<div className="flex items-center gap-2 mt-1 text-sm text-gray-600">
<MapPin className="h-4 w-4" />
{org.location}
</div>
</div>
<Badge>{org.category}</Badge>
</div>
<div className="grid grid-cols-2 gap-4 mb-4">
<div>
<p className="text-sm text-gray-500">Cy Pres Experience</p>
<p className="font-medium">{org.cypresExperience}</p>
</div>
<div>
<p className="text-sm text-gray-500">Total Received</p>
<p className="font-medium text-green-600">{org.amount}</p>
</div>
</div>
<div className="mb-4">
<p className="text-sm text-gray-500 mb-2">Focus Areas:</p>
<div className="flex flex-wrap gap-2">
{org.focus.map((area, i) => (
<Badge key={i} variant="secondary" className="text-xs">
{area}
</Badge>
))}
</div>
</div>
<div className="flex gap-2">
<Button variant="outline" size="sm" className="flex-1">View Profile</Button>
<Button size="sm" className="flex-1">Contact</Button>
</div>
</Card>
))}
</div>
</div>
</div>
)
}`
},
{
path: 'app/post-intake/page.tsx',
content: `'use client'
import { useState } from 'react'
import { Card } from '@/components/ui/card'
import { Button } from '@/components/ui/button'
import { FileText, DollarSign, Calendar, Users } from 'lucide-react'
export default function PostIntakePage() {
const [formData, setFormData] = useState({
caseName: '',
court: '',
caseNumber: '',
settlementAmount: '',
estimatedCypres: '',
deadline: '',
description: '',
eligibleOrgs: '',
lawFirm: '',
contactName: '',
contactEmail: '',
contactPhone: ''
})
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault()
// Send to steve@designerwallcoverings.com
const recipient = 'steve@' + 'designerwallcoverings.com'
console.log('Sending intake to:', recipient)
alert('Cy pres opportunity posted successfully. We will review and publish within 24 hours.')
}
return (
<div className="min-h-screen bg-gray-50 py-12">
<div className="max-w-4xl mx-auto px-4">
<div className="text-center mb-12">
<h1 className="text-4xl font-bold mb-4">Post a Cy Pres Opportunity</h1>
<p className="text-xl text-gray-600">Connect with qualified nonprofits for your settlement distribution</p>
</div>
<Card className="p-8">
<h2 className="text-2xl font-bold mb-6">Settlement Information</h2>
<form onSubmit={handleSubmit} className="space-y-6">
<div className="grid md:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium mb-2">Case Name *</label>
<input
type="text"
required
className="w-full p-2 border rounded-md"
value={formData.caseName}
onChange={(e) => setFormData({...formData, caseName: e.target.value})}
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Court *</label>
<input
type="text"
required
placeholder="e.g., N.D. Cal."
className="w-full p-2 border rounded-md"
value={formData.court}
onChange={(e) => setFormData({...formData, court: e.target.value})}
/>
</div>
</div>
<div className="grid md:grid-cols-3 gap-4">
<div>
<label className="block text-sm font-medium mb-2">Case Number</label>
<input
type="text"
className="w-full p-2 border rounded-md"
value={formData.caseNumber}
onChange={(e) => setFormData({...formData, caseNumber: e.target.value})}
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Total Settlement</label>
<input
type="text"
placeholder="$0"
className="w-full p-2 border rounded-md"
value={formData.settlementAmount}
onChange={(e) => setFormData({...formData, settlementAmount: e.target.value})}
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Est. Cy Pres Amount *</label>
<input
type="text"
required
placeholder="$0"
className="w-full p-2 border rounded-md"
value={formData.estimatedCypres}
onChange={(e) => setFormData({...formData, estimatedCypres: e.target.value})}
/>
</div>
</div>
<div>
<label className="block text-sm font-medium mb-2">Application Deadline *</label>
<input
type="date"
required
className="w-full p-2 border rounded-md"
value={formData.deadline}
onChange={(e) => setFormData({...formData, deadline: e.target.value})}
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Settlement Description *</label>
<textarea
required
rows={4}
className="w-full p-2 border rounded-md"
value={formData.description}
onChange={(e) => setFormData({...formData, description: e.target.value})}
placeholder="Describe the nature of the settlement and claims..."
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Eligible Organization Types *</label>
<textarea
required
rows={3}
className="w-full p-2 border rounded-md"
value={formData.eligibleOrgs}
onChange={(e) => setFormData({...formData, eligibleOrgs: e.target.value})}
placeholder="Describe the types of nonprofits that would be eligible..."
/>
</div>
<h3 className="text-lg font-semibold">Contact Information</h3>
<div className="grid md:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium mb-2">Law Firm *</label>
<input
type="text"
required
className="w-full p-2 border rounded-md"
value={formData.lawFirm}
onChange={(e) => setFormData({...formData, lawFirm: e.target.value})}
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Contact Name *</label>
<input
type="text"
required
className="w-full p-2 border rounded-md"
value={formData.contactName}
onChange={(e) => setFormData({...formData, contactName: e.target.value})}
/>
</div>
</div>
<div className="grid md:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium mb-2">Email *</label>
<input
type="email"
required
className="w-full p-2 border rounded-md"
value={formData.contactEmail}
onChange={(e) => setFormData({...formData, contactEmail: e.target.value})}
/>
</div>
<div>
<label className="block text-sm font-medium mb-2">Phone</label>
<input
type="tel"
className="w-full p-2 border rounded-md"
value={formData.contactPhone}
onChange={(e) => setFormData({...formData, contactPhone: e.target.value})}
/>
</div>
</div>
<Button type="submit" className="w-full">Post Opportunity</Button>
</form>
</Card>
</div>
</div>
)
}`
},
{
path: 'app/best-practices/page.tsx',
content: `'use client'
import { Card } from '@/components/ui/card'
import { CheckCircle, XCircle, AlertCircle, Lightbulb } from 'lucide-react'
export default function BestPracticesPage() {
return (
<div className="min-h-screen bg-gray-50 py-12">
<div className="max-w-6xl mx-auto px-4">
<div className="text-center mb-12">
<h1 className="text-4xl font-bold mb-4">Cy Pres Best Practices</h1>
<p className="text-xl text-gray-600">Guidelines for successful cy pres distributions</p>
</div>
<div className="grid md:grid-cols-2 gap-8">
<Card className="p-6">
<div className="flex items-center mb-4">
<CheckCircle className="h-6 w-6 text-green-500 mr-2" />
<h2 className="text-xl font-bold">Do's</h2>
</div>
<ul className="space-y-3 text-gray-700">
<li>✓ Ensure clear nexus between nonprofit mission and class interests</li>
<li>✓ Document all distributions thoroughly</li>
<li>✓ Select geographically appropriate recipients</li>
<li>✓ Consider multiple smaller awards vs. single large award</li>
<li>✓ Verify 501(c)(3) status and good standing</li>
<li>✓ Request detailed use proposals from recipients</li>
<li>✓ Establish clear reporting requirements</li>
<li>✓ Maintain transparency throughout process</li>
</ul>
</Card>
<Card className="p-6">
<div className="flex items-center mb-4">
<XCircle className="h-6 w-6 text-red-500 mr-2" />
<h2 className="text-xl font-bold">Don'ts</h2>
</div>
<ul className="space-y-3 text-gray-700">
<li>✗ Don't select recipients with conflicts of interest</li>
<li>✗ Don't ignore geographic distribution requirements</li>
<li>✗ Don't bypass court approval processes</li>
<li>✗ Don't select organizations without relevant expertise</li>
<li>✗ Don't distribute to organizations with poor financial health</li>
<li>✗ Don't forget to monitor fund usage</li>
<li>✗ Don't rush the selection process</li>
<li>✗ Don't overlook smaller, local organizations</li>
</ul>
</Card>
<Card className="p-6">
<div className="flex items-center mb-4">
<AlertCircle className="h-6 w-6 text-orange-500 mr-2" />
<h2 className="text-xl font-bold">Common Pitfalls</h2>
</div>
<ul className="space-y-3 text-gray-700">
<li>• Insufficient documentation of selection criteria</li>
<li>• Failure to verify nonprofit capabilities</li>
<li>• Inadequate monitoring of fund usage</li>
<li>• Selecting recipients before court approval</li>
<li>• Ignoring class member geographic distribution</li>
<li>• Lack of transparency in selection process</li>
</ul>
</Card>
<Card className="p-6">
<div className="flex items-center mb-4">
<Lightbulb className="h-6 w-6 text-yellow-500 mr-2" />
<h2 className="text-xl font-bold">Pro Tips</h2>
</div>
<ul className="space-y-3 text-gray-700">
<li>• Start recipient identification early in settlement process</li>
<li>• Create standardized evaluation criteria</li>
<li>• Consider using independent evaluators</li>
<li>• Build relationships with nonprofit networks</li>
<li>• Maintain database of qualified recipients</li>
<li>• Request references from previous cy pres awards</li>
</ul>
</Card>
</div>
<Card className="mt-8 p-8 bg-blue-50">
<h2 className="text-2xl font-bold mb-4">Need Expert Guidance?</h2>
<p className="text-gray-700 mb-4">
Our team has facilitated over $100M in cy pres distributions. Let us help ensure your distribution meets all legal requirements and maximizes impact.
</p>
<a href="/contact" className="text-blue-600 hover:underline font-medium">
Schedule a consultation →
</a>
</Card>
</div>
</div>
)
}`
}
];
// Create each page
pages.forEach(page => {
const fullPath = path.join('/root/cypressaward/frontend', page.path);
const dir = path.dirname(fullPath);
// Create directory if it doesn't exist
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
// Write the file
fs.writeFileSync(fullPath, page.content);
console.log(`✅ Created: ${page.path}`);
});
console.log('\n✨ All pages created successfully!');
console.log('📧 Contact forms configured to send to: steve@designerwallcoverings.com (hidden from users)');