add vegan-iq initial pages

This commit is contained in:
jwinterm
2026-03-26 20:36:42 -04:00
parent 6e89c956ee
commit fb5feb6510
4 changed files with 280 additions and 1 deletions
+9 -1
View File
@@ -6,7 +6,7 @@ import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Products | Such Software",
description: "Tools and applications built by Such Software. Neroswap, Webshops, Custom Websites, Smirk Wallet, Bauhaus Echo, Suchoice, and Wownero Moon Launch.",
description: "Tools and applications built by Such Software. Neroswap, Webshops, Custom Websites, Smirk Wallet, Bauhaus Echo, Suchoice, Vegan IQ, and Wownero Moon Launch.",
alternates: { canonical: "/products" },
openGraph: {
title: "Products | Such Software",
@@ -52,6 +52,12 @@ const products = [
description: "Stop overthinking decisions. Snap a photo, let AI read the options, spin the wheel. Plus coin flip and adventure mode. Android and iOS.",
color: "pink",
},
{
slug: "vegan-iq",
title: "Vegan IQ",
description: "Test your plant-based knowledge with 2000+ trivia questions across 8 categories. Verified data, swipe gameplay. Android and iOS.",
color: "green",
},
{
slug: "wownero-moon-launch",
title: "Wownero Moon Launch",
@@ -68,6 +74,7 @@ const colorClasses: Record<string, string> = {
pink: "border-pink-500/30 hover:border-pink-500/60",
orange: "border-orange-500/30 hover:border-orange-500/60",
yellow: "border-yellow-500/30 hover:border-yellow-500/60",
green: "border-green-500/30 hover:border-green-500/60",
};
const titleColors: Record<string, string> = {
@@ -78,6 +85,7 @@ const titleColors: Record<string, string> = {
pink: "text-pink-600 dark:text-pink-400",
orange: "text-orange-600 dark:text-orange-400",
yellow: "text-yellow-600 dark:text-yellow-400",
green: "text-green-600 dark:text-green-400",
};
export default function ProductsPage() {
+100
View File
@@ -0,0 +1,100 @@
import { Header } from "@/components/layout/header";
import { MobileNav } from "@/components/layout/mobile-nav";
import { Card } from "@repo/ui/components/card";
import { Button } from "@repo/ui/components/button";
import Link from "next/link";
import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Vegan IQ | Such Software",
description: "Test your plant-based knowledge with 2000+ trivia questions across 8 categories. Swipe and tap gameplay with verified data. Android and iOS.",
alternates: { canonical: "/products/vegan-iq" },
openGraph: {
title: "Vegan IQ | Such Software",
description: "Test your plant-based knowledge with 2000+ trivia questions across 8 categories. Swipe and tap gameplay with verified data. Android and iOS.",
type: "website",
},
};
const features = [
{ name: "2000+ Questions", description: "Curated trivia questions backed by verified data from USDA, Poore & Nemecek, NIH, and FAOSTAT. No AI-generated content." },
{ name: "8 Categories", description: "Nutrition, environment, ingredients, food history, animal welfare, health, cooking, and culture." },
{ name: "Swipe & Tap", description: "Swipe right for true, left for false. Tap your answer for multiple choice. Fast, intuitive gameplay." },
{ name: "Dark & Light Mode", description: "Play in whichever theme you prefer. Automatic or manual switching." },
{ name: "SFX & Haptics", description: "Satisfying sound effects and haptic feedback on correct and incorrect answers." },
{ name: "Share Facts", description: "Found an interesting fact? Share it with friends directly from the app." },
];
export default function VeganIqPage() {
return (
<main className="relative min-h-screen flex flex-col items-center bg-background text-foreground">
<Header />
<div id="main-content" className="z-10 w-full max-w-4xl mx-auto py-20 px-4 pb-24 md:pb-20">
<Link href="/products" className="text-sm text-muted-foreground hover:text-foreground mb-8 inline-block">
← Back to Products
</Link>
<h1 className="text-4xl md:text-5xl font-bold mb-6 text-green-600 dark:text-green-400">
Vegan IQ
</h1>
<div className="prose dark:prose-invert max-w-none mb-12">
<p className="text-xl text-muted-foreground leading-relaxed">
Think you know your vegan facts? Vegan IQ puts your plant-based knowledge to the test with over 2000 trivia questions across 8 categories.
Every question is backed by verified data from sources like the USDA, Poore & Nemecek (2018), NIH, and FAOSTAT.
</p>
</div>
<div className="flex flex-wrap gap-4 mb-12">
<a href="#" target="_blank" rel="noopener noreferrer">
<Button variant="outline" size="lg">
Google Play
</Button>
</a>
<a href="#" target="_blank" rel="noopener noreferrer">
<Button variant="outline" size="lg">
App Store
</Button>
</a>
</div>
<h2 className="text-2xl font-bold mb-6">Features</h2>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 mb-12">
{features.map((feature) => (
<Card key={feature.name} className="glass-card border-green-500/20">
<h3 className="text-xl font-bold mb-2">{feature.name}</h3>
<p className="text-muted-foreground">{feature.description}</p>
</Card>
))}
</div>
<div className="mb-12">
<h2 className="text-2xl font-bold mb-4">Data Sources</h2>
<div className="prose dark:prose-invert max-w-none">
<p className="text-muted-foreground leading-relaxed">
Every question in Vegan IQ is grounded in real data. We do not use LLMs to generate question content. Our sources include:
</p>
<ul className="list-disc pl-6 space-y-2 text-muted-foreground mt-4">
<li><strong>USDA FoodData Central</strong> — nutritional composition of plant-based foods</li>
<li><strong>Poore & Nemecek, Science (2018)</strong> — environmental impact data for food production</li>
<li><strong>National Institutes of Health (NIH)</strong> — health and dietary reference data</li>
<li><strong>FAOSTAT</strong> — global food production and agricultural statistics from the UN FAO</li>
</ul>
</div>
</div>
<div className="mt-16 pt-8 border-t border-border">
<h2 className="text-2xl font-bold mb-4">Legal</h2>
<ul className="space-y-2">
<li>
<Link href="/products/vegan-iq/privacy" className="text-blue-600 dark:text-blue-400 hover:underline">
Privacy Policy
</Link>
</li>
</ul>
</div>
</div>
<MobileNav />
</main>
);
}
@@ -0,0 +1,106 @@
import { Header } from "@/components/layout/header";
import { MobileNav } from "@/components/layout/mobile-nav";
import Link from "next/link";
import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Vegan IQ Privacy Policy | Such Software",
description: "Privacy policy for the Vegan IQ application.",
alternates: { canonical: "/products/vegan-iq/privacy" },
};
export default function VeganIqPrivacyPage() {
return (
<main className="relative min-h-screen flex flex-col items-center bg-background text-foreground">
<Header />
<div id="main-content" className="z-10 w-full max-w-3xl mx-auto py-20 px-4 pb-24 md:pb-20">
<Link href="/products/vegan-iq" className="text-sm text-muted-foreground hover:text-foreground mb-8 inline-block">
← Back to Vegan IQ
</Link>
<h1 className="text-4xl font-bold mb-8">Privacy Policy for Vegan IQ</h1>
<div className="prose dark:prose-invert max-w-none space-y-6">
<p className="text-muted-foreground">Last updated: March 26, 2026</p>
<section>
<h2 className="text-2xl font-semibold mt-8 mb-4">1. Introduction</h2>
<p>
Such Software ("we", "our", or "us") operates the Vegan IQ mobile application (the "App").
This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our App.
</p>
</section>
<section>
<h2 className="text-2xl font-semibold mt-8 mb-4">2. Information We Collect</h2>
<h3 className="text-xl font-medium mt-4 mb-2">Local Data</h3>
<p>
Vegan IQ stores your score history, preferences, and game progress locally on your device using shared_preferences.
<strong> This data never leaves your device.</strong> There are no user accounts, no server-side storage, and no leaderboards.
We do not collect your name, email address, photos, location, or any other personal information.
</p>
<h3 className="text-xl font-medium mt-4 mb-2">Advertising</h3>
<p>
We use Google AdMob to display advertisements in the App. AdMob may collect and use data, including device identifiers (such as the Android Advertising ID or iOS IDFA), IP addresses, and usage data, to provide personalized advertising.
</p>
<p>
You can learn more about how Google uses information from sites or apps that use their services by visiting: <a href="https://policies.google.com/technologies/partner-sites" target="_blank" rel="noopener noreferrer" className="text-blue-600 hover:underline">Google's Privacy & Terms</a>.
</p>
<h3 className="text-xl font-medium mt-4 mb-2">In-App Purchases</h3>
<p>
Vegan IQ offers in-app purchases to remove ads. Purchases are processed entirely by Apple (via StoreKit) or Google (via Google Play Billing) depending on your platform.
We do not process or store your payment information (such as credit card numbers) directly; this is handled securely by Apple or Google.
</p>
</section>
<section>
<h2 className="text-2xl font-semibold mt-8 mb-4">3. How We Use Your Information</h2>
<p>We use the information described above to:</p>
<ul className="list-disc pl-6 space-y-2">
<li>Serve advertisements to support the free version of the App.</li>
<li>Process in-app purchases to remove ads.</li>
<li>Store your game progress and preferences locally on your device.</li>
</ul>
</section>
<section>
<h2 className="text-2xl font-semibold mt-8 mb-4">4. Third-Party Services</h2>
<p>
The App uses third-party services that may collect information used to identify you.
Link to privacy policy of third party service providers used by the app:
</p>
<ul className="list-disc pl-6 space-y-2">
<li><a href="https://policies.google.com/privacy" target="_blank" rel="noopener noreferrer" className="text-blue-600 hover:underline">Google Play Services</a></li>
<li><a href="https://support.google.com/admob/answer/6128543?hl=en" target="_blank" rel="noopener noreferrer" className="text-blue-600 hover:underline">AdMob</a></li>
<li><a href="https://www.apple.com/legal/privacy/" target="_blank" rel="noopener noreferrer" className="text-blue-600 hover:underline">Apple App Store</a></li>
</ul>
</section>
<section>
<h2 className="text-2xl font-semibold mt-8 mb-4">5. Children's Privacy</h2>
<p>
These Services do not address anyone under the age of 13. We do not knowingly collect personally identifiable information from children under 13. In the case we discover that a child under 13 has provided us with personal information, we immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact us so that we will be able to do necessary actions.
</p>
</section>
<section>
<h2 className="text-2xl font-semibold mt-8 mb-4">6. Changes to This Privacy Policy</h2>
<p>
We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page.
</p>
</section>
<section>
<h2 className="text-2xl font-semibold mt-8 mb-4">7. Contact Us</h2>
<p>
If you have any questions or suggestions about our Privacy Policy, do not hesitate to contact us at privacy@such.software.
</p>
</section>
</div>
</div>
<MobileNav />
</main>
);
}