Add public landing page and privacy policy for Google OAuth verification

- Create public home page accessible without login
- Add comprehensive privacy policy page at /privacy
- Add privacy policy link to home page and footer
- Clearly explain app purpose: prayer journal and tracker
- Show app name 'Haver' prominently on home page
- Addresses Google OAuth verification requirements:
  - Home page not behind login
  - Separate privacy policy URL
  - App purpose clearly explained
  - Privacy policy link visible
This commit is contained in:
nmemmert committed 2026-01-19 15:20:34 -05:00
1 parent b7c9593c13
commit 149cfa5790
3 files changed
+307 -1

No files matched your search

+2 -1
View File
@@ -12,6 +12,7 @@ import ThingsToPrayFor from '@/components/ThingsToPrayFor';
import AboutPage from '@/components/AboutPage';
import HomePage from '@/components/HomePage';
import AnsweredPrayers from '@/components/AnsweredPrayers';
import PublicHome from './public-home';
import { db } from '@/lib/firebase';
import { collection, addDoc, getDocs, updateDoc, query, where, doc, setDoc, getDoc } from 'firebase/firestore';
import { Loader2 } from 'lucide-react';
@@ -319,7 +320,7 @@ export default function Home() {
}
if (!user) {
return <Login />;
return <PublicHome />;
}
return (
+161
View File
@@ -0,0 +1,161 @@
import Link from 'next/link';
export default function PrivacyPolicy() {
return (
<div className="min-h-screen bg-gradient-to-br from-slate-900 via-purple-900 to-slate-900">
{/* Header */}
<header className="border-b border-slate-700/50 sticky top-0 z-50 backdrop-blur-xl bg-slate-900/80">
<div className="max-w-6xl mx-auto px-4 py-4 flex justify-between items-center">
<Link href="/" className="flex items-center gap-2 hover:opacity-80 transition-opacity">
<span className="text-3xl">🙏</span>
<h1 className="text-2xl font-bold text-white">Haver</h1>
</Link>
<Link href="/" className="text-slate-300 hover:text-white transition-colors">Back to Home</Link>
</div>
</header>
{/* Content */}
<div className="max-w-4xl mx-auto px-4 py-12">
<h1 className="text-4xl font-bold text-white mb-8">Privacy Policy</h1>
<div className="prose prose-invert max-w-none space-y-6">
<section>
<h2 className="text-2xl font-bold text-white mb-4">1. Introduction</h2>
<p className="text-slate-300">
Haver ("we", "our", or "us") is committed to protecting your privacy. This Privacy Policy explains
how we collect, use, disclose, and safeguard your information when you use our prayer journal application
and website.
</p>
</section>
<section>
<h2 className="text-2xl font-bold text-white mb-4">2. Information We Collect</h2>
<h3 className="text-xl font-semibold text-slate-200 mb-2">2.1 Account Information</h3>
<p className="text-slate-300">
When you create an account, we collect your email address and authentication information to maintain
your account and provide services.
</p>
<h3 className="text-xl font-semibold text-slate-200 mb-2 mt-4">2.2 Prayer Data</h3>
<p className="text-slate-300">
All prayers, prayer requests, and related entries you create in Haver are stored in your account.
This data is essential to the functionality of the application.
</p>
<h3 className="text-xl font-semibold text-slate-200 mb-2 mt-4">2.3 Calendar Integration Data</h3>
<p className="text-slate-300">
If you connect your Google Calendar, we store your Google authentication token to sync recurring
prayer reminders. We do not store your Google password.
</p>
<h3 className="text-xl font-semibold text-slate-200 mb-2 mt-4">2.4 Device Information</h3>
<p className="text-slate-300">
We may collect information about your device, including device type, operating system, and browser
type for analytics and debugging purposes.
</p>
</section>
<section>
<h2 className="text-2xl font-bold text-white mb-4">3. How We Use Your Information</h2>
<ul className="list-disc list-inside text-slate-300 space-y-2">
<li>To provide and maintain the Haver service</li>
<li>To sync your prayers and prayer requests across devices</li>
<li>To sync recurring prayer reminders to your Google Calendar</li>
<li>To send notifications and reminders (if enabled)</li>
<li>To improve and optimize the application</li>
<li>To comply with legal obligations</li>
</ul>
</section>
<section>
<h2 className="text-2xl font-bold text-white mb-4">4. Data Security</h2>
<p className="text-slate-300 mb-4">
Haver uses Firebase, a Google Cloud service, to securely store all your data. We implement industry-standard
security measures including:
</p>
<ul className="list-disc list-inside text-slate-300 space-y-2">
<li>Encryption of data in transit (HTTPS)</li>
<li>Secure authentication (Firebase Authentication)</li>
<li>Regular security updates and patches</li>
<li>Firestore security rules to control data access</li>
</ul>
</section>
<section>
<h2 className="text-2xl font-bold text-white mb-4">5. Third-Party Services</h2>
<p className="text-slate-300 mb-4">
Haver uses the following third-party services:
</p>
<ul className="list-disc list-inside text-slate-300 space-y-2">
<li><strong>Firebase:</strong> For data storage, authentication, and analytics</li>
<li><strong>Google Calendar API:</strong> For syncing recurring prayer reminders (if enabled)</li>
<li><strong>Google Analytics:</strong> For anonymous usage statistics</li>
</ul>
<p className="text-slate-300 mt-4">
Please review the privacy policies of these services for more information about their data practices.
</p>
</section>
<section>
<h2 className="text-2xl font-bold text-white mb-4">6. Your Rights and Choices</h2>
<h3 className="text-xl font-semibold text-slate-200 mb-2">6.1 Access and Portability</h3>
<p className="text-slate-300">
You can access, download, or export your prayer data from your account at any time.
</p>
<h3 className="text-xl font-semibold text-slate-200 mb-2 mt-4">6.2 Deletion</h3>
<p className="text-slate-300">
You can delete individual prayers or your entire account. When you delete your account, all associated
data is permanently removed.
</p>
<h3 className="text-xl font-semibold text-slate-200 mb-2 mt-4">6.3 Notifications</h3>
<p className="text-slate-300">
You can control reminder notifications and calendar sync settings within the application.
</p>
</section>
<section>
<h2 className="text-2xl font-bold text-white mb-4">7. Children's Privacy</h2>
<p className="text-slate-300">
Haver is not intended for children under 13. We do not knowingly collect personal information from
children under 13. If we become aware that we have collected such information, we will delete it promptly.
</p>
</section>
<section>
<h2 className="text-2xl font-bold text-white mb-4">8. Changes to This Privacy Policy</h2>
<p className="text-slate-300">
We may update this Privacy Policy from time to time. We will notify you of any changes by updating
the "Last Updated" date below. Your continued use of Haver after such modifications constitutes your
acceptance of the updated Privacy Policy.
</p>
</section>
<section>
<h2 className="text-2xl font-bold text-white mb-4">9. Contact Us</h2>
<p className="text-slate-300">
If you have any questions about this Privacy Policy or our privacy practices, please contact us at
privacy@haverprayerapp.com or visit our website at https://prayer.necloud.us.
</p>
</section>
<section className="bg-slate-800/50 backdrop-blur rounded-lg p-6 border border-slate-700/50">
<p className="text-slate-400 text-sm">
<strong>Last Updated:</strong> January 19, 2026
</p>
</section>
</div>
</div>
{/* Footer */}
<footer className="border-t border-slate-700/50 bg-slate-900/50 mt-20 py-12">
<div className="max-w-6xl mx-auto px-4 text-center">
<Link href="/" className="text-slate-400 hover:text-white transition-colors">
Back to Haver
</Link>
</div>
</footer>
</div>
);
}
+144
View File
@@ -0,0 +1,144 @@
import Link from 'next/link';
export default function PublicHome() {
return (
<div className="min-h-screen bg-gradient-to-br from-slate-900 via-purple-900 to-slate-900">
{/* Header */}
<header className="border-b border-slate-700/50 sticky top-0 z-50 backdrop-blur-xl bg-slate-900/80">
<div className="max-w-6xl mx-auto px-4 py-4 flex justify-between items-center">
<div className="flex items-center gap-2">
<span className="text-3xl">🙏</span>
<h1 className="text-2xl font-bold text-white">Haver</h1>
</div>
<Link
href="/settings"
className="px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg font-semibold transition-colors"
>
Sign In
</Link>
</div>
</header>
{/* Hero Section */}
<section className="max-w-6xl mx-auto px-4 py-20 text-center">
<h2 className="text-5xl md:text-6xl font-bold text-white mb-6">
A Prayer Journal for Your Daily Practice
</h2>
<p className="text-xl text-slate-300 mb-8 max-w-2xl mx-auto">
Haver is a beautiful, minimalist app designed to help you journal your prayers, track prayer requests,
and celebrate when God answers. Stay connected to your prayer life, anytime, anywhere.
</p>
<Link
href="/settings"
className="inline-block px-8 py-3 bg-blue-600 hover:bg-blue-700 text-white rounded-lg font-semibold transition-colors text-lg"
>
Get Started
</Link>
</section>
{/* Features Section */}
<section className="max-w-6xl mx-auto px-4 py-20">
<h3 className="text-3xl font-bold text-white mb-12 text-center">Why Use Haver?</h3>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
<div className="bg-slate-800/50 backdrop-blur rounded-xl p-6 border border-slate-700/50">
<div className="text-4xl mb-4">✍️</div>
<h4 className="text-xl font-semibold text-white mb-2">Daily Prayer Composer</h4>
<p className="text-slate-300">Write prayers with dates and prayer request categories to organize your spiritual life.</p>
</div>
<div className="bg-slate-800/50 backdrop-blur rounded-xl p-6 border border-slate-700/50">
<div className="text-4xl mb-4">📊</div>
<h4 className="text-xl font-semibold text-white mb-2">Prayer Dashboard</h4>
<p className="text-slate-300">See your unique prayers and total prayer taps for each day at a glance.</p>
</div>
<div className="bg-slate-800/50 backdrop-blur rounded-xl p-6 border border-slate-700/50">
<div className="text-4xl mb-4">🙏</div>
<h4 className="text-xl font-semibold text-white mb-2">Prayer Requests</h4>
<p className="text-slate-300">Track active prayer requests and mark them as you pray for them throughout the week.</p>
</div>
<div className="bg-slate-800/50 backdrop-blur rounded-xl p-6 border border-slate-700/50">
<div className="text-4xl mb-4">✅</div>
<h4 className="text-xl font-semibold text-white mb-2">Answered Prayers</h4>
<p className="text-slate-300">Celebrate God's faithfulness by recording and reflecting on answered prayers.</p>
</div>
<div className="bg-slate-800/50 backdrop-blur rounded-xl p-6 border border-slate-700/50">
<div className="text-4xl mb-4">📅</div>
<h4 className="text-xl font-semibold text-white mb-2">Prayer Calendar</h4>
<p className="text-slate-300">Visualize your prayer journey with a beautiful calendar view of your activity.</p>
</div>
<div className="bg-slate-800/50 backdrop-blur rounded-xl p-6 border border-slate-700/50">
<div className="text-4xl mb-4">📱</div>
<h4 className="text-xl font-semibold text-white mb-2">Works Offline</h4>
<p className="text-slate-300">Access your prayers anywhere with offline support and cross-device sync via Firebase.</p>
</div>
</div>
</section>
{/* Calendar Sync Section */}
<section className="max-w-6xl mx-auto px-4 py-20">
<div className="bg-slate-800/50 backdrop-blur rounded-xl p-8 border border-slate-700/50">
<h3 className="text-2xl font-bold text-white mb-4">📅 Calendar Integration</h3>
<p className="text-slate-300 mb-4">
Create recurring prayer reminders and automatically sync them to your Google Calendar.
Never forget to pray for what matters most.
</p>
<ul className="text-slate-300 space-y-2">
<li>✓ Sync recurring prayers to Google Calendar</li>
<li>✓ Automatic reminders at your preferred time</li>
<li>✓ Set daily, weekly, biweekly, or monthly reminders</li>
</ul>
</div>
</section>
{/* CTA Section */}
<section className="max-w-6xl mx-auto px-4 py-20 text-center">
<h3 className="text-3xl font-bold text-white mb-6">Ready to Start Your Prayer Journey?</h3>
<Link
href="/settings"
className="inline-block px-8 py-3 bg-blue-600 hover:bg-blue-700 text-white rounded-lg font-semibold transition-colors text-lg"
>
Sign In Now
</Link>
</section>
{/* Footer */}
<footer className="border-t border-slate-700/50 bg-slate-900/50 mt-20 py-12">
<div className="max-w-6xl mx-auto px-4">
<div className="grid md:grid-cols-4 gap-8 mb-8">
<div>
<h4 className="text-white font-semibold mb-4">Haver</h4>
<p className="text-slate-400 text-sm">A prayer app for your daily practice.</p>
</div>
<div>
<h4 className="text-white font-semibold mb-4">Quick Links</h4>
<ul className="space-y-2">
<li><Link href="/privacy" className="text-slate-400 hover:text-white transition-colors">Privacy Policy</Link></li>
<li><Link href="#" className="text-slate-400 hover:text-white transition-colors">Terms of Service</Link></li>
<li><Link href="/settings" className="text-slate-400 hover:text-white transition-colors">Sign In</Link></li>
</ul>
</div>
<div>
<h4 className="text-white font-semibold mb-4">Contact</h4>
<p className="text-slate-400 text-sm">Questions? We'd love to hear from you.</p>
</div>
<div>
<h4 className="text-white font-semibold mb-4">Version</h4>
<p className="text-slate-400 text-sm">v0.4.0</p>
</div>
</div>
<div className="border-t border-slate-700/50 pt-8 flex flex-col md:flex-row justify-between items-center">
<p className="text-slate-400 text-sm mb-4 md:mb-0">© 2026 Haver. All rights reserved.</p>
<div className="flex gap-4">
<Link href="/privacy" className="text-slate-400 hover:text-white text-sm transition-colors">Privacy</Link>
<Link href="#" className="text-slate-400 hover:text-white text-sm transition-colors">Terms</Link>
</div>
</div>
</div>
</footer>
</div>
);
}